KR101355982B1 - Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same - Google Patents
Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same Download PDFInfo
- Publication number
- KR101355982B1 KR101355982B1 KR1020120073373A KR20120073373A KR101355982B1 KR 101355982 B1 KR101355982 B1 KR 101355982B1 KR 1020120073373 A KR1020120073373 A KR 1020120073373A KR 20120073373 A KR20120073373 A KR 20120073373A KR 101355982 B1 KR101355982 B1 KR 101355982B1
- Authority
- KR
- South Korea
- Prior art keywords
- decoding
- output
- code
- bch
- bch code
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/27—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 using interleaving techniques
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 연접 BCH 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치에 관한 것으로, 플래쉬 메모리 장치를 위한 부호, 복호 및 다계층 복호를 통해서 오류 정도에 따라 지연 시간을 조정할 수 있다.
본 발명에 의한 연접 BCH 다계층 복호 회로는, 본 발명에 의한 연접 BCH 부호 회로는, 연접 BCH 부호 일부를 인가받아 BCH 복호를 수행하여 제 1 출력 BCH 부호 또는 그에 의해 보호되는 제 1 출력 데이터를 출력하는 제 1 스테이지 복호부; 상기 제 1 출력 BCH 부호 또는 상기 제1 출력 데이터를 두 개 이상의 블록(block)으로 나눠 디인터리빙(de-interleaving)하여 출력하는 디인터리빙부; 상기 디인터리빙부의 출력을 BCH 복호하여 제 2 출력 BCH 부호 또는 그에 의해 보호되는 제 2 출력 데이터를 출력하는 제 2 스테이지 복호부; 상기 제 2 출력 BCH 부호 또는 상기 제 2 출력 데이터를 두 개 이상의 블록으로 나눠 인터리빙하여 상기 제 1 스테이지 복호부로 출력하는 인터리빙부; 및 상기 제 1 및 제 2 스테이지 복호부의 동작 상태를 모니터링하여 복호 성공 블록을 파악하고, 복호 성공 블록에 대해서는 새로운 연접 BCH 부호를 입력받을 때 까지 전력 공급을 일시 차단하는 디코더 전력 제어부;를 포함하고 있다.The present invention relates to a concatenated BCH code, a decoding and multi-layer decoding circuit and method, an error correction circuit and a flash memory device of a flash memory device using the same, and to a degree of error through a code, decoding and multi-layer decoding for a flash memory device. The delay time can be adjusted accordingly.
In the concatenated BCH multi-layer decoding circuit according to the present invention, the concatenated BCH code circuit according to the present invention receives a portion of the concatenated BCH code and performs BCH decoding to output a first output BCH code or first output data protected by the concatenated BCH code. A first stage decoder; A deinterleaving unit for de-interleaving and outputting the first output BCH code or the first output data into two or more blocks; A second stage decoder for BCH decoding the output of the deinterleaving unit to output a second output BCH code or second output data protected by the second output BCH code; An interleaving unit dividing the second output BCH code or the second output data into two or more blocks and interleaving the interleaving unit to output the first output BCH code to the first stage decoder; And a decoder power controller configured to monitor operation states of the first and second stage decoders to identify a decoding success block, and temporarily cut off power supply until a new concatenated BCH code is input to the decoding success block. .
Description
본 발명은 연접 BCH(Bose-Chadhuri-Hocquenghem) 부호(Encode), 복호(Decode) 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치에 관한 것이다. 보다 상세하게는, 연접 BCH 부호를 통해서 플래쉬 메모리에 대한 오류 정정 성능을 향상시키고, 다계층 복호를 통해서 오류 정도에 따라 지연 시간을 조정하고, 이에 더 나아가 전력 소비량까지 획기적으로 감소시킬 수 있는 연접 BCH 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치에 관한 것이다.
The present invention relates to concatenated Bose-Chadhuri-Hocquenghem (BCH) Encode, Decode, and multilayer decoding circuits and methods, and error correction circuits and flash memory devices of flash memory devices using the same. More specifically, the concatenated BCH code improves the error correction performance of the flash memory, and the multi-layer decoding adjusts the delay time according to the degree of error, and further reduces the power consumption significantly. A code, decoding and multi-layer decoding circuit and method, and an error correction circuit and a flash memory device of a flash memory device using the same.
근래에 들어 많은 전자 제품에서 사용되는 프로세서 및 램 등의 주기억장치의 스피드가 빨라짐에 따라서 보조 기억 장치의 속도에 의해서 전자 제품의 연산 처리 속도가 결정되는 병목 현상이 심화되고 있다. 기존의 보조 기억 장치로 주로 사용되던 것은 HDD(Hard Disk Drive)와 같은 자기를 저장하는 장치, CD나 DVD와 같은 광디스크 장치(ODD, Optic Disc Drive)들이 사용되었다. 그중, 광디스크 장치는 데이터 입출력이 자유롭지 않으며 데이터 출력의 속도 또한 극히 느렸다. 또한, 자기를 저장하는 장치는 광디스크 장치에 비해서 속도가 빠르긴 하나 여전히 병목 현상을 발생시킬 뿐만 아니라 충격에 의해서 쉽게 데이터가 훼손되거나 소실될 우려가 있었다.In recent years, as the speed of main memory devices such as processors and RAMs used in many electronic products increases, bottlenecks in which the computational processing speed of electronic products is determined by the speed of the auxiliary memory device are intensifying. Existing secondary storage devices mainly used magnetic storage devices such as HDD (Hard Disk Drive), and optical disk devices (ODD, Optic Disc Drive) such as CD or DVD. Among them, optical disk devices are not free for data input and output, and the speed of data output is extremely slow. In addition, the magnetic storage device is faster than the optical disk device, but still causes bottlenecks, and the data may be easily damaged or lost due to the impact.
이에, 기존의 MOSFET 구조를 응용한 반도체 소자로 구성된 SSD(Solid State Drive)가 부각되고 있다.Thus, solid state drives (SSDs) composed of semiconductor devices using the conventional MOSFET structure are emerging.
SSD는 HDD에 비해 작업 처리 속도가 빠르고, 데이터가 저장된 소자로 임의접근(Random Access)을 해 탐색시간 없이 고속으로 데이터를 입 출력할 수 있다. 또한, 기계적 지연이나 실패율이 현저히 작으며 외부의 충격으로 데이터가 손상되지 않는 점도 장점이다. 또한, SSD는 반도체 소자에서 소모되는 전력이 작고 별도의 기계 장치의 구동이 없어 저발열, 저소음 및 저전력 구동이 가능해 HDD에 비해 이를 포함하는 제품의 소형화, 경량화가 가능하다.SSDs are faster than HDDs and can store data at high speeds without any search time through random access. In addition, the mechanical delay or failure rate is remarkably small and data is not damaged by external shock. In addition, since SSD consumes little power and does not require a separate mechanical device to drive, low heat generation, low noise, and low power driving are possible, which makes it possible to reduce the size and weight of a product including the SSD.
SSD로는 일반적으로 노어(NOR) 방식으로 구성되는 노어 플래쉬 메모리 및 낸드(NAND) 방식으로 구성되는 낸드 플래쉬 메모리가 있다. 그 중, 낸드 플래쉬 메모리는 직렬연결 방식으로 회로의 집적도가 높아 대용량으로 만들기가 쉬우며, 읽기/쓰기 속도가 빠르다. 또한 데이터 저장능력이 뛰어나고 대용량으로 만들기 용이한 특징 때문에, 대부분의 대용량 SSD에서 낸드(NAND) 플래쉬 메모리를 사용하고 있다.SSDs generally include NOR flash memory configured in NOR and NAND flash memory configured in NAND. Among them, NAND flash memory is connected in series, so the circuit density is high, so it is easy to make a large capacity, and the read / write speed is fast. In addition, NAND flash memory is used in most large-capacity SSDs because of its excellent data storage capacity and easy to make large capacity.
그런데, 낸드 플래쉬 메모리 소자는 미세 공정의 사용과 셀 당 저장 비트 수의 증가로 미세화, 다치화 되어 가는 추세이다. 이러한 저장 밀도의 증가는 소자의 신뢰성 악화와 수명 단축 등의 부작용을 증대시켰다.However, NAND flash memory devices are becoming more and more miniaturized due to the use of micro processes and an increase in the number of storage bits per cell. This increase in storage density has increased side effects such as deterioration of device reliability and shortening of lifespan.
도 1을 참조하여 낸드 플래쉬 메모리의 저장 밀도 증가에 따른 문제 및 오류 정정 부호의 필요성을 설명한다.Referring to FIG. 1, the problem and the necessity of an error correction code according to an increase in the storage density of the NAND flash memory will be described.
도 1을 참조하면, SLC(Single-Level Cell) 플래쉬 메모리(a)는 1 비트의 정보를 저장하는 낸드 소자이고, MLC(Multi-Level Cell) 플래쉬 메모리(b)는 2 비트의 정보를 저장하는 낸드 소자이고, TLC(Tri-Level Cell) 플래쉬 메모리(c)는 3 비트의 정보를 저장하는 낸드 소자이며, QLC(Quad-Level Cell) 플래쉬 메모리(d)는 4 비트의 정보를 저장하는 낸드 소자이다.Referring to FIG. 1, a single-level cell (SLC) flash memory (a) is a NAND element that stores one bit of information, and a multi-level cell (MLC) flash memory (b) stores two bits of information. NLC device, TLC (Tri-Level Cell) flash memory (c) is a NAND device that stores three bits of information, QLC (Quad-Level Cell) flash memory (d) is a NAND device that stores four bits of information to be.
도 1을 참조하면, 한 셀 당 저장하는 비트의 수가 증가함에 따라, 읽기 동작 시 레벨 간 간섭에 의한 오류가 발생할 확률이 증가하며, 읽기/쓰기 동작이 반복 될수록 오류 발생 확률이 크게 증가하여 제품의 신뢰도가 떨어지는 문제가 발생한다. 그러므로 저 전력 및 높은 처리량의 오류정정회로는 합리적인 가격과 안정적인 낸드 플래쉬 메모리를 설계하는데 필수적인 요소가 된다.Referring to FIG. 1, as the number of bits to be stored per cell increases, the probability of an error due to inter-level interference during a read operation increases, and as the read / write operation is repeated, an error occurrence probability increases greatly. The problem of inferior reliability arises. Therefore, low power and high throughput error correction circuits are essential for the design of reasonable and reliable NAND flash memory.
이러한 문제를 해결하기 위해 일반적으로 오류 정정부호를 사용하는데, 오류 정정부호는 오류의 탐지 및 오류의 정정을 위한 정보를 담은 여분의 비트들이 필요로 한다. 따라서 상기 여분 비트들을 저장하기 위해 셀의 여분 면적이 요구된다. 하지만, 저장 매체의 저장 용량을 최대화하기 위해서는 여분 비트를 저장하기 위해 필요한 셀의 면적은 최소화하므로, 여분 비트를 최소화 할 필요성이 있다.In order to solve such a problem, an error correction code is generally used. The error correction code requires extra bits containing information for detecting and correcting the error. Thus, an extra area of the cell is required to store the extra bits. However, in order to maximize the storage capacity of the storage medium, the area of the cell required to store the extra bits is minimized, and thus there is a need to minimize the extra bits.
또한, 저장 데이터 오류의 증가로, 오류 개수에 대해 지수적인 복잡도와 많은 여분 비트를 요하는 기존의 BCH 부호나 RS(Reed-Solomon) 부호를 대체할 새로운 오류 정정 부호가 필요하다.In addition, due to an increase in stored data errors, new error correction codes are required to replace existing BCH codes or Reed-Solomon (RS) codes that require exponential complexity and many extra bits for the number of errors.
높은 성능의 오류 정정 부호일수록 높은 복잡도와 긴 복호 지연 시간을 가지게 된다. 낸드 플래쉬 메모리의 경우, 초기에는 오류가 적게 발생하다가 사용 시간이 길어짐에 따라 오류의 발생 개수가 많아진다. 단순히 높은 성능의 오류 정정 부호만을 사용하면 오류가 적을 때에는 필요 이상의 긴 복호 지연 시간을 가지게 되므로 효율적이지 않다.
The higher the error correction code, the higher the complexity and the longer the decoding delay time. In the case of NAND flash memory, fewer errors occur initially, but the number of errors increases as the usage time increases. Simply using a high performance error correction code is not efficient because it has a longer decoding delay time than necessary when there are few errors.
전술한 문제점을 해결하기 위하여 본 발명이 이루고자 하는 기술적 과제는, 플래쉬 메모리 장치를 위한 부호, 복호 및 다계층 복호를 통해서 오류 정도에 따라 지연 시간을 조정하고, 이와 더불어 디코딩 동작에 소요되는 전력 소비량도 감소시켜 줄 수 있도록 하는 연접 BCH 부호, 복호 및 다계층 복호 회로 및 방법을 제시하는 데 있다.The technical problem to be solved by the present invention is to adjust the delay time according to the degree of error through the code, decoding and multi-layer decoding for the flash memory device, and the power consumption of the decoding operation The present invention provides a concatenated BCH code, a decoding, and a multi-layer decoding circuit and method for reducing the number.
또한, 본 발명이 이루고자 하는 다른 기술적 과제는, 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치를 제시하는 데 있다.
Another object of the present invention is to provide an error correction circuit and a flash memory device of a flash memory device.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
The solution to the problem of the present invention is not limited to those mentioned above, and other solutions not mentioned can be clearly understood by those skilled in the art from the following description.
전술한 기술적 과제를 해결하기 위한 수단으로서, 본 발명에 의한 연접 BCH 부호 회로는, 연접 BCH 부호 일부를 인가받아 BCH 복호를 수행하여 제 1 출력 BCH 부호 또는 그에 의해 보호되는 제 1 출력 데이터를 출력하는 제 1 스테이지 복호부; 상기 제 1 출력 BCH 부호 또는 상기 제1 출력 데이터를 두 개 이상의 블록(block)으로 나눠 디인터리빙(de-interleaving)하여 출력하는 디인터리빙부; 상기 디인터리빙부의 출력을 BCH 복호하여 제 2 출력 BCH 부호 또는 그에 의해 보호되는 제 2 출력 데이터를 출력하는 제 2 스테이지 복호부; 상기 제 2 출력 BCH 부호 또는 상기 제 2 출력 데이터를 두 개 이상의 블록으로 나눠 인터리빙하여 상기 제 1 스테이지 복호부로 출력하는 인터리빙부; 및 상기 제 1 및 제 2 스테이지 복호부의 동작 상태를 모니터링하여 복호 성공 블록을 파악하고, 복호 성공 블록에 대해서는 새로운 연접 BCH 부호를 입력받을 때 까지 전력 공급을 일시 차단하는 디코더 전력 제어부;를 포함할 수 있다. As a means for solving the above-described technical problem, the concatenated BCH code circuit according to the present invention receives a portion of the concatenated BCH code to perform BCH decoding to output a first output BCH code or first output data protected by the concatenated BCH code. A first stage decoder; A deinterleaving unit for de-interleaving and outputting the first output BCH code or the first output data into two or more blocks; A second stage decoder for BCH decoding the output of the deinterleaving unit to output a second output BCH code or second output data protected by the second output BCH code; An interleaving unit dividing the second output BCH code or the second output data into two or more blocks and interleaving the interleaving unit to output the first output BCH code to the first stage decoder; And a decoder power controller configured to monitor operation states of the first and second stage decoders to identify a decoding success block, and temporarily block power supply until a new concatenated BCH code is input to the decoding success block. have.
여기서, 상기 연접 BCH 복호 회로는 반복 복호 방식으로 열(Column) 복호와 행(Row) 복호를 반복하며, 최대 반복 횟수 또는 반복 종료 조건에 의해 반복을 종료할 수 있다. Here, the concatenated BCH decoding circuit repeats column decoding and row decoding in an iterative decoding manner, and may repeat the repetition by a maximum number of repetitions or a repetition termination condition.
여기서, 상기 제 1 스테이지 복호부는 다수의 열 복호기(Column Code Decoder)이고, 상기 제 2 스테이지 부호부는 다수의 행 복호기(Row Code Decoder)이고, 상기 디인터리빙부는 블록 단위 디인터리버(Block-wise De-interleaver)이고, 상기 인터리빙부는 블록 단위 인터리버(Block-wise Interleaver)일 수 있다. Here, the first stage decoder is a plurality of column code decoders, the second stage coder is a plurality of row code decoders, and the deinterleaving unit is a block unit deinterleaver. interleaver, and the interleaving unit may be a block-wise interleaver.
여기서, 상기 디코더 전력 제어부는 상기 다수의 열 복호기(Column Code Decoder)와 상기 다수의 행 복호기(Row Code Decoder) 각각으로부터 전송되는 복호 실패 정보를 이용하여 복호를 성공한 복호기를 파악하고, 상기 복호를 성공한 복호기로의 전원 공급을 새로운 연접 BCH 부호를 입력받을 때 까지 일시 차단할 수 있다. Here, the decoder power control unit recognizes a decoder that has successfully decoded by using decoding failure information transmitted from each of the plurality of column decoders and the plurality of row decoders, and successfully decodes the decoder. The power supply to the decoder can be temporarily interrupted until a new concatenated BCH code is received.
여기서, 상기 연접 BCH 복호 회로는 상기 제 1 및 제 2 스테이지 복호부에서 열(Column) 및 행(Row) 복호에 성공하면 상기 제 1 및 제 2 스테이지 복호부의 출력을 조합하여 상기 플래쉬 메모리 코어에 저장될 코드워드를 생성할 수 있다. Here, the concatenated BCH decoding circuit combines the outputs of the first and second stage decoders in the flash memory core when the first and second stage decoders successfully decode the columns and the rows. A codeword to be generated can be generated.
더하여, 연접 BCH 부호 회로는 상기 제 1 및 제 2 스테이지 복호부에서 복호 실패 정보를 인가받고 상기 제 2 출력 BCH 부호 또는 그에 의해 보호되는 제 2 출력 데이터를 인가받아 복호 실패 블록에 대해 추가 복호를 실행하는 추가 복호부;를 더 포함할 수 있다. In addition, the concatenated BCH code circuit receives decoding failure information from the first and second stage decoders and receives the second output BCH code or the second output data protected by the second BCH coder to perform additional decoding on the decoding failure block. An additional decoder may be further included.
여기서, 상기 추가 복호부는 연접 BCH 부호의 복호 실패가 소수의 오류 블록에 대해서 발생했을 때 상기 오류 블록에 해당하는 추가 정보만을 얻어 추가 복호를 수행하여 오류를 정정할 수 있다.Here, when the decoding failure of the concatenated BCH code occurs for a few error blocks, the additional decoder may correct only the error by performing additional decoding by obtaining only additional information corresponding to the error block.
여기서, 상기 추가 정보는 위치가 확정된 소수의 오류 블록에 해당하는 비트들에 대한 정보를 포함할 수 있다. Here, the additional information may include information about bits corresponding to a small number of error blocks in which position is determined.
여기서, 상기 추가 복호부는 상기 추가 복호를 위해서 상기 제 1 및 제 2 스테이지 복호부 모두에서 각 구성 부호들의 복호 실패 여부를 인가받아 상기 소수의 오류 블록의 위치를 확정할 수 있다. In this case, the additional decoding unit may determine the positions of the few error blocks by receiving whether or not each component code has failed to be decoded in both the first and second stage decoders for the additional decoding.
여기서, 상기 구성 부호는 읽기(read) 및 쓰기(write) 단위인 페이지의 일부 또는 전부이거나 열(Column) 부호 또는 행(Row) 부호일 수 있다.
The configuration code may be a part or all of a page that is a read and write unit, a column code, or a row code.
또한, 전술한 기술적 과제를 해결하기 위한 수단으로서, 본 발명에 의한 플래쉬 메모리 장치의 오류 정정 회로는, 입력 데이터를 두 개 이상의 데이터로 분리한 후 각각 BCH 부호화하여 상기 분리된 데이터와 같은 개수의 행 BCH 부호를 출력하는 외부 부호부; 상기 행 BCH 부호 또는 그에 의해 보호되는 데이터를 다시 두 개 이상의 블록으로 나눠 그 블록들을 인터리빙하고 같은 개수의 블록을 출력하는 인터리빙부; 상기 인터리빙부에서 인터리빙된 블록들을 BCH 부호화하여 열 BCH 부호를 출력하는 내부 부호부; 플래쉬 메모리 코어로부터 제공되는 저장 데이터의 일부를 인가받아 BCH 복호를 수행하여 제1 출력 BCH 부호 또는 그에 의해 보호되는 제1 출력 데이터를 출력하는 제1 스테이지 복호부; 상기 제1 출력 BCH 부호 또는 상기 제1 출력 데이터를 두 개 이상의 블록으로 나눠 디인터리빙하여 출력하는 디인터리빙부; 상기 디인터리빙부의 출력을 BCH 복호하여 제2 출력 BCH 부호 또는 그에 의해 보호되는 제2 출력 데이터를 출력하는 제2차 스테이지 복호부; 상기 제2 출력 BCH 부호 또는 상기 제2 출력 데이터를 두 개 이상의 블록으로 나눠 인터리빙하여 상기 제1 스테이지 복호부로 출력하는 인터리빙부; 및 상기 제 1 및 제 2 스테이지 복호부의 동작 상태를 모니터링하여 복호 성공 블록을 파악하고, 복호 성공 블록에 대해서는 새로운 연접 BCH 부호를 입력받을 때 까지 전력 공급을 일시 차단하는 디코더 전력 제어부;를 포함할 수 있다.
In addition, as a means for solving the above-described technical problem, the error correction circuit of the flash memory device according to the present invention, after separating the input data into two or more data, each BCH coded by the same number of rows as the separated data An external coder for outputting a BCH code; An interleaving unit for dividing the row BCH code or data protected by it into two or more blocks, interleaving the blocks, and outputting the same number of blocks; An internal coder for BCH encoding the interleaved blocks in the interleaving unit to output a column BCH code; A first stage decoder configured to receive a portion of stored data provided from a flash memory core to perform BCH decoding to output a first output BCH code or first output data protected by the first output BCH code; A deinterleaving unit configured to deinterleave and output the first output BCH code or the first output data into two or more blocks; A second stage decoding unit for BCH decoding the output of the deinterleaving unit to output a second output BCH code or second output data protected by the second output BCH code; An interleaving unit dividing the second output BCH code or the second output data into two or more blocks and interleaving the interleaving unit to output the first output BCH code to the first stage decoder; And a decoder power controller configured to monitor operation states of the first and second stage decoders to identify a decoding success block, and temporarily block power supply until a new concatenated BCH code is input to the decoding success block. have.
본 발명에 따르면, BCH 부호를 외부 및 내부 부호로 하되 외부 부호를 블록 단위로 인터리빙하여 내부 부호로 부호화하고, 부호화된 저장 데이터를 오류 정도에 따라 다계층으로 복호하여 외부 부호 또는 내부 부호 중 어느 하나에 대해서만 복호하거나, 오류가 완전히 고쳐지거나 더 이상 고칠 수 없을 때까지 내부 부호와 외부 부호의 복호를 반복적으로 수행하거나, 또는 블록 단위의 오류가 발생했을 때 추가 정보를 얻어 복호를 수행하여, 에러 정정 능력을 향상시킴과 동시에 복호 지연 시간을 적응적으로 줄일 수 있다.According to the present invention, the BCH code is an outer code and an inner code, but the outer code is interleaved in block units to be encoded into an inner code, and the encoded stored data is decoded into multiple layers according to an error degree, thereby selecting either an outer code or an inner code. Error correction by decoding only the code, repeating the internal and external code repeatedly until the error is completely corrected or can no longer be fixed, or by obtaining additional information when a block unit error occurs. It is possible to improve the capability and adaptively reduce the decoding delay time.
또한, 오류가 적어 외부 부호 또는 내부 부호의 복호로 오류가 정정되는 경우, 전체 데이터의 일부분인 작은 크기의 데이터에 대한 접근이 용이해진다.In addition, when the error is corrected by the decoding of the outer code or the inner code due to the small number of errors, access to the small size data which is a part of the entire data becomes easy.
더하여, 디코딩 동작시 복호 성공 복호기들에 대해서는 전력 공급을 일시 차단하여, 복호 성공 복호기들은 반복 복호 동작에서 제외되고, 이에 따라 다계층 복호 동작을 위한 복호기 평균 사용 개수가 감소되어 연접 BCH 복호 회로의 전체 전력 소비량은 감소될 수 있도록 한다.
In addition, the power supply is temporarily cut off for the decoding successive decoders in the decoding operation, so that the decoding succession decoders are excluded from the iterative decoding operation, thereby reducing the average number of decoders used for the multi-layer decoding operation, thereby reducing the total number of contiguous BCH decoding circuits. Power consumption can be reduced.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
The effects of the present invention are not limited to those mentioned above, and other effects that are not mentioned will be clearly understood by those skilled in the art from the following description.
도 1은 SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Tri-Level Cell) 및 QLC(Quad Level Cell) 플래쉬 메모리에서 문턱 전압의 분포를 도시한 도면이다.
도 2a는 본 발명에서 사용하는 연접 BCH 부호가 병렬 연접으로 구성된 형태의 구조도이다.
도 2b는 본 발명에서 사용하는 연접 BCH 부호가 직렬 연접으로 구성된 형태의 구조도이다.
도 3a는 본 발명의 바람직한 실시 예에 의한 플래쉬 메모리 장치의 병렬 연접 BCH 부호 회로를 도시한 기능 블록도이다.
도 3b는 본 발명의 바람직한 실시 예에 의한 플래쉬 메모리 장치의 직렬 연접 BCH 부호 회로를 도시한 기능 블록도이다.
도 4는 본 발명의 바람직한 실시 예에 의한 플래쉬 메모리 장치의 연접 BCH 복호 회로를 도시한 기능 블록도이다.
도 5는 본 발명의 다른 실시예에 따른 플래쉬 메모리 장치를 위한 연접 BCH 복호 회로의 기능 블록을 도시한 기능 블록도이다.
도 6는 본 발명의 바람직한 실시 예에 의한 플래쉬 메모리 장치의 연접 BCH 다계층 복호 방법을 도시한 도면이다.
도 7은 본 발명의 블록 단위의 오류에 의한 하계(lower bound) 및 실험 결과를 비교한 도면이다.
도 8은 본 발명의 하나의 블록 오류를 해결하는 추가 정보를 이용한 복호 방법의 실험 결과와 기존 BCH 부호의 성능을 비교한 도면이다.
도 9은 본 발명의 바람직한 실시 예에 의한 플래쉬 메모리 장치의 추가 복호가 가능한 연접 BCH 다계층 복호 회로를 도시한 기능 블록도이다.FIG. 1 is a diagram illustrating a distribution of threshold voltages in a single level cell (SLC), a multi level cell (MLC), a tri-level cell (TLC), and a quad level cell (QLC) flash memory.
2A is a structural diagram of a concatenated BCH code used in the present invention configured in parallel concatenation.
2B is a structural diagram in which a concatenated BCH code used in the present invention is configured in series concatenation.
3A is a functional block diagram illustrating a parallel concatenated BCH code circuit of a flash memory device according to an exemplary embodiment of the present invention.
3B is a functional block diagram illustrating a series concatenated BCH code circuit of a flash memory device according to an exemplary embodiment of the present invention.
4 is a functional block diagram illustrating a concatenated BCH decoding circuit of a flash memory device according to an exemplary embodiment of the present invention.
5 is a functional block diagram illustrating a functional block of a concatenated BCH decoding circuit for a flash memory device according to another embodiment of the present invention.
6 is a diagram illustrating a concatenated BCH multi-layer decoding method of a flash memory device according to an exemplary embodiment of the present invention.
FIG. 7 is a diagram comparing lower bounds and experimental results due to errors in units of blocks of the present invention.
8 is a diagram comparing the performance of the existing BCH code and the experimental results of the decoding method using the additional information for solving one block error of the present invention.
9 is a functional block diagram illustrating a concatenated BCH multilayer decoding circuit capable of further decoding a flash memory device according to an exemplary embodiment of the present invention.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙여 설명하기로 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly explain the present invention in the drawings, parts not related to the description are omitted, and similar parts are denoted by similar reference numerals throughout the specification.
일반적으로, 플래쉬 메모리 장치는 병렬로 연결된 다이(die)를 기본 구조로 가지고 있고, 다이는 한번에 지울(erase) 수 있는 단위인 메모리 블록으로 구성된다. 각 메모리 블록은 읽기/쓰기(read/write) 단위인 페이지(page)로 구성된다. 그러므로 오류 정정 부호는 읽기/쓰기 단위인 페이지 단위로 수행됨이 바람직하다. 페이지의 단위는 제조사마다 다르지만 일반적으로 SLC 소자에서는 1KB 페이지를, MLC 소자에서는 4KB 또는 8KB 페이지를 많이 사용한다. In general, a flash memory device has a basic structure of dies connected in parallel, and a die is composed of memory blocks, which are units that can be erased at one time. Each memory block is composed of pages that are read / write units. Therefore, the error correction code is preferably performed in units of pages that are read / write units. Units of pages vary from manufacturer to manufacturer, but typically use 1KB pages for SLC devices and 4KB or 8KB pages for MLC devices.
플래쉬 메모리 장치는 저장 장치로서 높은 신뢰성을 요구하므로, 오류 정정부호를 적용했을 때 매우 낮은 오류율 영역에서 동작해야 한다. 또한, 빠른 읽기 및 쓰기 속도를 위해 부호 및 복호기의 지연 시간과 복잡도가 제한된다. 동시에, 저장 공간의 효율을 위해서 데이터 이외의 여분 공간이 제한되므로, 전체 저장 데이터 대비 패리티 비트의 비율이 제한된다. 따라서 플래쉬 메모리 장치에 적합한 부호는 높은 부호율(예를 들어, 0.9 이상)을 가지면서, 오류 마루(error floor)가 없거나, 오류 마루가 있더라도 이를 해결할 수 있는 방법이 충분히 짧은 지연 시간과 낮은 복잡도를 바탕으로 제시되어야 한다.Since flash memory devices require high reliability as a storage device, they must operate in a very low error rate range when an error correction code is applied. In addition, the latency and complexity of the code and decoder are limited for fast read and write speeds. At the same time, the extra space other than the data is limited for the efficiency of the storage space, so that the ratio of parity bits to the total stored data is limited. Therefore, a code suitable for a flash memory device has a high code rate (for example, 0.9 or more), and there is no error floor or a solution that can solve this problem even if there is an error floor. It should be presented on the basis of
본 발명에서 사용하는 연접 BCH 부호는 블록 단위로 구성된다. 기존 BCH 부호보다 오류 정정 성능을 높이기 위해서 연접 BCH 부호를 블록 단위가 아닌 비트 단위로 사용한다면, 연접 BCH 부호는 다수의 짧은 길이의 BCH 구성 부호(constituent code)로 구성된다. 짧은 길이의 구성 부호는 플래쉬 메모리 장치에서 요구되는 높은 부호율 때문에 매우 작은 오류 정정 능력(1 비트 또는 2 비트 정정)을 가진다. 이로 인해 경판정(hard decision)만 가능한 플래쉬 메모리 장치에서, 상기 비트 단위 연접 BCH 부호에는 정정에 실패하는 구성 부호가 쉽게 생겨, 상기 비트 단위 연접 BCH 부호는 낮은 성능을 가지게 된다. 이때, 추가 정보를 이용하면 성능을 향상시킬 수 있지만, 이를 모든 복호에 대해서 필요로 하게 되기 때문에 높은 복잡도와 상대적으로 긴 지연 시간 문제를 가지게 된다.The concatenated BCH code used in the present invention is configured in block units. If the concatenated BCH code is used in units of bits rather than blocks in order to improve error correction performance than the existing BCH code, the concatenated BCH code is composed of a plurality of short-length BCH constituent codes. Short length component codes have very small error correction capability (one or two bit correction) due to the high code rate required in flash memory devices. As a result, in a flash memory device capable of hard decision only, a configuration code that fails to correct the bit unit contiguous BCH code easily occurs, and thus the bit unit contiguous BCH code has low performance. In this case, the performance can be improved by using additional information, but since this is required for all decoding, there is a problem of high complexity and relatively long delay time.
본 발명에서 사용하는 블록 단위의 연접 BCH 부호는 플래쉬 메모리 장치에 적합한 특징을 가진다. 블록 단위의 연접 BCH 부호는 소수의 긴 길이의 BCH 구성 부호로 구성된다. 긴 길이의 구성 부호는 플래쉬 메모리 장치에서 요구되는 높은 부호율에서도 충분한 오류 정정 능력을 가진다. 예를 들어, 도 7을 참조하면, 각각 10 비트와 14 비트의 오류를 고칠 수 있는 구성 부호로 이루어져 있음을 알 수 있다. 이로 인해 경판정(hard decision)만 가능한 플래쉬 메모리 장치에서도, 상기 블록 단위 연접 BCH 부호에는 정정에 실패하는 구성 부호가 낮은 확률로 생겨, 상기 비트 단위 연접 BCH 부호보다 높은 성능을 가지게 된다. The concatenated BCH code in block units used in the present invention has a feature suitable for a flash memory device. The contiguous BCH code in blocks is composed of a few long BCH component codes. Long length component codes have sufficient error correction capability even at the high code rates required in flash memory devices. For example, referring to FIG. 7, it can be seen that the configuration codes are configured to correct errors of 10 bits and 14 bits, respectively. As a result, even in a flash memory device capable of hard decision only, the block contiguous BCH code has a low probability of failing a correction code, and thus has higher performance than the contiguous bit concatenated BCH code.
한편, 블록 단위 연접 BCH 부호는 블록 단위로 구성되어 있기 때문에 오류 블록(erroneous block)에 의해 복호에 실패할 수 있다. 도 6을 참고하면, 오류 블록의 하계(lower bound)에 의해 오류 마루가 발생하는 것을 확인할 수 있다. 도 6에 도시된 것처럼, 오류 마루는 주로 소수의 오류 블록에 의해 발생한다. On the other hand, since the contiguous BCH code in block units is configured in block units, decoding may fail due to an erroneous block. Referring to FIG. 6, it can be seen that an error floor occurs due to a lower bound of the error block. As shown in Figure 6, the error floor is mainly caused by a few error blocks.
따라서, 본 발명에서는 소수의 오류 블록에 대해 추가 정보를 얻어 오류 블록을 정정하여 오류 마루를 해결하는 방법을 제시한다. 블록 단위 연접 BCH 부호가 경판정 반복 복호에 실패했을 경우에만, 소수의 오류 블록에 한정되어 추가 정보를 사용하므로, 복잡도와 복호 지연 시간을 효과적으로 줄일 수 있다.Accordingly, the present invention proposes a method for solving an error floor by correcting an error block by obtaining additional information on a few error blocks. Only when the block-wise concatenated BCH code fails hard decision iterative decoding, since additional information is limited to a few error blocks, complexity and decoding delay time can be effectively reduced.
이후의 설명에서 따로 명시하지 않은 경우 연접 BCH 부호는 블록 단위 연접 BCH 부호를 의미한다.In the following description, unless otherwise specified, the concatenated BCH code refers to a block unit concatenated BCH code.
이하, 본 발명에서 실시하고자 하는 구체적인 기술내용에 대해 첨부도면을 참조하여 상세하게 설명하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 2a는 본 발명에서 사용하는 연접 BCH 부호가 병렬 연접으로 구성된 형태의 구조도이고, 도 2b는 본 발명에서 사용하는 연접 BCH 부호가 직렬 연접으로 구성된 형태의 구조도이다.FIG. 2A is a structural diagram of a concatenated BCH code used in the present invention configured as parallel concatenation, and FIG. 2B is a structural diagram of a concatenated BCH code used in the present invention configured as a serial concatenation.
연접 BCH 부호의 블록은 메모리 블록과 구분되며, 다른 의미를 갖는다. 블록은 비트의 묶음으로, 도 2a 또는 도 2b에서 사각형으로 도시되나, 블록 내에서 비트들은 일렬로 나열되어 일정한 순서를 가진다. 블록은 메시지 블록(message block), 패리티 블록(parity block), 또는 메시지 블록 뒤에 패리티 블록이 합쳐진 메시지-패리티 블록(message-parity block)을 포함할 수 있다.A block of contiguous BCH codes is distinguished from a memory block and has a different meaning. A block is a bundle of bits, shown as a rectangle in FIG. 2A or FIG. 2B, but the bits within the block are arranged in a line and have a certain order. The block may include a message block, a parity block, or a message-parity block in which parity blocks are combined after the message block.
연접 BCH 부호에는 두 종류의 구성 부호(constituent code)가 있는데, 편의상 이를 각각 행 부호, 열 부호라고 지칭한다. 병렬 연접 구조에서 행 부호와 열 부호의 역할이 같으므로, 그 설명에서 행 부호와 열 부호는 서로 대치될 수 있다. 직렬 연접 구조에서는 행 부호는 외부 부호(outer code), 열 부호는 내부 부호(inner code)의 역할을 하며, 서로 대치될 수 없다. 하나의 행 부호와 하나의 열 부호는 항상 하나의 블록만을 서로 공유하며, 그 외의 블록들은 서로 공유하지 않는다. 또한 하나의 행 부호(또는 열 부호)는 모든 열 부호(또는 행 부호)와 블록을 하나씩만 공유한다.There are two types of constituent codes in the concatenated BCH code. For convenience, these are called row and column codes, respectively. Since the role of the row code and the column code in the parallel concatenated structure is the same, in the description, the row code and the column code may be replaced with each other. In the serial concatenation structure, the row code serves as an outer code and the column code serves as an inner code, and cannot be replaced with each other. One row code and one column code always share one block with each other, and the other blocks do not share with each other. In addition, one row code (or column code) shares only one block with all the column codes (or row codes).
행 부호와 열 부호는 모두 BCH 부호이다. 행 부호는 총 nr 비트, 보호하는 메시지 kr 비트, 패리티 mr 비트로 부호 전체 내에서 tr개의 비트 오류를 고칠 수 있다. 열 부호는 총 nc 비트, 보호하는 메시지 kc 비트, 패리티 mc 비트로 부호 전체 내에서 tc개의 비트 오류를 고칠 수 있다.Both row and column codes are BCH codes. The row code is a total of n r bits, the message k r bits to be protected, and the parity m r bits to fix t r bit errors in the entire code. The column code has a total of n c bits, a protected message k c bits, and a parity m c bits, so that t c bit errors can be corrected within the entire code.
이후, 본 발명의 실시예에 대한 설명에서 연접 BCH 부호로 보호되는 데이터의 크기는 k(k는 자연수)이다.Then, in the description of the embodiment of the present invention, the size of data protected by the concatenated BCH code is k (k is a natural number).
도 2a는 본 발명에서 사용하는 연접 BCH 부호가 병렬 연접으로 구성된 형태의 구조도이다.2A is a structural diagram of a concatenated BCH code used in the present invention configured in parallel concatenation.
도 2a를 참조하면, 데이터는 메시지 블록으로 이루어진 kr B× kc B 크기의 메시지 매트릭스에 해당된다. 하나의 행 부호는 메시지 블록 kc B 개와 하나 이상의 패리티 블록으로 이루어진다. 하나의 열 부호는 메시지 블록 kr B개와 하나 이상의 패리티 블록으로 이루어진다. Referring to Figure 2a, the data is k r B × k c B consisting of a message block Corresponds to the message matrix of size. One line sign is the message block k c B And one or more parity blocks. One column code consists of k r B message blocks and one or more parity blocks.
예를 들어 다음과 같이, 각 메시지 블록이 동일하게 nB개의 비트를 포함하는, 병렬 연접 BCH 부호의 구성이 가능하다. 도 2a를 참조하면, i번째 행 부호는 i번째 행의 메시지 블록들과 i번째 행의 패리티 블록으로 이루어지며, 수학식 1과 같이 나타낼 수 있다.For example, as shown below, it is possible to configure a parallel concatenated BCH code in which each message block equally includes n B bits. Referring to FIG. 2A, the i th row code is composed of message blocks of the i th row and a parity block of the i th row, and may be represented by
도 2a를 참조하면, j번째 열 부호는 j번째 열의 메시지 블록들과 j번째 열의 패리티 블록으로 이루어지며, 수학식 2와 같이 나타낼 수 있다.Referring to FIG. 2A, the j th column code is composed of message blocks of the j th column and a parity block of the j th column, and may be represented by
이때, 행 부호의 메시지 길이는 수학식 3과 같이 나타낼 수 있다.In this case, the message length of the row code may be expressed as in
또한, 행 부호의 부호 길이는 수학식 4와 같이 나타낼 수 있다.In addition, the code length of the line code can be expressed as in
마찬가지로, 열 부호의 메시지 길이는 수학식 5과 같이 나타낼 수 있다.Similarly, the message length of the column code can be expressed as in
마찬가지로, 열 부호의 부호 길이는 수학식 6과 같이 나타낼 수 있다.Similarly, the code length of the column code can be expressed as in Equation 6.
이때, 병렬 연접 BCH 부호의 부호율(code rate)은 수학식 7과 같이 나타낼 수 있다.In this case, the code rate of the parallel concatenated BCH code may be expressed as shown in Equation (7).
상기 실시예에서 메시지 블록은 개의 비트를 포함하며 모든 메시지 블록의 크기는 같다.In this embodiment, the message block is It contains bits and the size of all message blocks is the same.
인터리빙을 다르게 하여 다른 열마다 다른 크기의 메시지 블록을 가지고 하나의 열 내에서만 같은 크기의 메시지 블록을 가지는 실시예에 대해, 행 부호는 상기 수학식 1과 같고, 열 부호는 수학식 8과 같이 나타낼 수 있다.For an embodiment in which interleaving is different so that different columns have message blocks of different sizes and only message blocks of the same size within one column, the row code is represented by
where f(x) ={(x-1) mod kc B} +1where f (x) = {(x-1) mod k c B } +1
도 2b는 본 발명에서 사용하는 연접 BCH 부호가 직렬 연접으로 구성된 형태의 구조도이다.2B is a structural diagram in which a concatenated BCH code used in the present invention is configured in series concatenation.
도 2b를 참조하면, 데이터는 메시지 블록으로 할당되며, 각 행의 마지막 메시지 블록은 그 행의 행 부호의 패리티 블록 또는 그 일부와 합쳐져 메시지-패리티 블록이 된다. 열 부호의 패리티 블록을 제외하고, 메시지 블록, 각 행의 메시지-패리티 블록, 그리고 각 행의 여분의 패리티 블록은 kr B ×kc B 크기의 메시지 매트릭스를 이룬다. 하나의 행 부호는 메시지 블록 kc B -1 개와 하나의 메시지-패리티 블록으로 이루어진다. 하나의 열 부호는 메시지 블록 또는 메시지-패리티 블록 kr B개와 하나의 패리티 블록으로 이루어진다. 직렬 연접 BCH 부호의 경우, 열 부호가 행 부호보다 오류를 더 많이 정정할 수 있게(tr≤tc) 설계될 수 있다.Referring to FIG. 2B, data is assigned to a message block, and the last message block of each row is combined with a parity block or part of the row code of that row to become a message-parity block. Except for the parity block of column codes, the message block, the message-parity block of each row, and the extra parity block of each row are k r B × k c B It is a message matrix of size. One line sign is the message block k c B Consists of one and one message-parity block. One column code consists of a message block or a message-parity block k r B and one parity block. In the case of a serially concatenated BCH code, the column code can be designed to correct more errors (t r ≤ t c ) than the row code.
예를 들어 다음과 같이, 각 메시지 블록과 메시지-패리티 블록이 동일하게 nB개의 비트를 포함하는, 직렬 연접 BCH 부호의 구성이 가능하다. 도 2b를 참조하면, i번째 행 부호는 i번째 행의 메시지 블록들과 i번째 행의 패리티 블록으로 이루어지며, 상기 수학식 1과 같이 나타낼 수 있다.For example, as follows, it is possible to configure a serial concatenated BCH code in which each message block and message-parity block include n B bits equally. Referring to FIG. 2B, the i th row code includes message blocks of the i th row and a parity block of the i th row, and may be represented by
도 2b를 참조하면, j번째 열 부호는 j번째 열의 메시지 블록들과 j번째 열의 패리티 블록으로 이루어지며, 1≤j≤kc B에 대해 수학식 9와 같이 나타낼 수 있다.Referring to FIG. 2B, the j th column code is composed of message blocks of the j th column and a parity block of the j th column, and may be represented by Equation 9 for 1 ≦ j ≦ k c B.
j=kc B의 경우, 수학식 10과 같이 나타낼 수 있다.In the case of j = k c B , it may be expressed as
이때, 행 부호의 메시지 길이는 수학식 11과 같이 나타낼 수 있다.In this case, the message length of the row code may be expressed as in Equation (11).
또한, 행 부호의 부호 길이는 수학식 12와 같이 나타낼 수 있다.In addition, the code length of the line code can be expressed by
마찬가지로, 열 부호의 메시지 길이는 수학식 13과 같이 나타낼 수 있다.Similarly, the message length of the column code can be expressed as in Equation 13.
마찬가지로, 열 부호의 부호 길이는 상기 수학식 6과 같이 나타낼 수 있다.Similarly, the code length of the column code can be expressed as in Equation 6 above.
이때, 직렬 연접 BCH 부호의 부호율(code rate)은 상기 수학식 7과 같이 나타낼 수 있다.In this case, the code rate of the serially concatenated BCH code may be expressed as shown in Equation 7.
상기 직렬 연접 BCH 부호의 실시예에서 각 메시지 블록과 메시지-패리티 블록은 개의 비트를 포함하며, 모든 메시지 블록과 메시지-패리티 블록의 크기는 서로 같다.In the embodiment of the serially concatenated BCH code, each message block and a message-parity block are Bits, and all message blocks and message-parity blocks have the same size.
인터리빙을 다르게 하여 다른 열마다 다른 크기의 메시지 블록을 가지고 하나의 열 내에서만 같은 크기의 메시지 블록을 가지는 실시예에 대해, 행 부호는 상기 수학식 1과 같고, 열 부호는 수학식 8과 유사한 방법으로 나타낼 수 있다.For an embodiment in which the interleaving is different so that different columns have message blocks of different sizes and only message blocks of the same size within one column, the row code is as shown in
도 3a는 본 발명의 플래쉬 메모리 장치를 위한 병렬 연접 BCH 부호 회로의 기능 블록을 도시한 기능 블록도이다.3A is a functional block diagram illustrating a functional block of a parallel concatenated BCH code circuit for the flash memory device of the present invention.
병렬 연접 BCH 부호 회로는 도 3a에 도시된 바와 같이, 플래쉬 메모리 장치로 입력되는 데이터(m) 중 일부 또는 전부를 인가받아 BCH 부호화를 수행하여 제1 출력 BCH 부호 또는 그 패리티 비트를 출력하는 제 1 스테이지 부호부와, 플래쉬 메모리 장치로 입력되는 데이터 중 일부 또는 전부를 인가받아 인터리빙(interleaving)하여 출력하는 인터리빙부와, 인터리빙부의 출력인 BCH 부호 또는 데이터를 BCH 부호화하여 제 2 출력 BCH 부호 또는 그 패리티 비트를 출력하는 제 2 스테이지 부호부를 포함하고 있다. 여기서, 제 1 스테이지 부호부는 행 부호기(Row Code Encoder)이고, 인터리빙부는 블록 단위 인터리버(Block-wise Interleaver)이고, 제 2 스테이지 부호부는 열 부호기(Column Code Encoder)이다.As shown in FIG. 3A, the parallel concatenated BCH code circuit receives a part or all of data m input to a flash memory device to perform BCH encoding to output a first output BCH code or a parity bit thereof. A second output BCH code or its parity by BCH encoding a stage code unit, an interleaving unit that receives some or all of the data input to the flash memory device, and interleaves and outputs the BCH code or data that is an output of the interleaving unit And a second stage coder for outputting the bits. Here, the first stage encoder is a row code encoder, the interleaving unit is a block-wise interleaver, and the second stage encoder is a column code encoder.
도 3a를 참조하면, 플래쉬 메모리 장치에 저장하기 위해 입력된 데이터(m)는 mr (1), … , 로 나뉘어져 행 부호기(Row Code Encoder)에 인가되거나 블록 단위 인터리버(Block-wise Interleaver)에 인가되어 mc (1), … , 로 바뀌어 열 부호기(Column Code Encoder)에 인가된다. Referring to FIG. 3A, the data m input for storing in the flash memory device is m r (1) ,. , Divided into a row code encoder or a block-wise interleaver, m c (1) ,. , Is applied to the Column Code Encoder.
행 부호기와 열 부호기는 체계적 부호기(systematic encoder)로, 행 부호기 또는 열 부호기에서 메시지 블록과 패리티 블록이 동시에 출력될 수 있다. 행 부호기와 열 부호기는 적어도 해당 부호의 패리티 블록을 출력한다. 행 부호기의 메시지 블록, 열 부호기의 메시지 블록, 또는 입력된 데이터의 메시지 블록은 부호 회로 출력의 메시지 블록으로 출력될 수 있다. 행 부호기와 열 부호기, 또는 행 부호기와 열 부호기 그리고 데이터 입력단에서 나오는 출력을 조합하여 플래쉬 메모리 장치에 저장될 코드워드를 생성한다. The row encoder and the column encoder are systematic encoders, and a message block and a parity block may be simultaneously output from the row encoder or the column encoder. The row encoder and column encoder output at least a parity block of the corresponding code. The message block of the row encoder, the message block of the column encoder, or the message block of the input data may be output as a message block of the code circuit output. The codeword to be stored in the flash memory device is generated by combining the row coder and the column coder, or the line coder and the column coder and the output from the data input terminal.
도 3a에서는 행 부호기가 메시지 블록과 패리티 블록을 동시에 출력하며, 열 부호기에서는 패리티 블록을 출력해 저장될 코드워드를 생성한다. 도 3a에서는 행 부호기와 열 부호기가 병렬로 구성되었으나, 두 부호기의 순서에 상관없이 직렬로 구성하되 두 부호기 사이에 인터리버를 두어 직렬로 구성할 수 있다.In FIG. 3A, a row encoder outputs a message block and a parity block at the same time, and a column encoder outputs a parity block to generate a codeword to be stored. In FIG. 3A, although the row encoder and the column encoder are configured in parallel, the row encoder and the column encoder may be configured in series regardless of the order of the two encoders, but may be configured in series by placing an interleaver between the two encoders.
도 3b는 본 발명의 플래쉬 메모리 장치를 위한 직렬 연접 BCH 부호 회로의 기능 블록을 도시한 기능 블록도이다.3B is a functional block diagram illustrating a functional block of a serially concatenated BCH code circuit for the flash memory device of the present invention.
직렬 연접 BCH 부호 회로는 도 3b에 도시된 바와 같이, 플래쉬 메모리 장치로 입력되는 데이터 중 일부 또는 전부를 인가받아 BCH 부호화를 수행하여 제 1 출력 BCH 부호 또는 그 패리티 비트를 출력하는 제 1 스테이지 부호부와, 제 1 출력 BCH 부호 또는 그에 의해 보호되는 데이터를 인터리빙(interleaving)하여 출력하는 인터리빙부와, 인터리빙부의 출력인 BCH 부호 또는 데이터를 BCH 부호화하여 제 2 출력 BCH 부호 또는 그 패리티 비트를 출력하는 제 2 스테이지 부호부를 포함하고 있다. 여기서, 제 1 스테이지 부호부는 행 부호기(Row Code Encoder)이고, 인터리빙부는 블록 단위 인터리버(Block-wise Interleaver)이고, 제 2 스테이지 부호부는 열 부호기(Column Code Encoder)이다.As illustrated in FIG. 3B, the serially connected BCH code circuit receives a part or all of data input to a flash memory device to perform BCH encoding to output a first output BCH code or a parity bit thereof. And an interleaving unit for interleaving and outputting the first output BCH code or data protected by the first output BCH code, and a second output BCH code or its parity bit by BCH encoding the BCH code or data which is an output of the interleaving unit. It includes a two-stage coder. Here, the first stage encoder is a row code encoder, the interleaving unit is a block-wise interleaver, and the second stage encoder is a column code encoder.
도 3b을 참조하면, 플래쉬 메모리 장치에 저장하기 위해 입력된 데이터는 mr (1), … , 로 나뉘어져 행 부호기에 인가된다. 행 부호는 블록 단위 인터리버에 인가되어 mc (1), … , 로 바뀌어 열 부호기에 인가된다. 행 부호기와 열 부호기는 체계적 부호기(systematic encoder)로, 각 부호기에서 메시지 블록과 패리티 블록이 동시에 출력될 수 있다. 행 부호기와 열 부호기는 적어도 해당 부호의 패리티 블록을 출력한다. 행 부호기의 메시지 블록, 열 부호기의 메시지 블록, 또는 입력된 데이터의 메시지 블록은 부호 회로 출력의 메시지 블록으로 출력될 수 있다. 행 부호기와 열 부호기, 또는 행 부호기와 열 부호기 그리고 데이터 입력단에서 나오는 출력을 조합하여 플래쉬 메모리 장치에 저장될 코드워드를 생성한다. Referring to FIG. 3B, data input for storing in the flash memory device is m r (1) ,. , Divided into and applied to the row encoder. The row code is applied to the block unit interleaver so that m c (1) ,... , Is applied to the column encoder. The row encoder and the column encoder are systematic encoders, and a message block and a parity block may be simultaneously output from each encoder. The row encoder and column encoder output at least a parity block of the corresponding code. The message block of the row encoder, the message block of the column encoder, or the message block of the input data may be output as a message block of the code circuit output. The codeword to be stored in the flash memory device is generated by combining the row coder and the column coder, or the line coder and the column coder and the output from the data input terminal.
도 3b에서는 행 부호기와 열 부호기 각각에서 각 부호에 맞는 메시지 블록과 패리티 블록을 동시에 출력하여 저장될 코드워드를 생성한다. 도 3b에서는 행 부호기와 열 부호기가 직렬로 구성되었으나, 두 부호기를 병렬로 구성하되 열 부호기는 입력된 데이터로 부호화를 진행하다가 열 부호기와 인터리버를 거친 패리티 블록을 받아 부호화를 계속 진행하여 저장될 코드워드를 생성하는 구조를 가질 수 있다.
In FIG. 3B, a message block and a parity block corresponding to each code are simultaneously output from each of the row encoder and the column encoder to generate a codeword to be stored. In FIG. 3B, the row encoder and the column encoder are configured in series, but the two encoders are configured in parallel, but the column encoder encodes the input data and receives the parity block through the column encoder and the interleaver. It may have a structure for generating a word.
도 4는 본 발명의 일 실시예에 따른 플래쉬 메모리 장치를 위한 연접 BCH 복호 회로의 기능 블록을 도시한 기능 블록도이다.4 is a functional block diagram illustrating a functional block of a concatenated BCH decoding circuit for a flash memory device according to an embodiment of the present invention.
연접 BCH 복호 회로는 도 4에 도시된 바와 같이, 연접 BCH 부호 일부를 인가받아 BCH 복호를 수행하여 제 1 출력 BCH 부호 또는 그에 의해 보호되는 제 1 출력 데이터를 출력하는 제 1 스테이지 복호부와, 제 1 출력 BCH 부호 또는 상기 제1 출력 데이터를 두 개 이상의 블록(block)으로 나눠 디인터리빙(de-interleaving)하여 출력하는 디인터리빙부와, 디인터리빙부의 출력을 BCH 복호하여 제 2 출력 BCH 부호 또는 그에 의해 보호되는 제 2 출력 데이터를 출력하는 제 2 스테이지 복호부와, 제 2 출력 BCH 부호 또는 제 2 출력 데이터를 두 개 이상의 블록으로 나눠 인터리빙하여 제 1 스테이지 복호부로 출력하는 인터리빙부를 포함하고 있다.As shown in FIG. 4, the concatenated BCH decoding circuit receives a portion of the concatenated BCH code to perform BCH decoding to output a first output BCH code or first output data protected by the first stage decoder; A deinterleaving unit for de-interleaving and outputting one output BCH code or the first output data into two or more blocks, and a second output BCH code for BCH decoding of the output of the deinterleaving unit And a second stage decoding unit for outputting the second output data protected by the interleaving unit, and an interleaving unit for dividing the second output BCH code or the second output data into two or more blocks and outputting the interleaving unit to the first stage decoding unit.
여기서, 제 1 스테이지 복호부는 다수의 열 복호기(Column Code Decoder)이고, 디인터리빙부는 블록 단위 디인터리버(Block-wise De-interleaver)이고, 제 2 스테이지 복호부는 다수의 열 복호기(Row Code Decoder)이고, 인터리빙부는 블록 단위 인터리버(Block-wise Interleaver)이다.Here, the first stage decoder is a plurality of column code decoders, the deinterleaving unit is a block-wise de-interleaver, and the second stage decoder is a plurality of column code decoders. The interleaving unit is a block-wise interleaver.
연접 BCH 복호 회로는 반복 복호 방식으로, 열 복호와 행 복호를 반복한다. 최대 반복 횟수 또는 반복 종료 조건에 의해 반복 종료가 선언된다. 반복 종료 조건은, 한 번의 반복 동안, 열 부호와 행 부호 중 그 이전 반복까지 복호에 실패했던 부호 모두가 복호에 계속 실패하는 조건일 수 있다. 이 조건은 반복 복호를 계속 진행해도 더 이상 오류가 고쳐지지 않는 상태를 의미한다.The concatenated BCH decoding circuit repeats column decoding and row decoding in an iterative decoding manner. The repetition end is declared by the maximum number of repetitions or the repetition end condition. The repetition termination condition may be a condition in which during one repetition, all of codes that failed to decode until the previous repetition of column codes and row codes continue to fail decoding. This condition means that the error is no longer corrected even after repeated decoding.
도 4를 참조하면, 플래쉬 메모리 장치의 메모리 셀에서 읽힌 n 비트의 저장 데이터는 kc B개의 열 부호로 나뉘어 열 복호기에 인가되어 BCH 복호기로 복호된 뒤, kc B개의 열 메시지로 출력된다. kc B개의 열 메시지는 블록 단위의 디인터리버를 거쳐 나오되, 병렬 연접 BCH 부호의 경우 kr B개의 행 메시지로, 직렬 연접 BCH 부호의 경우 행 메시지를 포함하는 kr B개의 행 부호로 출력된다. 상기 열 복호기가 kc B개의 열 부호 모두에 대해 복호에 성공하면, 상기 행 메시지 또는 행 부호의 일부인 행 메시지는 바로 데이터로 출력된다. 그렇지 않은 경우, 상기 kr B개의 행 메시지 또는 행 부호는 행 복호기에 인가되어 BCH 복호기로 복호된 뒤, kr B개의 행 메시지 또는 행 메시지를 포함하는 kr B개의 행 부호로 출력된다. 반복 종료가 선언되거나 행 복호기가 kr B개의 행 부호 모두에 대해 복호에 성공하면, 상기 행 메시지 또는 행 부호에 포함된 행 메시지는 바로 데이터로 출력된다. 그렇지 않은 경우, 블록 단위의 인터리버에 인가되어 kc B개의 열 메시지가 출력된다. 반복 복호를 진행하기 위해 상기 kc B개의 열 메시지는 상기 열 복호기에 다시 인가된다.
Referring to FIG. 4, n-bit stored data read from a memory cell of a flash memory device is divided into k c B column codes, applied to a column decoder, decoded by a BCH decoder, and output as k c B column messages. k c B-column messages back out through the deinterleaver on a block-by-block basis, in the case of a parallel concatenated BCH code k r to the B row message, serial concatenation for BCH code output by k r B of line code comprising a line message do. If the column decoder successfully decodes all k c B column codes, the row message or row message which is part of the row code is immediately output as data. Otherwise, the k r B of line message or line code is output to the rear is applied to the row decoder decodes a BCH decoder, k r B rows code including a B r k rows, messages or message line if it is not. When the repetition end is declared or the row decoder successfully decodes all k r B row codes, the row message or row message included in the row code is immediately output as data. Otherwise, it is applied to the interleaver in block units to output k c B column messages. The k c B column messages are applied back to the column decoder to proceed with repeated decoding.
도 5는 본 발명의 다른 실시예에 따른 플래쉬 메모리 장치를 위한 연접 BCH 복호 회로의 기능 블록을 도시한 기능 블록도로, 이는 전력 절감 효과를 추가 제공하기 위한 구조를 제안한다. 5 is a functional block diagram illustrating a functional block of a concatenated BCH decoding circuit for a flash memory device according to another exemplary embodiment of the present invention, which proposes a structure for further providing a power saving effect.
도5의 연접 BCH 복호 회로는 연접 BCH 부호 일부를 인가받아 BCH 복호를 수행하여 제 1 출력 BCH 부호 또는 그에 의해 보호되는 제 1 출력 데이터를 출력하는 제 1 스테이지 복호부와, 제 1 출력 BCH 부호 또는 제1 출력 데이터를 두 개 이상의 블록(block)으로 나눠 디인터리빙(de-interleaving)하여 출력하는 디인터리빙부와, 디인터리빙부의 출력을 BCH 복호하여 제 2 출력 BCH 부호 또는 그에 의해 보호되는 제 2 출력 데이터를 출력하는 제 2 스테이지 복호부와, 제 2 출력 BCH 부호 또는 제 2 출력 데이터를 두 개 이상의 블록으로 나눠 인터리빙하여 제 1 스테이지 복호부로 출력하는 인터리빙부와, 상기 제 1 및 제 2 스테이지 복호부의 동작 상태를 모니터링하여 복호 성공 블록을 파악하고, 복호 성공 블록에 대해서는 새로운 연접 BCH 부호를 입력받을 때 까지 전력 공급을 일시 차단하는 디코더 전력 제어부(Decoder Power control)를 포함하고 있다. The concatenated BCH decoding circuit of Fig. 5 is a first stage decoder which receives a portion of the concatenated BCH code and performs BCH decoding to output a first output BCH code or first output data protected by it, and a first output BCH code or A deinterleaving unit for dividing the first output data into two or more blocks to de-interleaving and outputting the second output BCH code or a second output protected by the BCH decoding of the output of the deinterleaving unit; A second stage decoding unit for outputting data, an interleaving unit for dividing the second output BCH code or the second output data into two or more blocks, and outputting the interleaving unit to the first stage decoding unit, and the first and second stage decoding units Monitor the operation status to identify the decoding success block, and power on the decoding success block until the new concatenated BCH code is input. It includes a decoder power control to temporarily shut off.
본 발명에 따른 연접 BCH 부호에서 경판정 정보 기반의 다계층 복호 방법은 행 부호와 열 부호의 복호를 반복하면서, 하나의 페이지의 오류가 모두 고쳐지거나, 반복 복호를 진행하더라도 고쳐지는 오류의 개수가 없을 경우 복호를 종료하게 된다. 이러한 반복 복호 과정에서 이전 단계에서 복호를 성공한 구성 코드의 경우, 전체 페이지의 코드워드에 대해 복호가 끝날 때까지 다시 복호기를 사용할 필요가 없어지게 된다. In the multi-layer decoding method based on hard decision information in the concatenated BCH code according to the present invention, the error of one page is fixed while repeating the decoding of the row code and the column code, or the number of errors to be corrected even if the repeated decoding is performed. If not, the decoding ends. In this iterative decoding process, in the case of the component code that has been successfully decoded in the previous step, it is not necessary to use the decoder again until the decoding is completed for the codeword of the entire page.
따라서 이전 단계에서 복호를 성공한 복호기의 전력을 다음 페이지의 부호가 들어오기 전까지 끌 경우, 복호 과정에서 필요한 전력을 줄이는 데 큰 역할을 할 수 있다. 각 반복 부호마다 복호에 성공하게 되는 평균 구성 코드의 개수와 해당 반복 횟수까지 진행해야 하는 사건이 발생할 확률은 다음의 표1에 나타낸 것과 같다. Therefore, if the power of the decoder which has successfully decoded in the previous step is turned off until the sign of the next page comes, it can play a big role in reducing the power required in the decoding process. The number of average constituent codes that are successfully decoded for each repetition code and the probability of occurrence of an event that should proceed to the corresponding repetition number are shown in Table 1 below.
[표1]Table 1
이에 본 발명에서는 이전 단계에서 복호를 성공한 복호기의 전력을 다음 페이지의 부호가 들어오기 전까지 일시 차단시키는 디코더 전력 제어부(Decoder Power control)를 제안한다. Accordingly, the present invention proposes a decoder power control which temporarily cuts off the power of the decoder which has successfully decoded in the previous step until the code of the next page is received.
디코더 전력 제어부(Decoder Power control)는 제 1 및 제 2 스테이지 복호부에서 복호 실패 정보(Code Failure Info.)를 인가받고, 이를 기준으로 복호 실패 블록 또는 복호 성공 블록를 파악한다. 즉, 제 1 및 제 2 스테이지 복호부가 제공하는 복호 실패 정보(Code Failure Info.)로부터 다수의 열/행 복호기 중 복호를 성공한 열/행 복호기를 파악한다. 그리고 다수의 열/행 복호기 중 복호를 성공한 열/행 복호기로의 전력 공급을 일시 차단한다. The decoder power control unit receives decoding failure information from the first and second stage decoders, and determines a decoding failure block or a decoding success block based on the decoding failure information. That is, the column / row decoder that successfully decodes a plurality of column / row decoders is identified from the code failure information provided by the first and second stage decoders. Then, the power supply to the column / row decoder that successfully decodes the plurality of column / row decoders is temporarily cut off.
그러면, 이전 단계에서 복호를 성공한 복호기는 반복 복호 동작에서 제외되고, 이에 따라 다계층 복호 동작을 위한 복호기 평균 사용 개수가 감소되어 연접 BCH 복호 회로의 전체 전력 소비량은 감소되게 된다. Then, the decoder that has successfully decoded in the previous step is excluded from the iterative decoding operation, thereby reducing the average number of decoders used for the multilayer decoding operation, thereby reducing the total power consumption of the concatenated BCH decoding circuit.
다만, 반복 복호 동작이 종료되고 새로운 코드가 입력되면, 디코더 전력 제어부(Decoder Power control)는 이에 응답하여 리셋되어 다시 모든 행/열 복호기에 전력을 공급함으로써, 새로운 연접 BCH 부호에 대한 반복 복호 동작이 또 다시 시작될 수 있도록 한다.
However, when the repetitive decoding operation is terminated and a new code is input, the decoder power control is reset in response to supplying power to all the row / column decoders again, thereby performing the repetitive decoding operation on the new concatenated BCH code. Let it start over again.
도 6는 본 발명의 플래쉬 메모리 장치를 위한 연접 BCH 다계층 복호 방법을 도시한 도면이다.6 is a diagram illustrating a concatenated BCH multi-layer decoding method for a flash memory device of the present invention.
본 발명에서는 블록 단위의 연접 BCH 부호를 사용하여 복잡도와 복호 지연 시간을 적응적으로 줄이는 연접 부호 시스템을 설계한다. 상기 연접 부호 시스템은 적어도 3개의 레벨로 구성된다.In the present invention, a concatenated code system that adaptively reduces complexity and decoding delay time by using concatenated BCH codes on a block basis is designed. The concatenated code system consists of at least three levels.
첫 번째 레벨은 블록 단위의 연접 BCH 부호의 구성 부호에서의 오류 정정 단계이다. 상기 구성 부호는 블록 단위의 연접 BCH 부호의 일부이므로, 상기 구성 부호만을 복호하면 비교적 낮은 복잡도와 짧은 지연 시간으로 오류를 정정할 수 있다. 상기 구성 부호는 부호 길이가 상대적으로 길어 높은 부호율에서도 비교적 많은 오류를 고칠 수 있다. 상기 구성 부호는 페이지의 일부일 수 있으며 열 부호이거나 행 부호일 수 있다. 플래쉬 메모리 장치에 데이터를 저장하는 파일 시스템에서, 플래쉬 메모리 장치의 데이터 접근을 효율적으로 실행하기 위해 파일 시스템의 데이터 접근 단위 크기에 맞게 상기 구성 부호를 설계할 수 있다. 예를 들어, 512 바이트 단위로 데이터 접근을 수행하는 파일 시스템에 대해 구성 부호의 메시지 길이가 512 바이트, 즉 4096 비트가 되도록 설계하여 데이터 접근을 효율적으로 수행할 수 있다. 상기 구성 부호가 정정에 실패할 확률은 부호 길이가 nc, 정정 가능한 비트 수가 tc, 그리고 초기 오류 확률이 Pe일 때, 수학식 14와 같다.The first level is an error correction step in the component code of the concatenated BCH code in blocks. Since the component code is part of a concatenated BCH code in block units, decoding only the component code can correct an error with a relatively low complexity and a short delay time. Since the code has a relatively long code length, a large number of errors can be corrected even at a high code rate. The configuration code may be part of a page and may be a column code or a row code. In a file system storing data in a flash memory device, the configuration code may be designed to fit the data access unit size of the file system in order to efficiently execute data access of the flash memory device. For example, a file system that performs data access in units of 512 bytes may be designed to have a message length of 512 bytes, that is, 4096 bits, so that data access can be efficiently performed. The probability that the component code fails to correct is equal to
두 번째 레벨은 오류가 많이 발생하여 상기 구성 부호가 오류 정정에 실패했을 경우 전체 연접 BCH 부호를 복호하여 첫 번째 레벨에서 정정하지 못한 오류를 정정하는 단계이다. 연접 BCH 부호의 복호는 상기 도 4를 참조하여 설명하였다. 연접 BCH 부호는 블록 단위로 이루어져 있으므로 오류 블록에 의해 복호에 실패하게 되며, 플래쉬 메모리 코어가 동작하는 낮은 오류율 영역에서는 주로 소수의 오류 블록에 의해 복호에 실패하게 된다. 이러한 소수의 오류 블록에 의한 복호 실패 확률은 수학식 15와 같이 하계로 계산할 수 있다. 수학식 15는 예로서 모든 메시지 블록이 같은 크기인 병렬 연접 BCH 부호에서 하나의 오류 블록에 의한 복호 실패 확률을 나타낸다.The second level is a step of correcting an error that cannot be corrected at the first level by decoding the entire concatenated BCH code when a large number of errors occur and the component code fails to correct the error. Decoding of contiguous BCH codes has been described with reference to FIG. 4. Since the concatenated BCH code is composed of block units, decoding fails due to an error block. In the low error rate region in which a flash memory core operates, decoding fails mainly due to a few error blocks. Decoding failure probability due to such a small number of error blocks can be calculated by the summer as shown in equation (15). Equation 15 shows, as an example, the probability of decoding failure by one error block in a parallel concatenated BCH code in which all message blocks are the same size.
상기 수학식 15에서 Pi ,j는 i개의 복호 실패한 행 부호와 j개의 복호 실패한 열 부호에 의한 오류 확률을 의미하며, Pe는 평균 초기 비트 오류율(average raw bit error rate)을 가리킨다. 또한, nB는 메시지 블록 크기, mr은 하나의 행 부호의 패리티 블록 크기, mc는 하나의 열 부호의 패리티 블록 크기, ne(=n1 e+n2 e+n3 e)는 발생한 모든 비트 오류의 개수, n1 e는 메시지 블록에 발생한 비트 오류의 개수, n2 e는 하나의 행 부호의 패리티 블록에 발생한 비트 오류의 개수, n3 e는 하나의 열 부호의 패리티 블록에 발생한 비트 오류의 개수를 의미한다. 는 조건 S1 ,1가 만족될 때에는 1이고 그 외에는 0인 논리값이다. 이때 상기 조건 S1 , 1는 tr<n1 e + n2 e, 그리고 tr<n1 e + n3 e를 나타낸다. 즉, 하나의 오류 블록과 하나의 행 부호의 패리티 블록에 발생한 비트 오류의 개수가, 그 블록들이 속하는 행 부호가 고칠 수 없을 정도로 많고, 동시에 하나의 오류 블록과 하나의 열 부호의 패리티 블록에 발생한 비트 오류의 개수가, 그 블록들이 속하는 열 부호가 고칠 수 없을 정도로 많은 조건을 나타낸다. 수학식 16는 예로서 모든 메시지 블록이 같은 크기인 병렬 연접 BCH 부호에서 하나의 행에 있는 두 개의 오류 블록에 의한 복호 실패 확률을 나타낸다.In Equation 15, P i , j denotes an error probability due to i decoded failed row codes and j decoded failed column codes, and P e denotes an average raw bit error rate. In addition, n B is the message block size, m r is the parity block size of one row code, m c is the parity block size of one column code, n e (= n 1 e + n 2 e + n 3 e ) N 1 e is the number of bit errors in the message block, n 2 e is the number of bit errors in the parity block of one row code, n 3 e is the parity block of one column code. It means the number of bit error occurred. Is a logical value that is 1 when the condition S 1 , 1 is satisfied and 0 otherwise. In this case, the conditions S 1 , 1 indicate t r <n 1 e + n 2 e , and t r <n 1 e + n 3 e . That is, the number of bit errors occurring in the parity block of one error block and one row code is so large that the row code to which the blocks belong cannot be corrected, and simultaneously occurs in the parity block of one error block and one column code. The number of bit errors indicates so many conditions that the column code to which the blocks belong cannot be corrected.
상기 수학식 16에서 Pi ,j는 i개의 복호 실패한 행 부호와 j개의 복호 실패한 열 부호에 의한 오류 확률을 의미하며, Pe는 평균 초기 비트 오류율(average raw bit error rate)을 가리킨다. 또한, nB는 메시지 블록 크기, mr은 하나의 행 부호의 패리티 블록 크기, mc는 하나의 열 부호의 패리티 블록 크기, ne(= n1 e + n2 e+ n3 e + n4 e+ n5 e)는 발생한 모든 비트 오류의 개수, n1 e는 첫 번째 메시지 블록에 발생한 비트 오류의 개수, n2 e는 두 번째 메시지 블록에 발생한 비트 오류의 개수, n3 e는 하나의 행 부호의 패리티 블록에 발생한 비트 오류의 개수, n4 e는 첫 번째 열 부호의 패리티 블록에 발생한 비트 오류의 개수, n5 e는 두 번째 열 부호의 패리티 블록에 발생한 비트 오류의 개수를 의미한다. 는 조건 S2 ,1가 만족될 때에는 1이고 그 외에는 0인 논리값이다. 이때 상기 조건 S2 , 1는 1) tr < n1 e + n2 e+ n3 e, 2) tc < n1 e + n4 e, 그리고 3) tc < n2 e + n5 e를 나타낸다. 이와 같은 방식으로 하계를 구하면 도 6과 같이 연접 BCH 부호의 컴퓨터 시뮬레이션에 의한 성능 측정 결과가 하계에 의해 제한되는 것을 확인할 수 있다.In
연접 BCH 부호의 성능이 하계에 의해 제한되는 것은 복호 실패가 그 하계가 가리키는 오류 블록에 의해 발생하는 것을 의미한다. 예를 들어, 도 6을 참조하면, 연접 BCH 부호를 초기 비트 오류율이 약 2.75 × 10(-3)이하일 때 복호하면, 대부분 1개의 오류 블록에 의한 복호 실패가 발생한다.Limiting the performance of contiguous BCH codes means that the decoding failure is caused by the error block indicated by the summer. For example, referring to FIG. 6, if the concatenated BCH code is decoded when the initial bit error rate is about 2.75 × 10 (-3) or less, decoding failure by most one error block occurs.
본 발명에서 사용하는 연접 BCH 부호에서 복호 실패가 발생했을 때, 오류 블록의 위치는 복호에 실패한 구성 부호에 의해 결정된다. 따라서 오류 블록에 의한 복호 실패가 발생했을 때, 해당 오류 블록에 대해서만 추가적인 동작을 수행할 수 있다.When decoding failure occurs in the concatenated BCH code used in the present invention, the position of the error block is determined by the component code that failed to decode. Therefore, when a decoding failure due to an error block occurs, additional operations may be performed only on the corresponding error block.
세 번째 레벨은 상기 연접 BCH 부호의 복호 실패가 소수의 오류 블록에 대해서 발생할 때 상기 오류 블록에 해당하는 추가 정보만을 얻어 비교적 낮은 복잡도로 추가 복호를 수행하여 두 번째 레벨보다 더 많은 오류를 정정하는 단계이다. 도 9을 참조하면, 연접 BCH 부호의 경판정 반복 복호에서 반복 종료가 선언되면, 상기 추가 복호가 진행되며, 상기 추가 복호를 위해서 상기 행 복호기와 열 복호기 모두에서 각 구성 부호들의 복호 실패 여부를 인가받아 상기 소수 오류 블록의 위치를 확정한다. 상기 추가 정보는, 상기 위치가 확정된 소수 오류 블록에 해당하는 비트들에 대한 정보로, 예를 들어, 플래쉬 메모리 코어에서 해당 비트들이 저장된 셀과 그 주변 셀을 읽어 얻거나, 해당 비트들이 저장된 셀의 문턱 전압에 대해 비트 값을 결정하는 읽기 기준 문턱 전압 값을 이전 읽기 기준 문턱 전압 값과 바꾸어 적용하여 비트 값을 결정하는 방법으로 얻을 수 있다. 상기 추가적인 복호는 상기 추가 정보를 이용하는 복호 방법으로, 예를 들어 체이스 복호(Chase decoding)와 같은 신뢰성 기반 복호(reliability-based decoding) 방법을 사용할 수 있다.The third level is to correct only more errors than the second level by performing additional decoding with relatively low complexity by obtaining only additional information corresponding to the error block when the decoding failure of the contiguous BCH code occurs for a few error blocks. to be. Referring to FIG. 9, if the repetition end is declared in the hard decision iterative decoding of a concatenated BCH code, the additional decoding is performed, and whether the decoding of each component code is failed in both the row decoder and the column decoder for the additional decoding. And determine the position of the fractional error block. The additional information is information about bits corresponding to the located small number of error blocks. For example, the flash memory core may read a cell in which the bits are stored and a neighboring cell thereof, or may store a cell in which the bits are stored. The read reference threshold voltage value, which determines the bit value for the threshold voltage of, may be obtained by replacing the previous read reference threshold voltage value with a method of determining the bit value. The additional decoding may be a decoding method using the additional information. For example, a reliability-based decoding method such as chase decoding may be used.
이하에서는, 본 발명의 연접 부호를 사용하는 오류 정정 회로와 종래의 오류 정정 회로들과의 성능 차이를 예를 들어 설명한다.Hereinafter, the performance difference between the error correction circuit using the concatenated code of the present invention and the conventional error correction circuits will be described by way of example.
도 8을 참조하면, Sim.은 16 개의 행 부호((4226, 4096, 10) BCH 부호)와 16 개의 열 부호((4278, 4096, 14) BCH 부호)로 이루어진 (70528, 65536) 병렬 연접 BCH 부호의 성능을 컴퓨터 시뮬레이션한 결과이다. Referring to FIG. 8, Sim. Is a (70528, 65536) parallel concatenated BCH consisting of 16 row codes ((4226, 4096, 10) BCH codes) and 16 column codes ((4278, 4096, 14) BCH codes). Computer simulation of the performance of the code.
Imax는 상기 신뢰성 기반 복호 방법에서 최대 시도 횟수를 의미하며, Imax = N은 N회 최대 시도 횟수의 상기 신뢰성 기반 복호를 세 번째 레벨로 수행했을 때의 성능을 의미한다. 도 8의 예에서 신뢰성 기반 복호 방법은 일정 수의 비트만 선택하여 값을 뒤집는 방법을 사용하였다. 하나의 블록 오류에 대해 최대 시도 횟수가 512번 수행할 수 있는 신뢰성 기반 복호를 수행하면, 목표 페이지 오류율(page-error rate) 에 대해 하나의 오류 블록을 대부분 고칠 수 있음을 알 수 있다. 표 1은 도 8에 대해 최대 시도 횟수가 16, 32, 64, 128, 512 번일 때, 평균 시도 횟수가 적음을 보여준다. 이는 비교적 낮은 복잡도로 상기 세 번째 레벨의 복호가 이루어짐을 의미한다.I max means the maximum number of attempts in the reliability-based decoding method, I max = N means performance when the reliability-based decoding of the maximum number of N attempts is performed at the third level. In the example of FIG. 8, the reliability-based decoding method uses a method of inverting a value by selecting only a predetermined number of bits. Reliability-based decoding, in which a maximum number of attempts can be performed 512 times for one block error, shows that most error blocks can be corrected for the target page-error rate. Table 1 shows that the average number of attempts is small when the maximum number of attempts is 16, 32, 64, 128, and 512 times with respect to FIG. 8. This means that the third level of decoding is achieved with a relatively low complexity.
도 8을 참조하면, Sim.으로 표시된 세 번째 레벨의 오류 정정 능력은 Short BCH로 표시된 부호보다 뛰어남을 알 수 있다. Short BCH는 512 바이트 당 24 비트를 정정하는 BCH 부호를 8KB에 대해 적용한 부호(16개의 (4278, 4096, 24) BCH 부호)이다. Short BCH와 Sim.으로 표시된 두 부호는 같은 부호율(0.929)을 가지며 부호 길이가 같고 패리티 비트 수도 같다.Referring to FIG. 8, it can be seen that error correction capability of the third level indicated by Sim. Is superior to the symbol indicated by Short BCH. The Short BCH is a code (16 (4278, 4096, 24) BCH codes) obtained by applying a BCH code for correcting 24 bits per 512 bytes for 8 KB. The two codes denoted by Short BCH and Sim. Have the same code rate (0.929), have the same code length, and have the same number of parity bits.
도 8을 참조하면, Sim.으로 표시된 세 번째 레벨의 오류 정정 능력은 Long BCH로 표시된 부호와 큰 차이가 없음을 알 수 있다. Long BCH는 8KB 당 295 비트를 정정하는 BCH 부호(1 개의 (70534, 65536, 295) BCH 부호)이다. Long BCH와 Sim.으로 표시된 두 부호는 같은 부호율(0.929)을 가지며 부호 길이가 거의 같고 패리티 비트 수도 거의 같다. 상기 Long BCH로 표시된 부호는 단순한 BCH 부호로 달성할 수 있는 최대의 성능을 가지나, 복잡도와 지연 시간이 지나치게 높아 현실적으로 구현이 어렵거나 플래쉬 메모리 장치에 사용할 수 없는 오류 정정 부호이다.
Referring to FIG. 8, it can be seen that the error correction capability of the third level indicated by Sim. Is not significantly different from the sign indicated by Long BCH. The Long BCH is a BCH code (one (70534, 65536, 295) BCH code) that corrects 295 bits per 8KB. The two codes marked Long BCH and Sim. Have the same code rate (0.929), have almost the same code length, and have almost the same number of parity bits. The code marked Long BCH has the maximum performance that can be achieved by a simple BCH code, but is an error correction code that is difficult to implement or cannot be used in a flash memory device due to excessive complexity and delay time.
도 9은 본 발명의 플래쉬 메모리 장치의 추가 복호가 가능한 연접 BCH 다계층 복호 회로를 도시한 기능 블록도이다.9 is a functional block diagram illustrating a concatenated BCH multi-layer decoding circuit capable of further decoding the flash memory device of the present invention.
연접 BCH 다계층 복호 회로는 도 9에 도시된 바와 같이, 연접 BCH 부호 일부를 인가받아 BCH 복호를 수행하여 제 1 출력 BCH 부호 또는 그에 의해 보호되는 제 1 출력 데이터를 출력하는 제 1 스테이지 복호부와, 제 1 출력 BCH 부호 또는 제1 출력 데이터를 두 개 이상의 블록(block)으로 나눠 디인터리빙(de-interleaving)하여 출력하는 디인터리빙부와, 디인터리빙부의 출력을 BCH 복호하여 제 2 출력 BCH 부호 또는 그에 의해 보호되는 제 2 출력 데이터를 출력하는 제 2 스테이지 복호부와, 제 2 출력 BCH 부호 또는 제 2 출력 데이터를 두 개 이상의 블록으로 나눠 인터리빙하여 제 1 스테이지 복호부로 출력하는 인터리빙부와, 제 1 및 제 2 스테이지 복호부에서 복호 실패 정보를 인가받고 제 2 출력 BCH 부호 또는 그에 의해 보호되는 제 2 출력 데이터를 인가받아 복호 실패 블록에 대해 추가 복호를 실행하는 추가 복호부를 포함하고 있다. As shown in FIG. 9, the concatenated BCH multi-layer decoding circuit includes a first stage decoder that receives a portion of the concatenated BCH code and performs BCH decoding to output a first output BCH code or first output data protected by the concatenated BCH code; A deinterleaving unit for de-interleaving the first output BCH code or the first output data into two or more blocks, and outputting the deinterleaving unit, and performing a BCH decoding of the output of the deinterleaving unit; A second stage decoder for outputting the second output data protected by the interleaving unit, an interleaving unit for dividing the second output BCH code or the second output data into two or more blocks, and outputting the interleaved output to the first stage decoder; And decoding failure by receiving decoding failure information from the second stage decoding unit and receiving the second output BCH code or the second output data protected by the second stage decoding unit. It includes an additional decoder that performs additional decoding on the lock.
여기서, 제 1 스테이지 복호부는 열 복호기(Column Code Decoder)이고, 디인터리빙부는 블록 단위 디인터리버(Block-wise De-interleaver)이고, 제 2 스테이지 복호부는 행 복호기(Row Code Decoder)이고, 인터리빙부는 블록 단위 인터리버(Block-wise Interleaver)이다.Here, the first stage decoder is a column code decoder, the deinterleaving part is a block-wise de-interleaver, the second stage decoder is a row code decoder, and the interleaving part is a block It is a block-wise interleaver.
추가 복호부는 연접 BCH 부호의 복호 실패가 소수의 오류 블록에 대해서 발생했을 때 상기 오류 블록에 해당하는 추가 정보만을 얻어 추가 복호를 수행하여 오류를 정정한다. 이때, 추가 정보는 위치가 확정된 소수의 오류 블록에 해당하는 비트들에 대한 정보를 포함한다.When the decoding failure of the contiguous BCH code occurs for a few error blocks, the additional decoding unit obtains additional information corresponding to the error block and performs additional decoding to correct the error. In this case, the additional information includes information about bits corresponding to a small number of error blocks in which a position is determined.
추가 복호부는 추가 복호를 위해서 제 1 및 제 2 스테이지 부호부 모두에서 각 구성 부호들의 복호 실패 여부를 인가받아 소수의 오류 블록의 위치를 확정한다. 구성 부호는 읽기(read) 및 쓰기(write) 단위인 페이지의 일부 또는 전부이거나 열(Column) 부호 또는 행(Row) 부호이다.The additional decoding unit receives the decoding failure of each component code from both the first and second stage coders for additional decoding to determine the position of the few error blocks. The construction code is part or all of the page, which is a read and write unit, or a column or row code.
더하여, 도시되지는 않았지만 도9의 연접 BCH 다계층 복호 회로도 도5에서와 같이 디코더 전력 제어부(Decoder power control)를 추가 구비하여, 전력 절감 효과를 추가 제공할 수 있음은 물론 당연할 것이다. In addition, although not shown, the concatenated BCH multi-layer decoding circuit diagram of FIG. 9 may further include a decoder power control as shown in FIG. 5 to further provide a power saving effect.
본 발명에 의한 플래쉬 메모리 장치의 오류 정정 회로는, 입력 데이터를 두 개 이상의 데이터로 분리한 후 각각 BCH 부호화하여 상기 분리된 데이터와 같은 개수의 행 BCH 부호를 출력하는 외부 부호부와, 행 BCH 부호 또는 그에 의해 보호되는 데이터를 다시 두 개 이상의 블록으로 나눠 그 블록들을 인터리빙하고 같은 개수의 블록을 출력하는 인터리빙부와, 인터리빙부에서 인터리빙된 블록들을 BCH 부호화하여 열 BCH 부호를 출력하는 내부 부호부와, 플래쉬 메모리 코어로부터 제공되는 저장 데이터의 일부를 인가받아 BCH 복호를 수행하여 제1 출력 BCH 부호 또는 그에 의해 보호되는 제1 출력 데이터를 출력하는 제1 스테이지 복호부와, 제1 출력 BCH 부호 또는 제1 출력 데이터를 두 개 이상의 블록으로 나눠 디인터리빙하여 출력하는 디인터리빙부와, 디인터리빙부의 출력을 BCH 복호하여 제2 출력 BCH 부호 또는 그에 의해 보호되는 제2 출력 데이터를 출력하는 제2차 스테이지 복호부와, 제2 출력 BCH 부호 또는 제2 출력 데이터를 두 개 이상의 블록으로 나눠 인터리빙하여 제1 스테이지 복호부로 출력하는 인터리빙부를 포함하고 있다.An error correction circuit of a flash memory device according to the present invention includes an external coder for separating input data into two or more data and then performing BCH encoding to output the same number of row BCH codes as the separated data, and a row BCH code. Or an interleaving unit for dividing the data protected by the data into two or more blocks, interleaving the blocks and outputting the same number of blocks, and an internal encoder for outputting a column BCH code by BCH encoding the interleaved blocks in the interleaving unit; A first stage decoder for receiving a portion of the stored data provided from the flash memory core to perform BCH decoding to output a first output BCH code or first output data protected by the first output BCH code; 1 A deinterleaving unit for dividing the output data into two or more blocks for deinterleaving and outputting the deinterleaving unit. BCH decoding the output of the ice block to output the second output BCH code or the second output data protected by the second stage decoder and the second output BCH code or the second output data divided into two or more blocks And an interleaving unit for outputting to the first stage decoding unit.
본 발명의 플래쉬 메모리 장치는 기본적으로 낸드 플래쉬 메모리 장치에 적용될 수 있으나, 노어 플래쉬 메모리와 같은 다른 종류의 메모리 장치에도 적용 될 수 있다. The flash memory device of the present invention may be basically applied to a NAND flash memory device, but may also be applied to other types of memory devices such as NOR flash memory.
이와 같이 구성된 본 발명의 연접 BCH 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치는, 플래쉬 메모리 장치를 위한 부호, 복호 및 다계층 복호를 통해서 오류 정도에 따라 지연 시간을 조정함으로써, 본 발명의 기술적 과제를 해결할 수가 있다.The concatenated BCH code, decoding and multi-layer decoding circuit and method of the present invention configured as described above, the error correction circuit and the flash memory device of the flash memory device using the same, the error degree through the code, decoding and multi-layer decoding for the flash memory device By adjusting the delay time according to the above, the technical problem of the present invention can be solved.
이상에서 설명한 본 발명의 바람직한 실시 예들은 기술적 과제를 해결하기 위해 개시된 것으로, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자(당업자)라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가 등이 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.It will be apparent to those skilled in the art that various modifications and changes can be made in the present invention without departing from the spirit or scope of the present invention as defined by the appended claims. It will be appreciated that such modifications and variations are intended to fall within the scope of the following claims.
Claims (11)
상기 제 1 출력 BCH 부호 또는 상기 제1 출력 데이터를 두 개 이상의 블록(block)으로 나눠 디인터리빙(de-interleaving)하여 출력하는 디인터리빙부;
상기 디인터리빙부의 출력을 BCH 복호하여 제 2 출력 BCH 부호 또는 상기 제 2 출력 BCH 부호에 의해 보호되는 제 2 출력 데이터를 출력하는 제 2 스테이지 복호부;
상기 제 2 출력 BCH 부호 또는 상기 제 2 출력 데이터를 두 개 이상의 블록으로 나눠 인터리빙하여 상기 제 1 스테이지 복호부로 출력하는 인터리빙부; 및
상기 제 1 및 제 2 스테이지 복호부의 동작 상태를 모니터링하여 복호 성공 블록을 파악하고, 복호 성공 블록에 대해서는 새로운 연접 BCH 부호를 입력받을 때 까지 전력 공급을 일시 차단하는 디코더 전력 제어부;를 포함하는 연접 BCH 복호 회로.
A first stage decoding unit receiving a concatenated BCH code to perform BCH decoding, and outputting first output data protected by a first output BCH code or the first output BCH code;
A deinterleaving unit for de-interleaving and outputting the first output BCH code or the first output data into two or more blocks;
A second stage decoding unit for BCH decoding the output of the deinterleaving unit to output second output data protected by a second output BCH code or the second output BCH code;
An interleaving unit dividing the second output BCH code or the second output data into two or more blocks and interleaving the interleaving unit to output the first output BCH code to the first stage decoder; And
A decoder power control unit configured to monitor operation states of the first and second stage decoders to identify a decoding success block, and temporarily block power supply until a new concatenated BCH code is input to the decoding success block. Decoding Circuit.
반복 복호 방식으로 열(Column) 복호와 행(Row) 복호를 반복하며, 최대 반복 횟수 또는 반복 종료 조건에 의해 반복을 종료하는 연접 BCH 복호 회로.
The circuit of claim 1, wherein the concatenated BCH decoding circuit is:
10. A concatenated BCH decoding circuit for repeating column decoding and row decoding in an iterative decoding manner, and ending the iteration by a maximum number of iterations or an iteration termination condition.
상기 제 1 스테이지 복호부는 다수의 열 복호기(Column Code Decoder)이고,
상기 제 2 스테이지 복호부는 다수의 행 복호기(Row Code Decoder)이고,
상기 디인터리빙부는 블록 단위 디인터리버(Block-wise De-interleaver)이고,
상기 인터리빙부는 블록 단위 인터리버(Block-wise Interleaver)인 연접 BCH 복호 회로.
The method of claim 1,
The first stage decoder is a plurality of column code decoder (Column Code Decoder),
The second stage decoder is a plurality of row code decoder (Row Code Decoder),
The deinterleaving unit is a block-wise de-interleaver.
And the interleaving unit is a block-wise interleaver.
상기 다수의 열 복호기(Column Code Decoder)와 상기 다수의 행 복호기(Row Code Decoder) 각각으로부터 전송되는 복호 실패 정보를 이용하여 복호를 성공한 복호기를 파악하고, 상기 복호를 성공한 복호기로의 전원 공급을 새로운 연접 BCH 부호를 입력받을 때 까지 일시 차단하는 것을 특징으로 하는 연접 BCH 복호 회로.
The method of claim 3, wherein the decoder power control unit
Decode the successful decoder using the decoding failure information transmitted from each of the plurality of column coders and the plurality of row code decoders, and supply power to the decoder that successfully decodes the new decoder. A concatenated BCH decoding circuit, which temporarily blocks until a concatenated BCH code is received.
상기 제 1 및 제 2 스테이지 복호부에서 열(Column) 및 행(Row) 복호에 성공하면 상기 제 1 및 제 2 스테이지 복호부의 출력을 조합하여 플래쉬 메모리 코어에 저장될 코드워드를 생성하는 연접 BCH 복호 회로.
The circuit of claim 1, wherein the concatenated BCH decoding circuit is:
A contiguous BCH decoding that generates a codeword to be stored in a flash memory core by combining outputs of the first and second stage decoders when column and row decoding is successful in the first and second stage decoders. Circuit.
상기 제 1 및 제 2 스테이지 복호부에서 복호 실패 정보를 인가받고 상기 제 2 출력 BCH 부호 또는 상기 상기 제 2 출력 BCH 부호에 의해 보호되는 제 2 출력 데이터를 인가받아 복호 실패 블록에 대해 추가 복호를 실행하는 추가 복호부;를 더 포함하는 연접 BCH 복호 회로.
The method of claim 1,
The first and second stage decoders receive decoding failure information, receive second output data protected by the second output BCH code or the second output BCH code, and perform additional decoding on the decoding failure block. An additional decoder configured to further comprise a concatenated BCH decoding circuit.
연접 BCH 부호의 복호 실패가 소수의 오류 블록에 대해서 발생했을 때 상기 오류 블록에 해당하는 추가 정보만을 얻어 추가 복호를 수행하여 오류를 정정하는 연접 BCH 복호 회로.
7. The apparatus of claim 6, wherein the additional decoder is:
A concatenated BCH decoding circuit for correcting an error by performing additional decoding by obtaining only additional information corresponding to the error block when a decoding failure of a contiguous BCH code occurs for a few error blocks.
상기 추가 정보는 위치가 확정된 소수의 오류 블록에 해당하는 비트들에 대한 정보를 포함하는 연접 BCH 복호 회로.
8. The method of claim 7,
The additional information includes information on bits corresponding to a small number of error blocks in which the location is determined.
상기 추가 복호를 위해서 상기 제 1 및 제 2 스테이지 복호부 모두에서 각 구성 부호들의 복호 실패 여부를 인가받아 상기 소수의 오류 블록의 위치를 확정하는 연접 BCH 복호 회로.
9. The apparatus of claim 8, wherein the additional decoder is:
A concatenated BCH decoding circuit configured to determine the positions of the few error blocks by receiving whether or not the decoding codes of respective components are decoded by both the first and second stage decoding units for the additional decoding.
상기 구성 부호는 읽기(read) 및 쓰기(write) 단위인 페이지의 일부 또는 전부이거나 열(Column) 부호 또는 행(Row) 부호인 연접 BCH 복호 회로.
The method of claim 9,
Wherein the configuration code is part or all of a page in read and write units or a column or row code.
상기 행 BCH 부호 또는 상기 행 BCH 부호에 의해 보호되는 데이터를 다시 두 개 이상의 블록으로 나눠 그 블록들을 인터리빙하고 같은 개수의 블록을 출력하는 인터리빙부;
상기 인터리빙부에서 인터리빙된 블록들을 BCH 부호화하여 열 BCH 부호를 출력하는 내부 부호부;
플래쉬 메모리 코어로부터 제공되는 저장 데이터의 일부를 인가받아 BCH 복호를 수행하여 제1 출력 BCH 부호 또는 상기 제1 출력 BCH 부호에 의해 보호되는 제1 출력 데이터를 출력하는 제1 스테이지 복호부;
상기 제1 출력 BCH 부호 또는 상기 제1 출력 데이터를 두 개 이상의 블록으로 나눠 디인터리빙하여 출력하는 디인터리빙부;
상기 디인터리빙부의 출력을 BCH 복호하여 제2 출력 BCH 부호 또는 상기 제2 출력 BCH 부호에 의해 보호되는 제2 출력 데이터를 출력하는 제2차 스테이지 복호부;
상기 제2 출력 BCH 부호 또는 상기 제2 출력 데이터를 두 개 이상의 블록으로 나눠 인터리빙하여 상기 제1 스테이지 복호부로 출력하는 인터리빙부; 및
상기 제 1 및 제 2 스테이지 복호부의 동작 상태를 모니터링하여 복호 성공 블록을 파악하고, 복호 성공 블록에 대해서는 새로운 연접 BCH 부호를 입력받을 때 까지 전력 공급을 일시 차단하는 디코더 전력 제어부;를 포함하는 플래쉬 메모리 장치의 오류 정정 회로.
An outer coder for separating input data into two or more data and then performing BCH encoding to output the same number of row BCH codes as the separated data;
An interleaving unit for dividing the data protected by the row BCH code or the row BCH code into two or more blocks, interleaving the blocks, and outputting the same number of blocks;
An internal coder for BCH encoding the interleaved blocks in the interleaving unit to output a column BCH code;
A first stage decoder configured to receive a portion of stored data provided from a flash memory core to perform BCH decoding to output a first output BCH code or first output data protected by the first output BCH code;
A deinterleaving unit configured to deinterleave and output the first output BCH code or the first output data into two or more blocks;
A second stage decoder for BCH decoding the output of the deinterleaving unit to output a second output BCH code or second output data protected by the second output BCH code;
An interleaving unit dividing the second output BCH code or the second output data into two or more blocks and interleaving the interleaving unit to output the first output BCH code to the first stage decoder; And
And a decoder power controller configured to monitor operation states of the first and second stage decoders to identify a decoding success block, and temporarily cut off power supply until a new concatenated BCH code is input to the decoding success block. Error correction circuit in the device.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120073373A KR101355982B1 (en) | 2012-07-05 | 2012-07-05 | Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same |
US13/678,812 US9166626B2 (en) | 2011-11-18 | 2012-11-16 | Encoding, decoding, and multi-stage decoding circuits for concatenated BCH, and error correction circuit of flash memory device using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120073373A KR101355982B1 (en) | 2012-07-05 | 2012-07-05 | Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140006447A KR20140006447A (en) | 2014-01-16 |
KR101355982B1 true KR101355982B1 (en) | 2014-01-29 |
Family
ID=50141373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120073373A KR101355982B1 (en) | 2011-11-18 | 2012-07-05 | Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101355982B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060019249A (en) * | 2004-08-27 | 2006-03-03 | 삼성전자주식회사 | Turbo code decoder for error correction of high speed data transmission |
JP2009260882A (en) | 2008-04-21 | 2009-11-05 | Sumitomo Electric Ind Ltd | Decoding device and in-house equipment in optical communication system |
-
2012
- 2012-07-05 KR KR1020120073373A patent/KR101355982B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060019249A (en) * | 2004-08-27 | 2006-03-03 | 삼성전자주식회사 | Turbo code decoder for error correction of high speed data transmission |
JP2009260882A (en) | 2008-04-21 | 2009-11-05 | Sumitomo Electric Ind Ltd | Decoding device and in-house equipment in optical communication system |
Non-Patent Citations (2)
Title |
---|
A High-Speed Low-Complexity Concatenated BCH Decoder Architecture for 100 Gb/s Optical Communications, Kihoon Lee, Inha Univ. * |
Concatenated BCH Codes for NAND Flash Memories, Sung-gun Cho, KAIST * |
Also Published As
Publication number | Publication date |
---|---|
KR20140006447A (en) | 2014-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9166626B2 (en) | Encoding, decoding, and multi-stage decoding circuits for concatenated BCH, and error correction circuit of flash memory device using the same | |
KR101267183B1 (en) | Semiconductor memory device | |
US8812939B2 (en) | Soft decoding systems and methods for flash based memory systems | |
US8560930B2 (en) | Systems and methods for multi-level quasi-cyclic low density parity check codes | |
US9710327B2 (en) | Flash memory system and operating method thereof | |
US11082069B1 (en) | Decoding scheme for error correction code structure in data storage devices | |
US11016844B2 (en) | Error correction code structure | |
KR20150073717A (en) | Storage device and data encoding and decoding methods thereof | |
US20150155888A1 (en) | Concatenated error correction device | |
JP2019057752A (en) | Memory system | |
KR101320684B1 (en) | Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same | |
KR101913900B1 (en) | Decoder having early decoding termination detection | |
US9639421B2 (en) | Operating method of flash memory system | |
KR101355988B1 (en) | Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same | |
US11258464B1 (en) | Codeword concatenation for correcting errors in data storage devices | |
US20230336190A1 (en) | Method and system for error correction in memory devices using irregular error correction code components | |
US8627183B1 (en) | Systems and methods for storing variable rate product codes | |
KR102007163B1 (en) | Encoder, decoder and semiconductor device including the same | |
CN110113058B (en) | Coding and decoding method, device, equipment and computer readable storage medium | |
US11734107B2 (en) | Decoding scheme for error correction code structure | |
CN110795271A (en) | Error correction circuit for performing error correction on user data and error correction method using the same | |
KR101355986B1 (en) | Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same | |
KR101357544B1 (en) | Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same | |
KR101355982B1 (en) | Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same | |
KR101496052B1 (en) | Decoding circuit and method for improved performance and lower error floors of block-wise concatenated BCH codes with cyclic shift of constituent BCH codes |
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 | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161227 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |