KR101644712B1 - Error correcting methods and circuit for improving block-wise concatenated bch codes - Google Patents

Error correcting methods and circuit for improving block-wise concatenated bch codes Download PDF

Info

Publication number
KR101644712B1
KR101644712B1 KR1020140180403A KR20140180403A KR101644712B1 KR 101644712 B1 KR101644712 B1 KR 101644712B1 KR 1020140180403 A KR1020140180403 A KR 1020140180403A KR 20140180403 A KR20140180403 A KR 20140180403A KR 101644712 B1 KR101644712 B1 KR 101644712B1
Authority
KR
South Korea
Prior art keywords
block
decoding
concatenated bch
error
spc
Prior art date
Application number
KR1020140180403A
Other languages
Korean (ko)
Other versions
KR20160072890A (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 KR1020140180403A priority Critical patent/KR101644712B1/en
Publication of KR20160072890A publication Critical patent/KR20160072890A/en
Application granted granted Critical
Publication of KR101644712B1 publication Critical patent/KR101644712B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/1505Golay Codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials

Abstract

일 실시예에 따른 복호 방법은, 메시지를 블록 단위로 분할하고, 상기 분할된 메시지 블록을 행과 열로 구성된 2차원으로 배치하는 단계; 상기 2차원으로 배치된 메시지 블록에 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호를 생성하고, 상기 블록 단위 연접 BCH 부호의 내부 또는 외부에 SPC(Single Parity Check) 부호를 부가하여 SPC 블록을 저장하는 단계; 오류가 발생함에 따라 상기 블록 단위 연접 BCH 부호의 제1 복호화를 수행하는 단계; 및 상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호의 제2 복호화를 수행하는 단계를 포함할 수 있다.The decoding method according to an embodiment includes dividing a message into blocks and arranging the divided message blocks in two-dimensional form composed of rows and columns; Generates a block unit concatenated BCH code for protecting the message in the two-dimensionally arranged message block, and stores an SPC block by adding a single parity check (SPC) code to the inside or outside of the block unit concatenated BCH code step; Performing a first decoding of the block-based concatenated BCH code as an error occurs; And performing a second decoding of the block-based concatenated BCH code to correct an error remaining in a parity part of the block-based concatenated BCH code that has undergone the first decoding.

Description

블록 단위 연접 비씨에이치 부호의 성능을 향상시키는 오류 정정 방법 및 복호 방법{ERROR CORRECTING METHODS AND CIRCUIT FOR IMPROVING BLOCK-WISE CONCATENATED BCH CODES} Technical Field [0001] The present invention relates to an error correction method and a decoding method for improving the performance of a block-based concatenated BC code,

아래의 설명은 블록 단위 연접BCH 부호의 복호 방법, 이를 활용한 메모리 장치의 오류 정정 방법에 관한 것이다.
The following description relates to a decoding method of a block-unit concatenated BCH code and an error correction method of a memory device using the same.

매우 낮은 오류율을 요구하는 메모리와 같은 분야를 위하여 블록 단위 연접 BCH 부호가 제안되었으며, 블록 단위 연접 BCH 부호는 성능과 오류 마루가 트레이드 오프(Trade Off) 관계에 있음이 알려져 있다. 이에 따라 블록 단위 연접 BCH 부호의 성능 개선을 위하여 오류 마루 문제를 해결하는 것이 중요하게 대두되고 있다. Block - based concatenated BCH codes have been proposed for areas such as memory requiring very low error rates. It is known that block - based concatenated BCH codes have a trade - off relationship between performance and error floor. Therefore, it is important to solve the error floor problem to improve the performance of the block - based concatenated BCH code.

블록 단위 연접 BCH 부호의 오류 마루는 패턴화된 오류로 인하여 발생하고, 패턴화된 오류 문제를 해소하기 위하여 종래에는 간단한 외부호 활용 방식이 제안되었으나 더 나아가 종래의 오류 문제를 해소하기 위한 방식을 개선하는 기술을 제안하고자 한다.
The error floor of the block unit concatenated BCH code is caused by the patterned error. In order to solve the patterned error problem, a simple method of using an external call has been proposed. However, a method for solving the conventional error problem has been improved And the like.

본 발명은 일 실시예에 따른 블록 단위 연접 비씨에이치 부호의 성능을 향상시키는 오류 정정 방법을 제공할 수 있다. The present invention can provide an error correction method for improving the performance of a block-based concatenated BC code according to an embodiment.

본 발명은 일 실시예에 따른 블록 단위 연접 비씨에이치 부호의 복호기를 제공할 수 있다.
The present invention can provide a decoder of a block-based concatenated BC code according to an embodiment.

일 실시예에 따른 복호 방법은, 메시지를 블록 단위로 분할하고, 상기 분할된 메시지 블록을 행과 열로 구성된 2차원으로 배치하는 단계; 상기 2차원으로 배치된 메시지 블록에 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호를 생성하고, 상기 블록 단위 연접 BCH 부호의 내부 또는 외부에 SPC(Single Parity Check) 부호를 부가하여 SPC 블록을 저장하는 단계; 오류가 발생함에 따라 상기 블록 단위 연접 BCH 부호의 제1 복호화를 수행하는 단계; 및 상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호의 제2 복호화를 수행하는 단계를 포함할 수 있다.The decoding method according to an embodiment includes dividing a message into blocks and arranging the divided message blocks in two-dimensional form composed of rows and columns; Generates a block unit concatenated BCH code for protecting the message in the two-dimensionally arranged message block, and stores an SPC block by adding a single parity check (SPC) code to the inside or outside of the block unit concatenated BCH code step; Performing a first decoding of the block-based concatenated BCH code as an error occurs; And performing a second decoding of the block-based concatenated BCH code to correct an error remaining in a parity part of the block-based concatenated BCH code that has undergone the first decoding.

일측에 따르면, 상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 BCH 부호의 제2 복호화를 수행하는 단계는, SPC를 통하여 오류 정정이 가능한 오류 패턴으로 상기 블록 단위 연접 BCH 부호의 복호화를 수행하는 단계를 포함할 수 있다.According to an aspect of the present invention, performing the second decoding of the block BCH code to correct an error remaining in a parity part of the block-based concatenated BCH code that has performed the first decoding may include error correction through SPC And decoding the block-based concatenated BCH code with an error pattern.

또 다른 일측에 따르면, 상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접BCH 부호의 제2 복호화를 수행하는 단계는, 상기 SPC 블록으로부터 오류가 발생한 복수의 메시지 블록의 합을 통하여 오류 정보를 수신하는 단계; 및 상기 오류가 발생한 복수의 메시지 블록의 오류 정보를 이용하여 복호화를 수행하는 단계를 포함할 수 있다.According to another aspect of the present invention, performing the second decoding of the block-based concatenated BCH code to correct an error remaining in the parity part of the block-based concatenated BCH code that has performed the first decoding may include: Receiving error information through a sum of a plurality of error-occurred message blocks; And performing decoding using error information of a plurality of message blocks in which the error has occurred.

또 다른 일측에 따르면, 상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호의 제2 복호화를 수행하는 단계는, 상기 제1 복호화를 수행하여 최소화된 오류 정보를 포함하는 복수의 메시지 블록으로부터 상기 블록 단위 연접 BCH 부호의 복호화를 수행하는 단계를 포함할 수 있다.According to another aspect of the present invention, performing the second decoding of the block-based concatenated BCH code to correct an error remaining in the parity part of the block-based concatenated BCH code that has performed the first decoding may include: And performing decoding of the block-based concatenated BCH code from a plurality of message blocks including the minimized error information.

또 다른 일측에 따르면, 상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호의 제2 복호화를 수행하는 단계는, 상기 오류가 발생한 복수의 메시지 블록의 위치 정보를 포함하고 있는 상기 SPC 블록을 통하여 Chase 복호를 수행하는 단계를 포함할 수 있다.According to another aspect of the present invention, performing the second decoding of the block unit concatenated BCH code to correct an error remaining in the parity part of the block-based concatenated BCH code that has performed the first decoding may include: And performing Chase decoding through the SPC block including position information of a plurality of message blocks.

또 다른 일측에 따르면, 상기 2차원으로 배치된 메시지 블록에 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호를 생성하고, 상기 블록 단위 연접 BCH 부호의 내부 또는 외부에 SPC(Single Parity Check) 부호를 부가하여 SPC 블록을 저장하는 단계는, 상기 SPC 부호의 부호화와 상기 블록 단위 연접 BCH 부호의 부호화를 병렬적으로 수행하는 방법 또는 상기 블록 단위 연접 BCH 부호의 부호화를 수행한 후 상기 SPC 부호의 부호화를 수행하는 방법 중 어느 하나의 방법을 수행하는 단계를 포함할 수 있다.According to another aspect of the present invention, a block-based concatenated BCH code for protecting the message in the two-dimensionally arranged message block is generated, and a single parity check (SPC) code is added to the inside or the outside of the block- Wherein the step of storing the SPC block comprises the steps of performing the coding of the SPC code and the coding of the block unit concatenated BCH code in parallel or the coding of the SPC code after performing the coding of the block unit concatenated BCH code And performing the method of any one of the following methods.

또 다른 일측에 따르면, 상기 2차원으로 배치된 메시지 블록에 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호를 생성하고, 상기 블록 단위 연접 BCH 부호의 내부 또는 외부에 SPC(Single Parity Check) 부호를 부가하여 SPC 블록을 저장하는 단계는, 상기 블록 단위로 분할된 메시지 블록들의 XOR 합을 통하여 상기 SPC 블록을 생성하는 단계를 포함할 수 있다.According to another aspect of the present invention, a block-based concatenated BCH code for protecting the message in the two-dimensionally arranged message block is generated, and a single parity check (SPC) code is added to the inside or the outside of the block- And storing the SPC block may include generating the SPC block through an XOR sum of the message blocks divided in units of blocks.

또 다른 일측에 따르면, 상기 2차원으로 배치된 메시지 블록에 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호를 생성하고, 상기 블록 단위 연접 BCH 부호의 내부 또는 외부에 SPC(Single Parity Check) 부호를 부가하여 SPC 블록을 저장하는 단계는, 상기 블록 단위 연접 BCH 부호의 내부 또는 외부에 부가된 상기 SPC 블록의 크기를 조절하는 단계를 포함할 수 있다.According to another aspect of the present invention, a block-based concatenated BCH code for protecting the message in the two-dimensionally arranged message block is generated, and a single parity check (SPC) code is added to the inside or the outside of the block- And storing the SPC block may include adjusting a size of the SPC block added to the inside or the outside of the block unit concatenated BCH code.

일 실시예에 따른 복호기는, 메시지를 블록 단위로 분할하고, 상기 분할된 메시지 블록을 행과 열로 구성된 2차원으로 배치하는 배치부; 상기 2차원으로 배치된 메시지 블록에 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호를 생성하고, 상기 블록 단위 연접 BCH 부호의 내부 또는 외부에 SPC(Single Parity Check) 부호를 부가하여 SPC 블록을 저장하는 BC-BCH 부호 생성부; 오류가 발생함에 따라 상기 블록 단위 연접 BCH 부호의 제1 복호화를 수행하는 제1 복호부; 및 상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호의 제2 복호화를 수행하는 제2 복호부를 포함할 수 있다.The decoder according to one embodiment includes a layout unit that divides a message into blocks and arranges the divided message blocks in a two-dimensional array composed of rows and columns; Generates a block unit concatenated BCH code for protecting the message in the two-dimensionally arranged message block, and stores an SPC block by adding a single parity check (SPC) code to the inside or outside of the block unit concatenated BCH code A BC-BCH code generation unit; A first decoding unit which performs a first decoding of the block-based concatenated BCH code as an error occurs; And a second decoding unit for performing a second decoding of the block-based concatenated BCH code to correct an error remaining in a parity part of the block-based concatenated BCH code that has undergone the first decoding.

일 측에 따르면, 상기 제2 복호부는, SPC를 통하여 오류 정정이 가능한 오류 패턴으로 상기 블록 단위 연접 BCH 부호의 복호화를 수행할 수 있다.According to one aspect of the present invention, the second decoder can decode the block-based concatenated BCH code with an error pattern capable of error correction through the SPC.

또 다른 일측에 따르면, 상기 제2 복호부는, 상기 SPC 블록으로부터 오류가 발생한 복수의 메시지 블록의 합을 통하여 오류 정보를 수신하고, 상기 오류가 발생한 복수의 메시지 블록의 오류 정보를 이용하여 복호화를 수행할 수 있다.According to another aspect of the present invention, the second decoder receives error information through a sum of a plurality of message blocks in which an error has occurred from the SPC block, and performs decoding using error information of a plurality of message blocks in which the error occurred can do.

또 다른 일측에 따르면, 상기 제2 복호부는, 제1 복호화를 수행하여 최소화된 오류 정보를 포함하는 복수의 메시지 블록으로부터 상기 블록 단위 연접 BCH 부호의 복호화를 수행할 수 있다.According to another aspect of the present invention, the second decoder may perform the first decoding to decode the block-based concatenated BCH code from a plurality of message blocks including the minimized error information.

또 다른 일측에 따르면, 상기 제2 복호부는, 상기 오류가 발생한 복수의 메시지 블록의 위치 정보를 포함하고 있는 상기 SPC 블록을 통하여 Chase 복호를 수행할 수 있다.According to another aspect of the present invention, the second decoding unit may perform Chase decoding through the SPC block including positional information of a plurality of error-occurred message blocks.

또 다른 일측에 따르면, 상기 BC-BCH 부호 생성부는, 상기 SPC 부호의 부호화와 상기 블록 단위 연접 BCH 부호의 부호화를 병렬적으로 수행하는 방법 또는 상기 블록 단위 연접 BCH 부호의 부호화를 수행한 후 상기 SPC 부호의 부호화를 수행하는 방법 중 어느 하나의 방법을 수행할 수 있다.According to another aspect of the present invention, the BC-BCH code generation unit may perform the encoding of the SPC code and the encoding of the block-unit concatenated BCH code in parallel or the encoding of the block-based concatenated BCH code, Encoding of the code can be performed.

또 다른 일측에 따르면, 상기 BC-BCH 부호 생성부는, 상기 블록 단위로 분할된 메시지 블록 중 마지막 메시지 블록들의 XOR 합을 통하여 SPC 블록을 생성할 수 있다.According to another aspect of the present invention, the BC-BCH code generator may generate an SPC block by XORing the last message blocks among the message blocks divided in units of blocks.

또 다른 일측에 따르면, 상기 BC-BCH 부호 생성부는, 상기 블록 단위 연접 BCH 부호의 내부 또는 외부에 부가된 SPC 블록의 크기를 조절할 수 있다.
According to another aspect of the present invention, the BC-BCH code generator may adjust the size of the SPC block added to the inside or the outside of the block-unit concatenated BCH code.

일 실시예에 따른 복호기는 블록 단위 연접 BCH 부호의 외부에 SPC를 부가하는 방식을 취하여 원하는 성능에 따라 SPC 블록의 크기를 조절할 수 있으며, 이에 따라 패리티 사용량을 감소시키고 성능을 개선함으로써 오류마루 문제를 해소할 수 있다.The decoder according to an exemplary embodiment can adjust the size of an SPC block according to a desired performance by adopting a method of adding an SPC to a block-unit concatenated BCH code, thereby reducing parity usage and improving performance. Can be solved.

본 발명은 일 실시예에 따른 복호기는 SPC 합을 통하여 오류의 위치를 파악하고, Chase 복호를 통한 블록 단위 연접 BCH 부호의 성능을 개선할 수 있다.
The decoder according to an embodiment of the present invention can identify the location of an error through the sum of SPCs and improve the performance of a block-based concatenated BCH code through Chase decoding.

도 1은 일 실시예에 따른 복호기의 구성을 나타낸 블록도이다.
도 2는 본 발명의 기반이 되는 블록 단위 연접 BCH 부호 기술의 실시 예인 블록 단위 연접 BCH 부호의 구조를 도시한 도면이다.
도 3은 일 실시예에 따른 부호의 구조를 나타낸 도면이다.
도 4는 일 실시예에 따른 패턴화된 오류가 발생한 경우를 나타낸 도면이다.
도 5는 일 실시예에 따른 패턴화된 오류가 포함된 메시지 블록 중 하나의 메시지 블록에 SPC 정보를 부가함으로써 발생한 2가지 오류 패턴 중 오류가 적은 패턴으로 둘을 통일한 상황을 도시한 것이다.
도 6은 일 실시예에 따른 복호기의 복호 방법을 나타낸 흐름도이다.
도 7은 일 실시예에 따른 복호기의 성능 개선을 도시한 도면이다.
1 is a block diagram illustrating a configuration of a decoder according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a structure of a block-unit concatenated BCH code, which is an embodiment of a block-unit concatenated BCH code technique on which the present invention is based.
3 is a diagram illustrating a structure of a code according to an embodiment.
4 is a diagram illustrating a case where a patterned error occurs according to an embodiment.
FIG. 5 illustrates a situation in which two error patterns generated by adding SPC information to one message block among the message blocks including a patterned error according to an embodiment are unified in a pattern with a small error.
6 is a flowchart illustrating a decoding method of a decoder according to an embodiment of the present invention.
FIG. 7 is a diagram illustrating performance improvement of a decoder according to an embodiment.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 따른 복호기의 구성을 나타낸 블록도이다.1 is a block diagram illustrating a configuration of a decoder according to an embodiment of the present invention.

복호기(100)는 부호화된 메시지를 복호화를 수행하기 위한 장치로서, 배치부(110), 수행부(120), SPC 블록 저장부(130) 및 복호부(140)를 포함할 수 있다. The decoder 100 is an apparatus for decoding a coded message and may include a placement unit 110, an execution unit 120, an SPC block storage unit 130, and a decryption unit 140.

배치부(110)는 메시지를 블록 단위로 분할하고, 분할된 메시지 블록을 2차원으로 배치할 수 있다. 이때, 분할된 메시지 블록은 행과 열을 포함하는 2차원으로 구성될 수 있다. The arrangement unit 110 may divide the message into blocks and arrange the divided message blocks in two dimensions. At this time, the divided message block may be composed of two dimensions including rows and columns.

BC-BCH 부호 생성부(120)는 2차원으로 배치된 메시지 블록에 메시지를 보호하기 위한 블록 단위 연접 BCH 부호를 생성할 수 있고, 생성된 블록 단위 연접 BCH 부호의 내부 또는 외부에 SPC(Single Parity Check) 부호를 부가하여 SPC 블록을 저장할 수 있다. BC-BCH 부호 생성부(120)는 SPC 부호의 부호화와 블록 단위 연접 BCH 부호의 부호화를 병렬적으로 수행하는 방법 또는 블록 단위 연접 BCH 부호의 부호화를 수행한 후 SPC 부호의 부호화를 수행하는 방법 중 어느 하나의 방법을 수행할 수 있다. 이때, BC-BCH 부호 생성부(120)는 블록 단위로 분할된 메시지 블록들의 XOR 합을 통하여 SPC 블록을 생성할 수 있으며, 블록 단위 연접 BCH 부호의 내부 또는 외부에 부가된 SPC 블록의 크기를 조절할 수 있다. The BC-BCH code generation unit 120 can generate a block-unit concatenated BCH code for protecting a message in a two-dimensionally arranged message block, and generate a single parity (SPC) code inside or outside the generated block- Check) code to the SPC block. The BC-BCH code generation unit 120 performs a method of performing encoding of an SPC code and encoding of a block-unit concatenated BCH code in parallel, or a method of encoding an SPC code after performing encoding of a block-unit concatenated BCH code Either method can be performed. In this case, the BC-BCH code generator 120 can generate an SPC block by XORing the message blocks divided on a block basis, and adjust the size of the SPC block added to the inside or the outside of the block-unit concatenated BCH code .

제1 복호부(130)는 오류가 발생함에 따라 블록 단위 연접 BCH 부호의 제1 복호화를 수행할 수 있다. The first decoding unit 130 may perform the first decoding of the block-based concatenated BCH code as the error occurs.

제2 복호부(140)는 제1 복호화를 수행한 블록 단위 연접 BCH 부호의 패리티 부분에 남아있는 오류를 정정하기 위하여 블록 단위 연접 BCH 부호의 제2 복호화를 수행할 수 있다. 제2 복호부(140)는 SPC를 통하여 오류 정정이 가능한 오류 패턴으로 블록 단위 연접 BCH 부호의 복호화를 수행할 수 있다. The second decoding unit 140 may perform the second decoding of the block unit concatenated BCH code to correct an error remaining in the parity part of the block unit concatenated BCH code that has performed the first decoding. The second decoding unit 140 can decode the block-based concatenated BCH code with an error pattern capable of error correction through the SPC.

제2 복호부(140)는 SPC 블록으로부터 오류가 발생한 복수의 메시지 블록의 합을 통하여 오류 정보를 수신하고, 오류가 발생한 복수의 메시지 블록의 오류 정보를 이용하여 복호화를 수행할 수 있다. 제2 복호부(140)는 제1 복호화를 수행하여 최소화된 오류 정보를 포함하는 복수의 메시지 블록으로부터 블록 단위 연접 BCH 부호의 복호화를 수행할 수 있다.The second decoder 140 receives error information through a sum of a plurality of message blocks in which an error has occurred from the SPC block, and can perform decoding using error information of a plurality of error-occurred message blocks. The second decoding unit 140 may perform the first decoding to decode the block-based concatenated BCH code from the plurality of message blocks including the minimized error information.

제2 복호부(140)는 오류가 발생한 복수의 메시지 블록의 위치 정보를 포함하고 있는 SPC 블록을 통하여 Chase 복호를 수행할 수 있다. 이때, Chase 복호란 오류의 위치라 판단되는 비트들을 반전시킨 뒤 다시 복호를 수행하는 기법을 의미한다. The second decoding unit 140 can perform Chase decoding through the SPC block including the location information of a plurality of message blocks in which an error occurs. At this time, the Chase decoding means a technique of reversing the bits determined to be error locations and then performing decoding again.

도 2는 본 발명의 기반이 되는 블록 단위 연접 BCH 부호 기술의 실시 예인 블록 단위 연접 BCH 부호의 구조를 도시한 도면이다.FIG. 2 is a diagram illustrating a structure of a block-unit concatenated BCH code, which is an embodiment of a block-unit concatenated BCH code technique on which the present invention is based.

블록 단위 연접 BCH 부호는 도 2와 같이 표현할 수 있다. 즉, 부호화 하고자 하는 메시지는

Figure 112014121662052-pat00001
개로 나뉘어 메시지 블록
Figure 112014121662052-pat00002
와 같이 2차원으로 배치한 뒤, 각 행, 각 열을 BCH 부호를 통해 메시지를 보호하는 부호를 블록 단위 연접 BCH 부호(Block-Wise Concatenated BCH Codes)라고 한다.The block unit concatenated BCH code can be expressed as shown in FIG. That is, the message to be encoded is
Figure 112014121662052-pat00001
Message block
Figure 112014121662052-pat00002
, And a code for protecting a message through each BCH code for each row and each column is called a block-wise concatenated BCH code (BCH code).

도 2의 R로 표기된 블록들은 BCH 부호의 패리티를 도시한 결과이며, 이때, 블록 단위 연접 BCH 부호의 내부에 메시지 블록들의 XOR 합으로 생성된 블록을 SPC(Single Parity Check) 블록이라고 한다.Blocks denoted by R in FIG. 2 show the parity of a BCH code. In this case, a block generated by XOR summing of message blocks inside a block-unit concatenated BCH code is called a single parity check (SPC) block.

블록 단위 연접 BCH 부호의 오류마루를 형성하는 지배적인 오류 패턴은 행 부호 1개, 열 부호 1개가 복호에 실패하여 발생한 (1,1) 오류 패턴이다. 예를 들면, 나머지 부호들은 복호에 성공하고, 2번 행 부호, 2번 열 부호가 복호에 실패한 경우, 오른쪽으로 빗금친 영역에만 오류가 남아있음을 판단할 수 있다. 이때, 마지막 블록을 나머지 메시지 블록들의 XOR 합으로 생성해둔 경우라면, B2.2 를 나머지 B 블록들의 합으로 복원할 수 있다. 이를 통해 오류마루 성능을 개선할 수 있다. The dominant error pattern that forms the error floor of the block-unit concatenated BCH code is the (1, 1) error pattern generated by failure of decoding one row code and one column code. For example, when the decoding of the remaining codes succeeds and the decoding of the second row code and the second column code fails, it can be determined that an error remains only in the hatched area to the right. At this time, if the last block is generated by the XOR sum of the remaining message blocks, B 2.2 can be restored to the sum of the remaining B blocks. This can improve error floor performance.

도 3은 일 실시예에 따른 부호의 구조를 나타낸 도면이다.3 is a diagram illustrating a structure of a code according to an embodiment.

제안하는 부호의 구조는 블록의 일부만을 활용하여 XOR 합을 통해 생성한 블록 단위 연접 BCH 부호 바깥에 SPC 블록(310)을 저장할 수 있다. 블록 단위 연접 BCH 부호의 외부에 SPC 부호를 담는 방식을 취하며, 원하는 성능에 따라 SPC 블록(310)의 크기를 조절할 수 있도록 설계한다. 또한, 제안하는 부호의 구조는 블록의 일부만을 활용하여 XOR 합을 통해 블록 단위 연접 BCH 부호 안에 SPC블록(310)을 저장하고, 블록 단위 연접 BCH SPC블록(310)의 크기를 변경할 수도 있다. SPC 블록의 크기 및 각 블록에서 SPC를 활용하는 위치에 자유도가 생길 수 있다. The structure of the proposed code can store the SPC block 310 outside the block unit concatenated BCH code generated through XOR sum using only a part of the block. The SPC code is stored outside the block-unit concatenated BCH code, and the size of the SPC block 310 is adjusted according to the desired performance. In addition, the proposed code structure may use only a part of the blocks to store the SPC block 310 in the block-unit concatenated BCH code through the XOR sum, and to change the size of the block-unit concatenated BCH SPC block 310. There may be a degree of freedom in the size of the SPC block and the location where the SPC is utilized in each block.

부호기는 SPC와 블록 단위 연접 BCH 부호화를 순차적으로 처리할 수 있다. 또한, SPC 부호의 부호화와 블록 단위 연접 BCH 부호화를 순차적으로 처리하지 않고 병렬로 처리할 수도 있다. 이때, SPC 부호의 부호화와 블록 단위 연접 BCH 부호의 부호화를 병렬적으로 처리하는 방법 또는 블록 단위 연접 BCH 부호의 부호화를 수행한 후 SPC 부호의 부호화를 수행하는 방법 중 어느 하나의 방법을 통하여 처리할 수 있다. SPC부호의 부호화와 블록 단위 연접 BCH 부호화를 순차적으로 또는 병렬로 수행함으로써 부호화된 메시지를 생성할 수 있다.The encoder can process the SPC and block-unit concatenated BCH coding sequentially. In addition, the SPC code encoding and the block-unit concatenated BCH encoding may be performed in parallel without sequentially processing. At this time, either the method of processing the SPC code and the encoding of the block unit concatenated BCH code in parallel, or the method of performing the encoding of the SPC code after performing the coding of the block unit concatenated BCH code . The encoded message can be generated by performing the SPC code encoding and the block-based concatenated BCH encoding sequentially or in parallel.

일 실시예에 따른 부호의 구조를 통하여 SPC로 활용하는 패리티 양을 조절함으로써 목표 성능에 따라 패리티를 보다 효율적으로 활용할 수 있다.By adjusting the amount of parity used as the SPC through the structure of the code according to the embodiment, the parity can be utilized more efficiently according to the target performance.

복호기는 (1, 1) 오류를 부분적으로 정정할 뿐 아니라, SPC 블록을 외부에 저장하기 때문에 SPC 복호 이후에 블록 단위 연접 BCH 부호의 복호를 수행한다.The decoder not only partially corrects the (1, 1) error but also decodes the block-based concatenated BCH code after SPC decoding because it stores the SPC block externally.

도 4는 일 실시예에 따른 패턴화된 오류가 발생한 경우를 나타낸 도면이다.4 is a diagram illustrating a case where a patterned error occurs according to an embodiment.

복호기는 (1, 1) 오류뿐만 아니라, (2, 1) 또는 (1, 2) 오류 패턴을 제거할 수 있다. 예를 들면, 2번 행 및 3번 행 부호의 4번 열 부호가 복호에 실패했다고 가정하자. 그러면, 복호기는 SPC 블록으로부터

Figure 112014121662052-pat00003
의 정보를 획득할 수 있다. 이때, 획득된
Figure 112014121662052-pat00004
정보로부터 SPC 정보를
Figure 112014121662052-pat00005
에 더할 수 있고 SPC 정보를
Figure 112014121662052-pat00006
에 더할 수 있다. The decoder can remove (2, 1) or (1, 2) error patterns as well as (1, 1) errors. For example, suppose that the fourth column code of the second row and third row code fails to decode. Then, the decoder decodes the
Figure 112014121662052-pat00003
Can be obtained. At this time,
Figure 112014121662052-pat00004
SPC information from information
Figure 112014121662052-pat00005
And SPC information.
Figure 112014121662052-pat00006
.

SPC 정보를

Figure 112014121662052-pat00007
에 더함으로써 생성된 패턴에 대하여 복호를 수행하고, SPC 정보를
Figure 112014121662052-pat00008
에 더함으로써 생성된 패턴에 대하여 복호를 수행해봄으로써 최소화된 오류 패턴오류 패턴 중 더 적은 오류 정보를 가지고 있는 오류 패턴을 이용하여 다시 복호를 시도할 수 있다. SPC information
Figure 112014121662052-pat00007
And decodes the generated SPC information.
Figure 112014121662052-pat00008
It is possible to attempt decoding again using an error pattern having less error information among the minimized error pattern error patterns by performing decoding on the generated pattern.

도 5는 일 실시예에 따른 패턴화된 오류가 포함된 메시지 블록 중 하나의 메시지 블록에 SPC 정보를 부가함으로써 발생한 2가지 오류 패턴 중 오류가 적은 패턴으로 둘을 통일한 상황을 도시한 것이다.FIG. 5 illustrates a situation in which two error patterns generated by adding SPC information to one message block among the message blocks including a patterned error according to an embodiment are unified in a pattern with a small error.

복호기는 (1, 1) 오류뿐만 아니라, (2, 1) 또는 (1, 2) 오류 패턴을 제거할 수 있다. 예를 들면, 2번 행 및 3번 행 부호의 4번 열 부호가 복호에 실패했다고 가정하자. 그러면, 복호기는 SPC 블록으로부터

Figure 112014121662052-pat00009
의 정보를 획득할 수 있고, 오류를 최소화하여 복호를 수행할 수 있다. The decoder can remove (2, 1) or (1, 2) error patterns as well as (1, 1) errors. For example, suppose that the fourth column code of the second row and third row code fails to decode. Then, the decoder decodes the
Figure 112014121662052-pat00009
It is possible to acquire the information of the error, and to perform the decoding with minimizing the error.

이때, 획득된

Figure 112014121662052-pat00010
정보로부터 SPC 정보를
Figure 112014121662052-pat00011
에 더할 수 있고
Figure 112014121662052-pat00012
에 더할 수 있다. SPC 정보를
Figure 112014121662052-pat00013
에 더함으로써 생성된 패턴에 대하여 복호를 수행하고, SPC 정보를
Figure 112014121662052-pat00014
에 더함으로써 생성된 패턴에 대하여 복호를 수행해봄으로써 최소화된 오류 패턴오류 패턴 중 더 적은 오류 정보를 가지고 있는 오류 패턴을 이용하여 다시 복호를 시도할 수 있다. At this time,
Figure 112014121662052-pat00010
SPC information from information
Figure 112014121662052-pat00011
Can add to
Figure 112014121662052-pat00012
. SPC information
Figure 112014121662052-pat00013
And decodes the generated SPC information.
Figure 112014121662052-pat00014
It is possible to attempt decoding again using an error pattern having less error information among the minimized error pattern error patterns by performing decoding on the generated pattern.

복호기는

Figure 112014121662052-pat00015
이라고 하는 오류의 위치 정보를 갖고 있기 때문에 Chase 복호를 수행할 수 있다. 이때, Chase 복호는 오류의 위치라 판단되는 비트들을 반전시킨 뒤 다시 복호를 수행하는 기법을 의미할 수 있다. The decoder
Figure 112014121662052-pat00015
It is possible to perform Chase decoding. At this time, the Chase decoding may be a technique of inverting bits determined to be error locations and then performing decoding again.

도 6은 일 실시예에 따른 복호기의 복호 방법을 나타낸 흐름도이다.6 is a flowchart illustrating a decoding method of a decoder according to an embodiment of the present invention.

복호 방법은 복호기에 의하여 수행될 수 있으며, 복호기에 대한 설명은 도 1 내지 도 5를 참고하기로 한다. The decoding method can be performed by a decoder, and a decoder will be described with reference to FIGS. 1 to 5. FIG.

단계(610)에서 복호기는 메시지를 블록 단위로 분할하고, 분할된 메시지 블록을 행과 열로 구성된 2차원으로 배치할 수 있다. In step 610, the decoder may divide the message into blocks and arrange the divided message blocks into two-dimensional rows and columns.

단계(620)에서 복호기는 2차원으로 배치된 메시지 블록에 메시지를 보호하기 위한 블록 단위 연접 BCH 부호를 생성하고, 블록 단위 연접 BCH 부호의 내부 또는 외부에 SPC 부호를 부가하여 SPC블록을 저장할 수 있다. 복호기는 SPC 부호의 부호화와 블록 단위 연접 BCH 부호의 부호화를 병렬적으로 수행하는 방법 또는 블록 단위 연접 BCH 부호의 부호화를 수행한 후 SPC 부호의 부호화를 수행하는 방법 중 어느 하나의 방법을 수행할 수 있다. 복호기는 블록 단위로 분할된 메시지 블록들의 XOR 합을 통하여 SPC 블록을 생성할 수 있으며, 블록 단위 연접 BCH 부호의 내부 또는 외부에 부가된 SPC 블록의 크기를 조절할 수 있다. In step 620, the decoder generates a block-unit concatenated BCH code for protecting a message in a two-dimensionally arranged message block, and stores an SPC block by adding an SPC code to the inside or the outside of the block-unit concatenated BCH code . The decoder can perform either the method of performing the coding of the SPC code and the coding of the block-unit concatenated BCH code in parallel, or the method of performing the coding of the block-unit concatenated BCH code and the coding of the SPC code have. The decoder can generate the SPC block by XORing the message blocks divided by the block unit and adjust the size of the SPC block added to the inside or the outside of the block unit concatenated BCH code.

단계(630)에서 복호기는 오류가 발생함에 따라 블록 단위 연접 BCH 부호의 제1 복호화를 수행할 수 있다. In step 630, the decoder may perform the first decoding of the block-based concatenated BCH code as the error occurs.

단계(640)에서 복호기는 제1 복호화를 수행한 블록 단위 연접 BCH 부호의 패리티 부분에 남아있는 오류를 정정하기 위하여 블록 단위 연접 BCH 부호의 제2 복호화를 수행할 수 있다. 복호기는 SPC를 통하여 오류 정정이 가능한 오류 패턴으로 블록 단위 연접 BCH 부호의 부호화를 수행할 수 있다.In step 640, the decoder may perform a second decoding of the block-unit concatenated BCH code to correct an error remaining in the parity part of the block-unit concatenated BCH code that has performed the first decoding. The decoder can perform coding of a block-unit concatenated BCH code with an error pattern capable of error correction through the SPC.

복호기는 SPC 블록으로부터 오류가 발생한 복수의 메시지 블록의 합을 통하여 오류 정보를 수신하고, 오류가 발생한 복수의 메시지 블록의 오류 정보를 이용하여 복호화를 수행할 수 있다. 복호기는 제1 복호화를 수행하여 최소화된 오류 정보를 포함하는 복수의 메시지 블록으로부터 블록 단위 연접 BCH 부호의 복호화를 수행할 수 있다.The decoder receives error information through a sum of a plurality of message blocks in which an error has occurred from the SPC block, and can perform decoding using error information of a plurality of error-occurred message blocks. The decoder may perform the first decoding to decode the block-based concatenated BCH code from the plurality of message blocks including the minimized error information.

복호기는 오류가 발생한 복수의 메시지 블록의 위치 정보를 포함하고 있는 SPC 블록을 통하여 Chase 복호를 수행할 수 있다. The decoder can perform Chase decoding through an SPC block including position information of a plurality of message blocks in which an error occurs.

도 7은 일 실시예에 따른 복호기의 성능 개선을 도시한 도면이다. FIG. 7 is a diagram illustrating performance improvement of a decoder according to an embodiment.

복호기는 SPC로 활용하는 패리티 양을 조절 가능함에 따라 목표 성능에 따라 패리티를 보다 효율적으로 활용할 수 있다. 도 7에서 부호율이 0.93, 메시지 길이가 8KB라고 가정하자. 개별 구성 부호가 다른 부호로 복호되는 일을 무시한 경우의 예상 성능을 그래프로 나타낸 것이다. Since the decoder can adjust the amount of parity used as the SPC, the parity can be utilized more efficiently according to the target performance. In FIG. 7, assume that the coding rate is 0.93 and the message length is 8 KB. And the expected performance in the case where the individual constituent code is neglected to be decoded by another code is shown in a graph.

그래프를 통하여 블록 단위 연접 BCH 부호의 성능, 기존 방식에 따른 오류마루, 최소화된 오류 정보를 포함하는 복수의 메시지 블록으로부터 복호를 수행한 방식 및 Chase 복호까지 결합한 방식을 출력함으로써 각각의 성능을 비교할 수 있다. Through the graph, it is possible to compare the performance of each block by outputting the combination of the performance of the block-based concatenated BCH code, the error floor according to the existing method, the method of performing decoding from a plurality of message blocks including the minimized error information, have.

일 실시예에 따른 복호기는 매우 낮을 오류율을 요구하는 메모리와 같은 분야에서 블록 단위 연접 BCH 부호를 활용할 수 있다. 이때, 블록 단위 연접 BCH 부호는 성능과 오류마루가 Trade off 관계에 있으므로, 본 발명에서 제안한 기술을 통해 보다 효율적(예를 들면, 패리티 사용량 감소 및 성능 개선)으로 오류마루 문제를 해소할 수 있다. 이에 따라 개선된 오류마루로부터 블록 단위 연접 BCH 부호의 성능을 개선할 수 있다. The decoder according to an exemplary embodiment may utilize a block-based concatenated BCH code in a field such as a memory requiring a very low error rate. At this time, since the performance of the block-based concatenated BCH code is related to the trade-off between the performance and the error floor, the error flooring problem can be solved more efficiently through the technique proposed in the present invention (for example, reduction in parity usage and improvement in performance). Thus, the performance of the block-based concatenated BCH code can be improved from the improved error floor.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on 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 an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

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

Claims (16)

메시지를 블록 단위로 분할하고, 상기 분할된 메시지 블록을 행과 열로 구성된 2차원으로 배치하는 단계;
상기 2차원으로 배치된 메시지 블록의 각행과 각 열을 BCH 부호를 통해 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호어를 생성하고, 상기 블록 단위로 분할된 메시지 블록들의 XOR 합을 통하여 생성된 SPC(Single Parity Check) 블록을 상기 블록 단위 연접 BCH 부호어의 내부 또는 외부에 저장하는 단계;
오류가 발생함에 따라 상기 블록 단위 연접 BCH 부호어의 제1 복호화를 수행하는 단계; 및
상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호어의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호어의 제2 복호화를 수행하는 단계
를 포함하고,
상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호어의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호어의 제2 복호화를 수행하는 단계는,
상기 SPC 블록으로부터 오류가 발생한 복수의 메시지 블록의 합을 통하여 오류 정보를 수신하는 단계; 및
상기 오류가 발생한 복수의 메시지 블록의 오류 정보를 이용하여 복호화를 수행하는 단계
를 포함하는 복호 방법.
Dividing a message into blocks, and arranging the divided message blocks in two-dimensionally composed of rows and columns;
Generates a block-based concatenated BCH codeword for protecting the message through the BCH code, and generates an SPC generated by XORing the message blocks divided in the block unit, (Single Parity Check) block inside or outside the block-based concatenated BCH codeword;
Performing a first decoding of the block-based concatenated BCH codeword when an error occurs; And
Performing a second decoding of the block-based concatenated BCH codeword to correct an error remaining in a parity part of the block-based concatenated BCH codeword performing the first decoding;
Lt; / RTI >
Performing a second decoding of the block-based concatenated BCH codeword to correct an error remaining in a parity part of the block-based concatenated BCH codeword that has performed the first decoding,
Receiving error information through a sum of a plurality of message blocks in which an error has occurred from the SPC block; And
Performing decoding using error information of a plurality of message blocks in which the error occurs;
.
제1항에 있어서,
상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호어의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호어의 제2 복호화를 수행하는 단계는,
오류 패턴이 발생한 경우 상기 오류 패턴에 대하여 SPC 부호를 이용하여 상기 블록 단위 연접 BCH 부호어의 복호화를 수행하는 단계
를 포함하는 복호 방법.
The method according to claim 1,
Performing a second decoding of the block-based concatenated BCH codeword to correct an error remaining in a parity part of the block-based concatenated BCH codeword that has performed the first decoding,
Performing decoding of the block-based concatenated BCH codeword using the SPC code for the error pattern when an error pattern is generated
.
삭제delete 제1항에 있어서,
상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호어의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호어의 제2 복호화를 수행하는 단계는,
상기 제1 복호화를 수행하여 최소화된 오류 정보를 포함하는 복수의 메시지 블록으로부터 상기 블록 단위 연접 BCH 부호어의 복호화를 수행하는 단계
를 포함하는 복호 방법.
The method according to claim 1,
Performing a second decoding of the block-based concatenated BCH codeword to correct an error remaining in a parity part of the block-based concatenated BCH codeword that has performed the first decoding,
Performing decryption of the block-based concatenated BCH codeword from a plurality of message blocks including the minimized error information by performing the first decoding;
.
메시지를 블록 단위로 분할하고, 상기 분할된 메시지 블록을 행과 열로 구성된 2차원으로 배치하는 단계;
상기 2차원으로 배치된 메시지 블록의 각행과 각 열을 BCH 부호를 통해 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호어를 생성하고, 상기 블록 단위로 분할된 메시지 블록들의 XOR 합을 통하여 생성된 SPC(Single Parity Check) 블록을 상기 블록 단위 연접 BCH 부호어의 내부 또는 외부에 저장하는 단계;
오류가 발생함에 따라 상기 블록 단위 연접 BCH 부호어의 제1 복호화를 수행하는 단계; 및
상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호어의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호어의 제2 복호화를 수행하는 단계
를 포함하고,
상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호어의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호어의 제2 복호화를 수행하는 단계는,
상기 오류가 발생한 복수의 메시지 블록의 위치 정보를 포함하고 있는 상기 SPC 블록을 통하여 Chase 복호를 수행하는 단계
를 포함하는 복호 방법.
Dividing a message into blocks, and arranging the divided message blocks in two-dimensionally composed of rows and columns;
Generates a block-based concatenated BCH codeword for protecting the message through the BCH code, and generates an SPC generated by XORing the message blocks divided in the block unit, (Single Parity Check) block inside or outside the block-based concatenated BCH codeword;
Performing a first decoding of the block-based concatenated BCH codeword when an error occurs; And
Performing a second decoding of the block-based concatenated BCH codeword to correct an error remaining in a parity part of the block-based concatenated BCH codeword performing the first decoding;
Lt; / RTI >
Performing a second decoding of the block-based concatenated BCH codeword to correct an error remaining in a parity part of the block-based concatenated BCH codeword that has performed the first decoding,
Performing Chase decoding through the SPC block including position information of a plurality of message blocks in which the error occurs;
.
제1항에 있어서,
상기 2차원으로 배치된 메시지 블록의 각행과 각 열을 BCH 부호를 통해 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호어를 생성하고, 상기 블록 단위로 분할된 메시지 블록들의 XOR 합을 통하여 생성된 SPC(Single Parity Check) 블록을 상기 블록 단위 연접 BCH 부호어의 내부 또는 외부에 저장하는 단계는,
SPC 부호의 부호화와 상기 블록 단위 연접 BCH 부호어의 부호화를 병렬적으로 수행하는 방법 또는 상기 블록 단위 연접 BCH 부호어의 부호화를 수행한 후 상기 SPC 부호의 부호화를 수행하는 방법 중 어느 하나의 방법을 수행하는 단계
를 포함하는 복호 방법.
The method according to claim 1,
Generates a block-based concatenated BCH codeword for protecting the message through the BCH code, and generates an SPC generated by XORing the message blocks divided in the block unit, (Single Parity Check) block inside or outside the block-based concatenated BCH codeword,
A method of performing the encoding of the SPC code and the encoding of the block unit concatenated BCH codeword in parallel or a method of performing the encoding of the SPC code after performing the encoding of the block unit concatenated BCH codeword Steps to Perform
.
삭제delete 제1항에 있어서,
상기 2차원으로 배치된 메시지 블록의 각행과 각 열을 BCH 부호를 통해 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호어를 생성하고, 상기 블록 단위로 분할된 메시지 블록들의 XOR 합을 통하여 생성된 SPC(Single Parity Check) 블록을 상기 블록 단위 연접 BCH 부호어의 내부 또는 외부에 저장하는 단계는,
상기 블록 단위 연접 BCH 부호어의 내부 또는 외부에 부가된 상기 SPC 블록의 크기를 조절하는 단계
를 포함하는 복호 방법.
The method according to claim 1,
Generates a block-based concatenated BCH codeword for protecting the message through the BCH code, and generates an SPC generated by XORing the message blocks divided in the block unit, (Single Parity Check) block inside or outside the block-based concatenated BCH codeword,
Adjusting a size of the SPC block added to the inside or the outside of the block-based concatenated BCH codeword
.
메시지를 블록 단위로 분할하고, 상기 분할된 메시지 블록을 행과 열로 구성된 2차원으로 배치하는 배치부;
상기 2차원으로 배치된 메시지 블록의 각행과 각 열을 BCH 부호를 통해 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호어를 생성하고, 상기 블록 단위로 분할된 메시지 블록들의 XOR 합을 통하여 생성된 SPC(Single Parity Check) 블록을 상기 블록 단위 연접 BCH 부호어의 내부 또는 외부에 저장하는 BC-BCH 부호 생성부;
오류가 발생함에 따라 상기 블록 단위 연접 BCH 부호어의 제1 복호화를 수행하는 제1 복호부; 및
상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호어의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호어의 제2 복호화를 수행하는 제2 복호부
를 포함하고,
상기 제2 복호부는,
상기 SPC 블록으로부터 오류가 발생한 복수의 메시지 블록의 합을 통하여 오류 정보를 수신하고, 상기 오류가 발생한 복수의 메시지 블록의 오류 정보를 이용하여 복호화를 수행하는 복호기.
A layout unit for dividing a message into blocks and arranging the divided message blocks in two dimensions composed of rows and columns;
Generates a block-based concatenated BCH codeword for protecting the message through the BCH code, and generates an SPC generated by XORing the message blocks divided in the block unit, A BC-BCH code generator for storing a Single Parity Check (BCCH) block inside or outside the block-based concatenated BCH codeword;
A first decoding unit for performing a first decoding of the block-based concatenated BCH codeword when an error occurs; And
A second decoding unit for performing a second decoding of the block-based concatenated BCH codeword to correct an error remaining in a parity part of the block-based concatenated BCH codeword that has performed the first decoding,
Lt; / RTI >
Wherein the second decoding unit comprises:
Receiving error information through a sum of a plurality of message blocks in which an error occurs from the SPC block, and performing decoding using error information of a plurality of message blocks in which the error occurred.
제9항에 있어서,
상기 제2 복호부는,
오류 패턴이 발생한 경우 상기 오류 패턴에 대하여 SPC 부호를 이용하여 상기 블록 단위 연접 BCH 부호어의 복호화를 수행하는
복호기.
10. The method of claim 9,
Wherein the second decoding unit comprises:
When an error pattern is generated, decodes the block-based concatenated BCH codeword using the SPC code for the error pattern
Decoder.
삭제delete 제9항에 있어서,
상기 제2 복호부는,
상기 제1 복호화를 수행하여 최소화된 오류 정보를 포함하는 복수의 메시지 블록으로부터 상기 블록 단위 연접 BCH 부호어의 복호화를 수행하는
복호기.
10. The method of claim 9,
Wherein the second decoding unit comprises:
And performs the first decoding to decode the block-based concatenated BCH codeword from a plurality of message blocks including the minimized error information
Decoder.
메시지를 블록 단위로 분할하고, 상기 분할된 메시지 블록을 행과 열로 구성된 2차원으로 배치하는 배치부;
상기 2차원으로 배치된 메시지 블록의 각행과 각 열을 BCH 부호를 통해 상기 메시지를 보호하기 위한 블록 단위 연접 BCH 부호어를 생성하고, 상기 블록 단위로 분할된 메시지 블록들의 XOR 합을 통하여 생성된 SPC(Single Parity Check) 블록을 상기 블록 단위 연접 BCH 부호어의 내부 또는 외부에 저장하는 BC-BCH 부호 생성부;
오류가 발생함에 따라 상기 블록 단위 연접 BCH 부호어의 제1 복호화를 수행하는 제1 복호부; 및
상기 제1 복호화를 수행한 상기 블록 단위 연접 BCH 부호어의 패리티 부분에 남아있는 오류를 정정하기 위하여 상기 블록 단위 연접 BCH 부호어의 제2 복호화를 수행하는 제2 복호부
를 포함하고,
상기 제2 복호부는,
상기 오류가 발생한 복수의 메시지 블록의 위치 정보를 포함하고 있는 상기 SPC 블록을 통하여 Chase 복호를 수행하는 복호기.
A layout unit for dividing a message into blocks and arranging the divided message blocks in two dimensions composed of rows and columns;
Generates a block-based concatenated BCH codeword for protecting the message through the BCH code, and generates an SPC generated by XORing the message blocks divided in the block unit, A BC-BCH code generator for storing a Single Parity Check (BCCH) block inside or outside the block-based concatenated BCH codeword;
A first decoding unit for performing a first decoding of the block-based concatenated BCH codeword when an error occurs; And
A second decoding unit for performing a second decoding of the block-based concatenated BCH codeword to correct an error remaining in a parity part of the block-based concatenated BCH codeword that has performed the first decoding,
Lt; / RTI >
Wherein the second decoding unit comprises:
And performs a Chase decoding through the SPC block including position information of a plurality of message blocks in which the error occurs.
제9항에 있어서,
상기 BC-BCH 부호 생성부는,
SPC 부호의 부호화와 상기 블록 단위 연접 BCH 부호어의 부호화를 병렬적으로 수행하는 방법 또는 상기 블록 단위 연접 BCH 부호어의 부호화를 수행한 후 상기 SPC 부호의 부호화를 수행하는 방법 중 어느 하나의 방법을 수행하는 복호기.
10. The method of claim 9,
Wherein the BC-BCH code generator comprises:
A method of performing the encoding of the SPC code and the encoding of the block unit concatenated BCH codeword in parallel or a method of performing the encoding of the SPC code after performing the encoding of the block unit concatenated BCH codeword A decoder to perform.
삭제delete 제9항에 있어서,
상기 BC-BCH 부호 생성부는,
상기 블록 단위 연접 BCH 부호어의 내부 또는 외부에 부가된 SPC 블록의 크기를 조절하는
복호기.
10. The method of claim 9,
Wherein the BC-BCH code generator comprises:
The size of the SPC block added to the inside or the outside of the block-based concatenated BCH codeword is adjusted
Decoder.
KR1020140180403A 2014-12-15 2014-12-15 Error correcting methods and circuit for improving block-wise concatenated bch codes KR101644712B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140180403A KR101644712B1 (en) 2014-12-15 2014-12-15 Error correcting methods and circuit for improving block-wise concatenated bch codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140180403A KR101644712B1 (en) 2014-12-15 2014-12-15 Error correcting methods and circuit for improving block-wise concatenated bch codes

Publications (2)

Publication Number Publication Date
KR20160072890A KR20160072890A (en) 2016-06-24
KR101644712B1 true KR101644712B1 (en) 2016-08-02

Family

ID=56343107

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140180403A KR101644712B1 (en) 2014-12-15 2014-12-15 Error correcting methods and circuit for improving block-wise concatenated bch codes

Country Status (1)

Country Link
KR (1) KR101644712B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10700712B2 (en) 2017-10-02 2020-06-30 SK Hynix Inc. Semiconductor device including error correction code unit that generates data block matrix including plural parity blocks and plural data block groups diagonally arranged, and methods of operating the same

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102394695B1 (en) 2017-11-08 2022-05-10 에스케이하이닉스 주식회사 Memory system and operation method thereof
KR102455880B1 (en) 2018-01-12 2022-10-19 에스케이하이닉스 주식회사 Memory system and operating method of memory system
KR20200088634A (en) 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 Memory system, data processing system and operation method of the data processing system
US11636014B2 (en) 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same
KR102387181B1 (en) 2017-10-31 2022-04-19 에스케이하이닉스 주식회사 Computing device system and operation method thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5007676B2 (en) * 2008-01-31 2012-08-22 富士通株式会社 Encoding device, decoding device, encoding / decoding device, and recording / reproducing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10700712B2 (en) 2017-10-02 2020-06-30 SK Hynix Inc. Semiconductor device including error correction code unit that generates data block matrix including plural parity blocks and plural data block groups diagonally arranged, and methods of operating the same

Also Published As

Publication number Publication date
KR20160072890A (en) 2016-06-24

Similar Documents

Publication Publication Date Title
KR101644712B1 (en) Error correcting methods and circuit for improving block-wise concatenated bch codes
KR102601215B1 (en) Apparatus for polar coding
US9300329B2 (en) Turbo-product codes (TPC) with interleaving
US9559727B1 (en) Stopping rules for turbo product codes
KR20100081551A (en) Decoding method and memory system device for using the method
US10439649B2 (en) Data dependency mitigation in decoder architecture for generalized product codes for flash storage
EP2810280A1 (en) Erasure correcting codes for storage arrays
US9160367B2 (en) Integrated-interleaved low density parity check (LDPC) codes
WO2010000152A1 (en) Method and device for burst correction
EP2695300A2 (en) Encoding and decoding techniques using low-density parity check codes
US10498366B2 (en) Data dependency mitigation in parallel decoders for flash storage
US9454426B2 (en) Codes of length tn invariant under rotations of order n
US9960788B2 (en) Memory controller, semiconductor memory device, and control method for semiconductor memory device
US10263643B2 (en) Method and system of multi-fold data protection for high-density storage appliance with improved availability and robustness
US10291258B2 (en) Error correcting code for correcting single symbol errors and detecting double bit errors
US20150200686A1 (en) Encoding device, decoding device, and operating method thereof
US9252815B2 (en) Extension of product codes with applications to tape and parallel channels
US8918705B1 (en) Error recovery by modifying soft information
US10326477B2 (en) Techniques for miscorrection detection for constituent codewords in product codes
US20210288667A1 (en) Encoding method and device, decoding method and device, and storage medium
CN107659319B (en) Method and device for encoding Turbo product code
JP7429223B2 (en) Turbo product code decoding method, device, decoder and computer storage medium
KR101684157B1 (en) Error correcting system and method using rs-ldpc concatenated coding
CN111525931B (en) LDPC decoder, LDPC decoding method, storage medium and electronic apparatus
US20190114228A1 (en) Bose-chaudhuri-hocquenchem (bch) encoding and decoding tailored for redundant array of inexpensive disks (raid)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190625

Year of fee payment: 4