KR102076624B1 - Storage system based flash memory and error correcting method thereof - Google Patents
Storage system based flash memory and error correcting method thereof Download PDFInfo
- Publication number
- KR102076624B1 KR102076624B1 KR1020180156206A KR20180156206A KR102076624B1 KR 102076624 B1 KR102076624 B1 KR 102076624B1 KR 1020180156206 A KR1020180156206 A KR 1020180156206A KR 20180156206 A KR20180156206 A KR 20180156206A KR 102076624 B1 KR102076624 B1 KR 102076624B1
- Authority
- KR
- South Korea
- Prior art keywords
- ecc
- data
- flash memory
- ecc data
- data stored
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
Abstract
Description
본 발명은 플래시 메모리 기반의 저장 시스템 및 이의 에러 보정 방법에 관한 것으로, 좀더 자세하게는, ECC 모듈의 기능이 향상된 낸드 플래시 메모리 기반의 저장 시스템 및 이의 에러 보정 방법에 관한 것이다.The present invention relates to a flash memory-based storage system and an error correction method thereof, and more particularly, to a NAND flash memory-based storage system and an error correction method of which an ECC module has an improved function.
낸드 플래시 메모리 기반의 저장 시스템에서, 컨트롤러에 ECC(Error Correcting Code) 모듈을 포함하고, 낸드 셀(NAND cell) 블록에 위치하는 페이지(Page)는 데이터 영역 및 스페어 영역을 포함한다.In a NAND flash memory-based storage system, an error correcting code (ECC) module is included in a controller, and a page located in a NAND cell block includes a data area and a spare area.
ECC 데이터(예로써, ECC codeword)가 증가할수록 데이터 에러 커버 능력이 증가하지만, 페이지 안에 ECC 데이터가 다 저장되지 않게 되므로 다른 영역에까지 저장하여야 하고, 이에 따라, 데이터 읽기 시 최대 페이지 읽기를 두 번 하게 되어 오버헤드가 증가하는 문제점이 있다.As the ECC data (e.g. ECC codeword) increases, the data error covering ability increases, but since ECC data is not stored in the page, it must be stored in another area. Therefore, the maximum page read twice when reading data. There is a problem that the overhead is increased.
이에 따라, 데이터의 에러 커버 능력 향상을 위해 ECC 데이터를 증가함과 동시에 페이지 읽기 오버헤드는 기존 대비 줄일 수 있는 ECC 모듈을 포함하는 낸드 플래시 메모리 기반의 저장 시스템의 개발이 필요한 실정이다.Accordingly, there is a need to develop a NAND flash memory-based storage system including an ECC module that increases ECC data and reduces page read overhead in order to improve data error covering capability.
본 발명이 이루고자 하는 기술적 과제는 ECC 모듈을 포함하는 낸드 플래시 메모리 기반의 저장 시스템에서 P/E 사이클((Program/Erase Cycle)이 증가시 ECC codeword를 증가시켜 데이터의 에러 커버 능력을 향상하기 위한 것이다. An object of the present invention is to improve the error cover ability of data by increasing the ECC codeword when the P / E cycle (Program / Erase Cycle) increases in a NAND flash memory based storage system including an ECC module. .
또한, 본 발명이 이루고자 하는 기술적 과제는, 크기가 큰 ECC 데이터가 여러 영역에 저장되었을 때, ECC 데이터 인코딩 시 여러 영역 중 일부 영역에 저장된 ECC의 복원여부를 먼저 검증하고, 일부 영역의 ECC의 복원여부가 검증된 경우에는, 나머지 영역에 저장된 ECC 데이터의 인코딩을 생략하여 ECC 데이터의 인코딩에 소요되는 시간을 절감함으로써 저장 시스템의 성능을 향상하기 위한 것이다.In addition, the technical problem to be achieved by the present invention, when ECC data having a large size is stored in several areas, when ECC data encoding, first verify whether the ECC stored in some of the several areas to restore, and restore the ECC of some areas If it is verified, it is to improve the performance of the storage system by reducing the time required for encoding the ECC data by omitting the encoding of the ECC data stored in the remaining areas.
본 발명의 일 실시예에 따른 플래시 메모리 기반의 저장 시스템은, 데이터를 저장하는 데이터 영역과, 상기 데이터에 대한 ECC 데이터를 저장하는 스페어 영역을 구비하는 페이지를 포함하는 플래시 메모리, 그리고 상기 페이지에 저장된 상기 데이터의 에러 보정을 위한 ECC 모듈을 포함하여 상기 플래시 메모리를 제어하는 컨트롤러를 포함하고, 상기 ECC 모듈은, 상기 데이터 영역에 대한 ECC 데이터를 생성하여 상기 스페어 영역에 저장하되 상기 플래시 메모리의 PE 사이클을 기준값과 비교하여 상기 PE 사이클이 상기 기준값을 초과하는 경우 상기 ECC 데이터의 크기를 적어도 두 개의 페이지에 저장되도록 생성하는 ECC codeword 생성부, 적어도 두 개의 페이지에 저장된 상기 ECC codeword 중 하나의 페이지에 저장된 ECC 데이터가 상기 데이터 영역에 저장된 데이터를 복원가능한지를 판단하는 ECC 데이터 복원여부 검증부, 그리고 상기 ECC 데이터 복원여부 검증부가 하나의 페이지에 저장된 ECC 데이터가 상기 데이터 영역에 저장된 데이터를 복원가능한 것으로 판단함에 따라 하나의 페이지에 저장된 ECC 데이터를 인코딩하는 ECC 데이터 인코딩부를 포함하는 것을 특징으로 한다.A flash memory-based storage system according to an embodiment of the present invention, a flash memory including a page having a data area for storing data, a spare area for storing ECC data for the data, and stored in the page And a controller for controlling the flash memory, including an ECC module for error correction of the data, wherein the ECC module generates ECC data for the data area and stores the ECC data in the spare area. An ECC codeword generation unit for generating a size of the ECC data to be stored in at least two pages when the PE cycle exceeds the reference value, and stored in one page of the ECC codewords stored in at least two pages. Data in which ECC data is stored in the data area ECC data restoration verifier for determining whether the data can be restored, and the ECC data restoration verifier verifies that ECC data stored in one page is capable of restoring data stored in the data area. It characterized in that it comprises an ECC data encoding unit for encoding the.
상기 기준값은 상기 플래시 메모리의 PE 사이클의 80% 크기인 것을 특징으로 한다.The reference value is characterized in that the size of 80% of the PE cycle of the flash memory.
상기 ECC 데이터 복원여부 검증부가 두 개의 페이지에 저장된 ECC codeword 중 하나의 페이지에 저장된 ECC 데이터로는 상기 데이터 영역에 저장된 데이터를 복원할 수 없고, 다른 하나의 페이지에 저장된 ECC 데이터를 이용하는 경우 상기 데이터 영역에 저장된 데이터를 복원가능한 것으로 판단하는 경우, 상기 ECC 데이터 인코딩부는 상기 두 개의 페이지에 저장된 ECC 데이터를 모두 인코딩하는 것을 특징으로 한다.If the ECC data restoration verifier verifies that the ECC data stored in one page of ECC codewords stored in two pages cannot restore the data stored in the data area, and uses the ECC data stored in another page, the data area. If it is determined that the data stored in the reconstructed, the ECC data encoding unit is characterized in that for encoding both the ECC data stored in the two pages.
상기 ECC codeword 생성부는 LDPC 코드를 이용하여 ECC 데이터를 생성하는 것을 특징으로 한다.The ECC codeword generator generates ECC data using an LDPC code.
상기 ECC codeword 생성부는 하기의 식 1을 확장하여 하기의 식 2를 생성하고, 하기의 식 2를 이용하여 ECC codeword를 생성하는 것을 특징으로 한다.The ECC codeword generator extends Equation 1 below to generate Equation 2 below, and generates an ECC codeword using Equation 2 below.
[식 1][Equation 1]
[식 2][Equation 2]
(여기서, s는 k비트의 메시지, 즉, 데이터이고, c는 M비트의 패리티(체크)이고, x는 N비트의 codeword로 c+s이고, H는 codeword가 Hx=0을 만족하는 M by N 행렬의 생성 매트릭스이고, A는 M by M 행렬, B는 M by k 행렬이고, H’는 확장된 H이고, D는 0이고, E,F,G는 H의 Tanner 그래프를 확장할 수 있도록 식2의 수식(2)에서 설계된 값임.) (Where s is a k-bit message, i.e. data, c is an M-bit parity (check), x is an N-bit codeword, c + s, and H is M by which the codeword satisfies Hx = 0). Create matrix of matrix N, where A is an M by M matrix, B is an M by k matrix, H 'is an extended H, D is 0, and E, F, and G can extend the Tanner graph of H This is the value designed by Equation (2) of Equation 2.)
상기 ECC 데이터 복원여부 검증부는 두 개의 페이지에 저장된 ECC codeword가 모두 상기 데이터 영역에 저장된 데이터를 복원할 수 없는 경우 상기 두 개의 페이지에 저장된 ECC 데이터가 오류인 것으로 판단하는 것을 특징으로 한다.The ECC data restoration verifier verifies that the ECC data stored in the two pages is an error when the ECC codewords stored in the two pages cannot restore the data stored in the data area.
상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 한다.The flash memory is characterized in that the NAND flash memory.
본 발명의 일 실시예에 따른 하는 플래시 메모리 기반의 저장 시스템의 에러 보정 방법은 플래시 메모리와, ECC 모듈을 구비하여 플래시 메모리의 에러를 보정하는 컨트롤러를 포함하는 플래시 메모리 기반의 저장 시스템의 에러 보정 방법에 있어서, ECC 모듈의 ECC codeword 생성부가 상기 플래시 메모리의 PE 사이클의 크기에 따라 ECC codeword를 생성하되 상기 PE 사이클이 기준값을 초과하는 경우 적어도 두 개의 페이지에 저장되는 크기의 ECC codeword를 생성하는 단계; ECC 모듈의 ECC 데이터 복원여부 검증부가 상기 두 개의 페이지 중 하나의 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한지의 여부를 검증하는 단계; ECC 데이터 복원여부 검증부가 상기 하나의 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한 것으로 검증함에 따라, ECC 모듈의 ECC 데이터 인코딩부가 상기 하나의 페이지에 저장된 ECC 데이터만을 인코딩하는 단계;를 포함하여 이루어지는 것을 특징으로 한다.An error correction method of a flash memory based storage system according to an exemplary embodiment of the present invention includes a flash memory and an ECC module including a controller for correcting an error of the flash memory. The ECC codeword generation unit of the ECC module generates an ECC codeword according to the size of a PE cycle of the flash memory, but generates an ECC codeword having a size stored in at least two pages when the PE cycle exceeds a reference value; Verifying, by the ECC data restoration whether or not, the ECC data restoration unit of the ECC module can restore the data stored in the flash memory from the ECC data stored in one of the two pages; Encoding ECC data stored in the one page by the ECC data encoding unit of the ECC module as the ECC data restoration verifier verifies that the ECC data stored in the one page is capable of restoring the data stored in the flash memory; It is characterized by comprising.
ECC 데이터 복원여부 검증부가 상기 하나의 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원불가능한 것으로 검증함에 따라, ECC 데이터 복원여부 검증부는 두 번째 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한지의 여부를 검증하는 단계;를 추가적으로 더 수행하는 것을 특징으로 한다.As the ECC data restoration verifier verifies that the ECC data stored in the one page is impossible to restore the data stored in the flash memory, the ECC data restoration verifier verifies that the ECC data stored in the second page is stored in the flash memory. Verifying whether or not it can be restored;
ECC 데이터 복원여부 검증부가 두 번째 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한지의 여부를 추가적으로 검증하는 단계의 수행결과, 두 번째 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한 것으로 검증함에 따라, 상기 ECC 데이터 인코딩부는 하나의 페이지에 저장된 ECC 데이터 및 두 번째 페이지에 저장된 ECC 데이터를 모두 인코딩하는 단계;를 더 수행하는 것을 특징으로 한다.As a result of the step of verifying whether the ECC data restoration verifier verifies whether the ECC data stored in the second page can restore the data stored in the flash memory, the ECC data stored in the second page restores the data stored in the flash memory. According to the verification, the ECC data encoding unit may further encode both the ECC data stored in one page and the ECC data stored in the second page.
ECC 데이터 복원여부 검증부가 두 개의 페이지에 저장된 ECC 데이터가 모두 상기 플래시 메모리에 저장된 데이터를 복원불가한 것으로 검증하는 경우, ECC 데이터 복원여부 검증부는 상기 ECC codeword 생성부에서 생성한 ECC 데이터에 오류가 발생한 것으로 판단하는 단계를 더 수행하는 것을 특징으로 한다.If the ECC data restoration verifier verifies that all of the ECC data stored in the two pages cannot be restored, the ECC data restoration verifier verifies that the ECC data generated by the ECC codeword generator has an error. Characterized in that it further performs the step of determining.
이러한 특징에 따르면, 본원 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템은 PE 사이클 크기가 증가함에 따라 ECC codeword 크기가 증가하므로 데이터의 에러 커버 능력이 향상되는 효과가 있다.According to this aspect, the flash memory-based storage system according to an embodiment of the present invention increases the ECC codeword size as the PE cycle size increases, thereby improving the error cover capability of the data.
또한, ECC codeword의 크기 증가로 ECC 데이터가 영역을 초과하여 저장되더라도, ECC 데이터 인코딩시 일부 영역의 ECC 데이터의 복원여부를 먼저 검증하여 검증된 경우 나머지 영역의 ECC 데이터의 인코딩을 생략하므로 ECC codeword 크기 증가에 따른 페이지 읽기시 발생할 수 있는 오버헤드를 절감할 수 있는 효과가 있다.In addition, even if ECC data is stored beyond the area due to the increase in the size of the ECC codeword, the ECC codeword size is omitted since the ECC data encoding of the remaining area is skipped when the ECC data encoding is verified by first verifying the restoration of ECC data of some areas. There is an effect that can reduce the overhead that may occur when reading the page according to the increase.
도 1은 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템의 구조를 나타낸 블록도이다.
도 2는 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템 중 ECC 모듈의 구조를 나타낸 블록도이다.
도 3은 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템 중 ECC 모듈이 참조하는 H의 Tanner 그래프 및 이로부터 생성되는 확장된 H’의 Tanner 그래프를 나타낸 도면이다.
도 4는 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템의 에러 보정방법을 나타낸 흐름도이다.1 is a block diagram illustrating a structure of a flash memory based storage system according to an exemplary embodiment of the present invention.
2 is a block diagram illustrating a structure of an ECC module in a flash memory based storage system according to an exemplary embodiment of the present invention.
FIG. 3 is a view illustrating a Tanner graph of H referred to by an ECC module and a Tanner graph of H 'generated therefrom in a flash memory based storage system according to an exemplary embodiment of the present invention.
4 is a flowchart illustrating an error correction method of a flash memory based storage system 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. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.
도 1은 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템의 구조를 나타낸 블록도이고, 도 2는 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템 중 ECC 모듈의 구조를 나타낸 블록도이고, 도 3은 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템 중 ECC 모듈이 참조하는 H의 Tanner 그래프 및 이로부터 생성되는 확장된 H'의 Tanner 그래프를 나타낸 도면이고, 도 4는 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템의 에러 보정방법을 나타낸 흐름도이다.1 is a block diagram illustrating a structure of a flash memory based storage system according to an embodiment of the present invention, and FIG. 2 is a block diagram illustrating a structure of an ECC module in a flash memory based storage system according to an embodiment of the present invention. 3 is a view showing a Tanner graph of H referred to by an ECC module and a Tanner graph of an extended H ′ generated therefrom among flash memory based storage systems according to an embodiment of the present invention, and FIG. A flowchart illustrating an error correction method of a flash memory based storage system according to an exemplary embodiment of the present invention.
도 1 내지 도 2를 참고로 하는 본 실시예에서, 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템(S)은 플래시 메모리(20)와 플래시 메모리(20)에서 발생할 수 있는 에러를 커버하기 위한 ECC 모듈(100)을 구비하는 컨트롤러(10)를 포함한다.1 and 2, the flash memory based storage system S according to an embodiment of the present invention covers an error that may occur in the
이때, ECC 모듈(100)은 플래시 메모리(20)의 에러를 정정하는 모듈로서, 도 2에 도시한 것처럼, ECC codeword 생성부(110)와 ECC 데이터 복원여부 검증부(120), 그리고 ECC 데이터 인코딩부(130)를 포함한다.In this case, the
본 도면 및 설명에서 컨트롤러(10) 및 플래시 메모리(20)의 구성을 간략히 도시하고 설명을 일부 생략하였지만, 플래시 메모리(20)는 특정 프레임을 갖는 데이터 구조를 저장하도록 형성되고, 컨트롤러(10)는 저장 시스템(S)을 동작시키고 플래시 메모리(20)에 저장되는 데이터를 제어하기 위한 버퍼 등을 더 포함하는 구조로 형성되어야 함은 당업자에게 자명한 부분으로서, 본 명세서 상에서 이를 구체적으로 설명하지 않더라도 당업자의 수준에서 이해되어야 할 것이다.Although the configurations of the
플래시 메모리(20)는 낸드(NAND) 플래시 메모리일 수 있다.The
페이지(200)는 데이터 영역(DATA)(210)과 스페어 영역(SPARE)(220)을 포함하고, ECC 모듈(100)은 페이지(200)의 데이터 영역(210)에 저장된 데이터에 대한 ECC 데이터를 생성하여 스페어 영역(220)에 저장한다.The
이때, ECC 모듈(100)의 ECC codeword 생성부(110)는 플래시 메모리(20)의 PE 사이클에 따라 ECC 코드워드(codeword)를 생성한다. 이때, PE 사이클이 기 설정된 기준값 미만인 경우, ECC codeword 생성부(110)는 하나의 스페어 영역의 크기를 갖는 ECC codeword를 생성하고, 한편, 플래시 메모리(20)의 PE 사이클이 기 설정된 기준값 이상인 경우, ECC codeword 생성부(110)는 두 개의 스페어 영역의 크기를 갖는 ECC codeword를 생성한다.At this time, the
한 예예서, 페이지의 데이터 영역 크기가 4096byte이고 스페어 영역 크기가 256byte인 경우, ECC codeword 생성부(110)가 생성하는 ECC codeword의 크기는 256byte일 수 있다. As an example, when the data area size of the page is 4096 bytes and the spare area size is 256 bytes, the size of the ECC codeword generated by the
이처럼, ECC codeword 생성부(110)는 PE 사이클이 클수록, ECC codeword의 크기를 크게 생성하는데, ECC codeword의 크기를 결정하는 기준인 PE 사이클의 기준값은 PE 사이클의 80%로서, ECC codeword 생성부(110)에 설정되어 저장된다.As described above, the ECC
한 예에서, 플래시 메모리(20)가 SLC(Single Level Cell) 낸드 플래시 메모리인 경우, 플래시 메모리(20)의 PE 사이클은 100,000이고, ECC codeword 생성부(110)에 설정된 기준값은 80,000일 수 있다.In one example, when the
다른 한 예에서, 플래시 메모리(20)가 MLC(Multi Level Cell) 낸드 플래시 메모리인 경우, 플래시 메모리(20)의 PE 사이클은 10,000이고, ECC codeword 생성부(110)에 설정된 기준값은 8,000일 수 있다.In another example, when the
또는, 다른 한 예에서, 플래시 메모리(20)가 TLC(Triple Level Cell) 낸드 플래시 메모리인 경우, 플래시 메모리(20)의 PE 사이클은 5,000이고, ECC codeword 생성부(110)에 설정된 기준값은 4,000일 수 있다.Or, in another example, when the
이처럼, ECC codeword 생성부(110)는 플래시 메모리(20)의 PE 사이클에 따른 기준값을 설정할 수 있고, PE 사이클의 기준값 초과여부에 따라 ECC codeword 크기를 하나의 스페어 영역의 크기 또는 두 개의 스페어 영역의 크기로 생성하여, PE 사이클에 따른 데이터의 에러 보정률을 향상할 수 있다.As such, the ECC
ECC codeword 생성부(110)는 플래시 메모리(20)의 페이지(200)의 DATA 영역(210)에 저장된 데이터에 대한 ECC codeword를 생성하여 이를 페이지(200)의 스페어 영역(220)에 저장한다.The
이때, ECC codeword 생성부(110)에서 생성한 ECC codeword인 ECC 데이터가 페이지(200)의 스페어 영역(220)을 초과하는 경우, ECC 데이터는 제1 페이지(200a)의 스페어 영역(220)뿐만 아니라 제2 페이지(200b)의 스페어 영역(220)에도 ECC 데이터를 저장하게 된다.In this case, when the ECC data, which is the ECC codeword generated by the
한 예에서, ECC codeword 생성부(110)는 LDPC 또는 BCH를 이용하여 ECC 데이터를 생성할 수 있다.In one example, the
ECC codeword 생성부(110)가 LDPC를 이용하여 ECC 데이터를 생성하는 한 예예서, ECC codeword 생성부(110)는 종래의 LDPC를 이용하여 하나의 스페어 영역(220)에 저장되는 ECC 데이터를 생성하는 하기의 식 1을 확장하여 식 2와 같이 확장된 H'를 생성하고 이를 이용하여 적어도 두 개의 페이지의 스페어 영역의 에 저장되는 크기를 갖는 ECC codeword를 생성한다.As an example in which the
[식 1][Equation 1]
[식 2][Equation 2]
위의 식 1에서, s는 k비트의 메시지, 즉, 데이터이고, c는 M비트의 패리티(체크)이고, x는 N비트의 codeword로 c+s이고, H는 codeword가 Hx=0을 만족하는 M by N 행렬의 parity check 생성 매트릭스이고, A는 M by M 행렬, B는 M by k 행렬이다.In Equation 1 above, s is a k-bit message, that is, data, c is M-bit parity (check), x is N-bit codeword, c + s, H is codeword satisfying Hx = 0. The parity check generation matrix of the M by N matrix, A is the M by M matrix, and B is the M by k matrix.
이때, ECC codeword 생성부(110)는 위의 식 2과 같이, 식 1로부터 생성된 c에 추가적인 패리티(parity(c'))를 생성하도록 확장된 H'를 생성하고, D는 식 2의 수식 (1)로부터 모든 c'를 만족하기 위해 0으로 설정되고, E, F, G는 수식 (2)에서 기존의 H의 Tanner 그래프를 고려하여 Tanner 그래프를 확장할 수 있도록 설계되며, E, F, G의 값을 한정하지는 않는다.At this time, the ECC
ECC codeword 생성부(110)가 확장된 H'를 생성하는 일예에서, H 매트릭스는 H=[A|B]로 이루어진 3×7의 매트릭스로, 4 bit 데이터에 대해 3 bit ECC를 다음의 식 3과 같이 포함할 수 있고, ECC codeword 생성부(110)는 H 매트릭스를 이용하여 다음의 식 4로 표현되는 H' 매트릭스를 생성한다.In an example in which the
[식 3][Equation 3]
1 0 0 1 1 1 01 0 0 1 1 1 0
0 1 0 1 1 0 10 1 0 1 1 0 1
0 0 1 0 1 1 10 0 1 0 1 1 1
[식 4][Equation 4]
0 0 1 0 0 1 1 1 00 0 1 0 0 1 1 1 0
0 0 0 1 0 1 1 0 10 0 0 1 0 1 1 0 1
0 0 0 0 1 0 1 1 10 0 0 0 1 0 1 1 1
0 1 1 1 1 0 0 0 00 1 1 1 1 0 0 0 0
1 0 1 0 0 1 0 0 11 0 1 0 0 1 0 0 1
위의 식 4와 같이, ECC codeword 생성부(110)에서 생성한 확장된 H' 매트릭스는 5×9의 매트릭스로, 4 bit 데이터에 대해 5 bit ECC를 생성한 매트릭스이며, 식 3의 H 매트릭스에 의해 생성되는 codeword에 2 bit의 C' 영역이 생성된 매트릭스이다.As shown in Equation 4 above, the extended H 'matrix generated by the
ECC codeword 생성부(110)가 식 3 및 식 4와 같이 H' 매트릭스를 생성하는 일 예에서, 샘플 데이터 스트림(Sample Data Stream), H 매트릭스에 의해 생성된 ECC codeword, 그리고 H' 매트릭스에 의해 생성된 ECC codeword는 다음의 표 1과 같다.In an example in which the
[표 1]TABLE 1
이처럼, ECC 데이터 생성부(110)는 기존의 H 매트릭스의 ECC를 재사용하여 확장된 H' 매트릭스를 생성할 수 있고, 식 3에 대한 H의 Tanner 그래프 및 식 4에 대한 H'의 Tanner 그래프는 도 3과 같이 표현될 수 있으며, 이를 한정하지는 않는다.As such, the ECC
ECC 데이터 복원여부 검증부(120)는 페이지(200)의 스페어 영역(220)에 저장된 ECC 데이터가 데이터 영역(210)에 저장된 데이터를 에러 없이 복원할 수 있는지의 여부를 검증하는 부분으로서, ECC 데이터와 데이터 영역(210)에 저장된 데이터를 비교하여 ECC 데이터의 복원여부를 검증하며, 이때, ECC 데이터의 복원여부 검증은 당업자에게 공지기술이므로 본 명세서에서 자세하게 기재하지 않더라도 당업자의 수준에서 이해되어야 하며 본 명세서의 내용을 한정하지 않아야 할 것이다.ECC data restoration whether the
ECC 데이터 복원여부 검증부(120)는 ECC codeword 생성부(110)가 하나의 스페어 영역을 초과하는 크기를 갖는 ECC 데이터를 생성함에 따라 복수 개의 페이지(200)에 ECC 데이터가 저장된 경우에만 동작하는 수단으로서, 먼저, 제1 페이지(200a)의 스페어 영역(220)에 저장된 ECC 데이터를 검증한다.The ECC
이때, 도 4를 참고로 하여 ECC 데이터 복원여부 검증부(120)의 ECC 데이터 복원여부 검증처리의 일 예를 설명하면, ECC 데이터 복원여부 검증부(120)는 먼저, ECC codeword 생성부(110)에서 생성된 ECC codeword의 크기를 비교 대상값인 N과 비교(Q100)하여, ECC codeword의 크기가 N을 초과하는 경우, 예 화살표 방향을 따라 이동하여 단계들을 수행하고, ECC codeword 생성부(110)에서 생성된 ECC codeword의 크기가 N보다 작거나 같은 경우 아니오 화살표 방향을 따라 이동하여 ECC 데이터 인코딩(S600)을 수행한다.In this case, referring to FIG. 4, an example of the ECC data restoration restoration verification process of the ECC data
즉, ECC 데이터 복원여부 검증부(120)는 ECC codeword 생성부(110)에서 생성한 ECC codeword의 크기가 N을 초과하는 경우에만 특정 처리를 수행하고, ECC codeword의 크기가 N 이하인 경우 종래의 플래시 메모리 저장 시스템과 같이 ECC 데이터를 인코딩한다(S600). 위 단계(S600)는 ECC 데이터 인코딩부(130)에서 수행된다.That is, the ECC data
한 예에서, N은 페이지(200)의 스페어 영역(220)에 저장되는 크기로서, 256byte일 수 있다.In an example, N is a size stored in the
위 단계(Q100)에서, ECC codeword의 크기가 N을 초과하는 것으로 판단된 경우 예 화살표 방향을 따라 수행되는 단계로서, ECC 데이터 복원여부 검증부(120)는 제1 페이지(200a)의 스페어 영역(220)에 저장된 ECC 데이터의 복원여부를 먼저 검증(S100)한다.In the above step (Q100), when the size of the ECC codeword is determined to be greater than N, the step is performed in the direction of the arrow, the ECC data
이때, 위 단계(S100)로부터, ECC 데이터 복원여부 검증부(120)는 제1 페이지(200a)의 ECC 데이터를 이용하여 제1 페이지(200a)의 데이터 영역(210)에 저장된 데이터를 복원가능한지를 판단(Q200)하고, 복원가능한 경우 예 화살표 방향을 따라 제1 페이지에 저장된 ECC 데이터 인코딩을 수행(S410)한다.At this time, from the above step (S100), ECC data restoration whether the
이때, 제1 페이지의 ECC 데이터 인코딩을 수행(S410)하는 단계는 ECC 데이터 인코딩부(130)에서 수행되고, 제1 페이지의 ECC 데이터 복원가능 여부 판단(Q200)단계는 ECC 데이터를 이용하여 에러 보정을 수행한 결과를 제1 페이지의 데이터와 비교하여 동일한지를 판단하는 처리를 통해 이루어진다.In this case, the ECC data encoding of the first page (S410) is performed by the ECC
한편, 위 단계(Q200)에서 제1 페이지의 ECC 데이터가 데이터 영역에 저장된 데이터를 복원하지 못하는 것으로 판단되는 경우, 아니오 화살표 방향을 따라, ECC 데이터 복원여부 검증부(120)가 제2 페이지에 저장된 ECC 데이터의 복원여부를 검증(S200)한다.On the other hand, if it is determined in step Q200 that the ECC data of the first page cannot restore the data stored in the data area, the ECC data
위 단계(S200)에 따라, ECC 데이터 복원여부 검증부(120)는 제2 페이지의 ECC 데이터를 이용하여 제1 페이지(200a) 또는 제2 페이지(200b)의 데이터 영역에 저장된 데이터를 복원가능한지를 판단(Q300)하고, 복원가능한 경우 예 화살표 방향을 따라 제1 페이지 및 제2 페이지의 ECC 데이터 인코딩을 수행(S420)한다. According to the above step (S200), ECC data restoration whether the
이와 같이, ECC 모듈(100)이 ECC 데이터를 생성(ECC codeword)하고 이를 인코딩함에 있어서 ECC 데이터의 크기로 인해 제1 페이지(200a)뿐만 아니라 제2 페이지(200b)에까지 저장되는 경우, 무조건 모든 ECC 데이터를 인코딩하는 것이 아니라 일부 ECC 데이터를 확인하여 복원가능 여부를 판단하고, 일부 ECC 데이터만으로 데이터를 충분히 복원가능한 경우에는 일부 ECC 데이터만을 인코딩하되 일부 ECC 데이터만으로는 데이터 복원이 불가한 경우 모든 ECC 데이터를 인코딩하도록 처리함으로써 ECC 데이터 인코딩에 소요되는 오버헤드를 줄일 수 있다.As such, when the
한편, 제2 페이지의 ECC 데이터의 복원가능 여부를 판단하는 단계(Q300)에서, 제2 페이지의 ECC 데이터가 복원불가한 것으로 판단되는 경우, 이는, 제1 페이지에 저장된 ECC 데이터 및 제2 페이지에 저장된 ECC 데이터를 모두 이용하더라도 데이터 복원이 불가한 상태인 것이므로, ECC 데이터 복원여부 검증부(120)는 ECC 데이터에 오류(S500)가 발생한 것으로 처리한다.On the other hand, if it is determined in step Q300 whether ECC data of the second page can be restored, it is determined that the ECC data of the second page cannot be restored, and this means that the ECC data stored in the first page and the second page are not. Even if all of the stored ECC data is used, data restoration is impossible. Therefore, the ECC data
본 실시예에서, ECC 데이터는 PE 사이클에 따라 제2 페이지에까지 저장될 수 있는 것을 예로 들어 설명하였으나, ECC 데이터가 저장되는 페이지의 수를 2개로 한정하지는 않아야 할 것이다.In the present embodiment, the ECC data may be stored in the second page according to the PE cycle as an example, but the number of pages in which the ECC data is stored should not be limited to two.
일 실시예예서, ECC 데이터가 2개를 초과하는 페이지에 저장되는 경우, ECC 데이터 복원여부 검증부(120)는 ECC 데이터를 이용하여 복원가능할 때까지 ECC 데이터의 복원가능 여부를 판단하고, ECC 데이터 인코딩부(130)는 복원가능한 것으로 판단된 페이지에 저장된 ECC 데이터들을 인코딩하도록 단계가 수행되어야 할 것이며, 2개를 초과하는 페이지에 ECC 데이터들이 저장되더라도 첫 번째 페이지에 저장된 ECC 데이터가 데이터를 복원가능한 것으로 판단되는 경우 ECC 데이터 인코딩부(130)는 첫 번째 페이지, 즉 제1 페이지에 저장된 ECC 데이터만을 인코딩한다.In an embodiment, when the ECC data is stored in more than two pages, the ECC
다시, 도 2를 참조하여 ECC 데이터 인코딩부(130)를 설명하면, ECC 데이터 인코딩부(130)는 ECC codeword 생성부(110)에서 생성한 ECC 데이터를 인코딩하고, 인코딩된 ECC 데이터는 추후 ECC 모듈(100)에서 디코딩되어 저장 시스템(S)의 에러가 보정된다.Again, referring to the ECC
도 1 내지 도 4를 참고로 하여 설명한 것처럼, 본 발명의 한 실시예에 따른 플래시 메모리 기반의 저장 시스템 및 이의 에러 보정 방법에 따라, PE 사이클에 따라 ECC codeword를 크게 생성하여 여러 페이지에 저장하되, 여러 페이지에 저장된 ECC 데이터는 데이터 복원가능 여부 판단결과에 따라 일부만 인코딩되거나 또는 전부 인코딩되는 구조를 가지므로, 저장 시스템의 에러 보정 성능이 향상되고 ECC 데이터가 여러 페이지에 저장되더라도 이를 모두 인코딩하는 대신 일부 페이지에 저장된 데이터만 인코딩할 수 있어 ECC 데이터 인코딩에 소요되는 오버헤드를 절감할 수 있고, 저장 시스템의 처리속도가 향상되는 효과가 있다.As described with reference to FIGS. 1 to 4, according to a flash memory based storage system and an error correction method thereof according to an embodiment of the present invention, a large ECC codeword is generated and stored in several pages according to PE cycles. ECC data stored in multiple pages has a structure in which only part of the ECC data is encoded or partially encoded depending on whether the data can be restored or not. Therefore, the error correction performance of the storage system is improved, and even if the ECC data is stored in multiple pages, some of the ECC data is stored instead of some. Since only the data stored in the page can be encoded, the overhead required for ECC data encoding can be reduced, and the processing speed of the storage system can be improved.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.
S : 플래시 메모리 기반의 저장 시스템 10 : 컨트롤러
20 : 플래시 메모리 100 : ECC 모듈
110 : ECC 코드워드 생성부
120 : ECC 데이터 복원여부 검증부
130 : ECC 데이터 인코딩부 200 : 페이지
210 : 데이터 영역 220 : 스페어 영역S: flash memory based storage system 10: controller
20: flash memory 100: ECC module
110: ECC codeword generation unit
120: ECC data restoration verification unit
130: ECC data encoding section 200: page
210: data area 220: spare area
Claims (11)
상기 페이지에 저장된 상기 데이터의 에러 보정을 위한 ECC 모듈을 포함하여 상기 플래시 메모리를 제어하는 컨트롤러를 포함하고,
상기 ECC 모듈은,
상기 데이터 영역에 대한 ECC 데이터를 생성하여 상기 스페어 영역에 저장하되 상기 플래시 메모리의 PE 사이클을 기준값과 비교하여 상기 PE 사이클이 상기 기준값을 초과하는 경우 상기 ECC 데이터의 크기를 적어도 두 개의 페이지에 저장되도록 생성하는 ECC codeword 생성부,
적어도 두 개의 페이지에 저장된 상기 ECC codeword 중 하나의 페이지에 저장된 ECC 데이터가 상기 데이터 영역에 저장된 데이터를 복원가능한지를 판단하는 ECC 데이터 복원여부 검증부, 그리고
상기 ECC 데이터 복원여부 검증부가 하나의 페이지에 저장된 ECC 데이터가 상기 데이터 영역에 저장된 데이터를 복원가능한 것으로 판단함에 따라 하나의 페이지에 저장된 ECC 데이터를 인코딩하는 ECC 데이터 인코딩부를 포함하는 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템.A flash memory including a page having a data area for storing data and a spare area for storing ECC data for the data; and
A controller for controlling the flash memory, including an ECC module for error correction of the data stored in the page;
The ECC module,
Generate and store the ECC data for the data area in the spare area, and compare the PE cycle of the flash memory with a reference value so that the size of the ECC data is stored in at least two pages when the PE cycle exceeds the reference value. ECC codeword generation unit to generate,
An ECC data restoration verifier for determining whether ECC data stored in one page of the ECC codewords stored in at least two pages can restore data stored in the data area; and
And a ECC data encoding unit for encoding ECC data stored in one page according to the ECC data restoring verifier determining that ECC data stored in one page is capable of restoring the data stored in the data area. Based storage system.
상기 기준값은 상기 플래시 메모리의 PE 사이클의 80% 크기인 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템.The method of claim 1,
The reference value is a flash memory based storage system, characterized in that the size of 80% of the PE cycle of the flash memory.
상기 ECC 데이터 복원여부 검증부가 두 개의 페이지에 저장된 ECC codeword 중 하나의 페이지에 저장된 ECC 데이터로는 상기 데이터 영역에 저장된 데이터를 복원할 수 없고, 다른 하나의 페이지에 저장된 ECC 데이터를 이용하는 경우 상기 데이터 영역에 저장된 데이터를 복원가능한 것으로 판단하는 경우, 상기 ECC 데이터 인코딩부는 상기 두 개의 페이지에 저장된 ECC 데이터를 모두 인코딩하는 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템.The method of claim 1,
If the ECC data restoration verifier verifies that the ECC data stored in one page of the ECC codewords stored in the two pages cannot restore the data stored in the data area, and uses the ECC data stored in the other page, the data area If it is determined that the data stored in the resilient data, the ECC data encoding unit Flash memory-based storage system, characterized in that for encoding both the ECC data stored in the two pages.
상기 ECC codeword 생성부는 LDPC 코드를 이용하여 ECC 데이터를 생성하는 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템.The method of claim 1,
The ECC codeword generation unit generates ECC data using an LDPC code.
상기 ECC codeword 생성부는 하기의 식 1을 확장하여 하기의 식 2를 생성하고, 하기의 식 2를 이용하여 ECC codeword를 생성하는 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템.
[식 1]
[식 2]
(여기서, s는 k비트의 메시지, 즉, 데이터이고, c는 M비트의 패리티(체크)이고, x는 N비트의 codeword로 c+s이고, H는 codeword가 Hx=0을 만족하는 M by N 행렬의 생성 매트릭스이고, A는 M by M 행렬, B는 M by k 행렬이고, H'는 확장된 H이고, D는 0이고, E,F,G는 H의 Tanner 그래프를 확장할 수 있도록 식2의 수식(2)에서 설계된 값임.) The method of claim 4, wherein
The ECC codeword generator extends Equation 1 below to generate Equation 2 below, and generates an ECC codeword using Equation 2 below.
[Equation 1]
[Equation 2]
(Where s is a k-bit message, i.e. data, c is an M-bit parity (check), x is an N-bit codeword, c + s, and H is M by which the codeword satisfies Hx = 0). Create matrix of matrix N, where A is an M by M matrix, B is an M by k matrix, H 'is an extended H, D is 0, and E, F, and G can extend the Tanner graph of H This is the value designed in Equation (2) of Equation 2.)
상기 ECC 데이터 복원여부 검증부는 두 개의 페이지에 저장된 ECC codeword가 모두 상기 데이터 영역에 저장된 데이터를 복원할 수 없는 경우 상기 두 개의 페이지에 저장된 ECC 데이터가 오류인 것으로 판단하는 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템.The method of claim 3,
The ECC data restoration verifier verifies that the ECC data stored in the two pages is an error if the ECC codewords stored in the two pages cannot restore the data stored in the data area. Storage system.
상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템.The method of claim 1,
The flash memory is a flash memory based storage system, characterized in that the NAND flash memory.
ECC 모듈의 ECC codeword 생성부가 상기 플래시 메모리의 PE 사이클의 크기에 따라 ECC codeword를 생성하되 상기 PE 사이클이 기준값을 초과하는 경우 적어도 두 개의 페이지에 저장되는 크기의 ECC codeword를 생성하는 단계;
ECC 모듈의 ECC 데이터 복원여부 검증부가 상기 두 개의 페이지 중 하나의 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한지의 여부를 검증하는 단계;
ECC 데이터 복원여부 검증부가 상기 하나의 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한 것으로 검증함에 따라, ECC 모듈의 ECC 데이터 인코딩부가 상기 하나의 페이지에 저장된 ECC 데이터만을 인코딩하는 단계;를 포함하여 이루어지는 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템의 에러 보정 방법.In the error correction method of a flash memory-based storage system comprising a flash memory and a controller for correcting an error of the flash memory having an ECC module,
An ECC codeword generator of an ECC module generating an ECC codeword according to the size of a PE cycle of the flash memory, but generating an ECC codeword having a size stored in at least two pages when the PE cycle exceeds a reference value;
Verifying, by the ECC data restoration whether or not, the ECC data restoration unit of the ECC module verifies whether the ECC data stored in one of the two pages can restore the data stored in the flash memory;
Encoding ECC data stored in the one page by the ECC data encoding unit of the ECC module as the ECC data restoration verifier verifies that the ECC data stored in the one page is capable of restoring the data stored in the flash memory; Error correction method of a flash memory-based storage system comprising a.
ECC 데이터 복원여부 검증부가 상기 하나의 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원불가능한 것으로 검증함에 따라, ECC 데이터 복원여부 검증부는 두 번째 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한지의 여부를 검증하는 단계;를 추가적으로 더 수행하는 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템의 에러 보정 방법.The method of claim 8,
As the ECC data restoration verifier verifies that the ECC data stored in the one page is impossible to restore the data stored in the flash memory, the ECC data restoration verifier verifies that the ECC data stored in the second page is stored in the flash memory. Verifying whether it is recoverable; or further comprising performing an error correction method of the flash memory-based storage system.
ECC 데이터 복원여부 검증부가 두 번째 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한지의 여부를 추가적으로 검증하는 단계의 수행결과, 두 번째 페이지에 저장된 ECC 데이터가 상기 플래시 메모리에 저장된 데이터를 복원가능한 것으로 검증함에 따라, 상기 ECC 데이터 인코딩부는 하나의 페이지에 저장된 ECC 데이터 및 두 번째 페이지에 저장된 ECC 데이터를 모두 인코딩하는 단계;를 더 수행하는 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템의 에러 보정 방법.The method of claim 9,
As a result of the step of verifying whether the ECC data restoration verifier verifies whether the ECC data stored in the second page can restore the data stored in the flash memory, the ECC data stored in the second page restores the data stored in the flash memory. According to the verification, the ECC data encoding unit may further encode both the ECC data stored in one page and the ECC data stored in the second page. .
ECC 데이터 복원여부 검증부가 두 개의 페이지에 저장된 ECC 데이터가 모두 상기 플래시 메모리에 저장된 데이터를 복원불가한 것으로 검증하는 경우, ECC 데이터 복원여부 검증부는 상기 ECC codeword 생성부에서 생성한 ECC 데이터에 오류가 발생한 것으로 판단하는 단계를 더 수행하는 것을 특징으로 하는 플래시 메모리 기반의 저장 시스템의 에러 보정 방법.
The method of claim 10,
If the ECC data restoration verifier verifies that all of the ECC data stored in the two pages cannot be restored, the ECC data restoration verifier verifies that the ECC data generated by the ECC codeword generator has an error. And performing the step of determining that the error is determined.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180156206A KR102076624B1 (en) | 2018-12-06 | 2018-12-06 | Storage system based flash memory and error correcting method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180156206A KR102076624B1 (en) | 2018-12-06 | 2018-12-06 | Storage system based flash memory and error correcting method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102076624B1 true KR102076624B1 (en) | 2020-02-12 |
Family
ID=69569828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180156206A KR102076624B1 (en) | 2018-12-06 | 2018-12-06 | Storage system based flash memory and error correcting method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102076624B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102404257B1 (en) | 2020-12-23 | 2022-06-02 | 청주대학교 산학협력단 | Asynchronous mass memory module with error corrction function using error correction code and error correction method of asynchronous mass memory module using error correction code |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040038709A (en) * | 2002-10-28 | 2004-05-08 | 샌디스크 코포레이션 | Method and apparatus for managing the integrity of data in a non-volatile memory system |
KR101606718B1 (en) | 2010-10-27 | 2016-03-28 | 엘에스아이 코포레이션 | Adaptive ecc techniques for flash memory based data storage |
KR20160118526A (en) * | 2015-04-02 | 2016-10-12 | 한국외국어대학교 연구산학협력단 | Method and Apparatus for Creating Error Correction Code |
KR20180041473A (en) * | 2016-10-14 | 2018-04-24 | 한국외국어대학교 연구산학협력단 | Method And Computer Program of Implementing Virtual NAND Flash |
KR20180087496A (en) * | 2017-01-23 | 2018-08-02 | 에스케이하이닉스 주식회사 | Memory system |
-
2018
- 2018-12-06 KR KR1020180156206A patent/KR102076624B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040038709A (en) * | 2002-10-28 | 2004-05-08 | 샌디스크 코포레이션 | Method and apparatus for managing the integrity of data in a non-volatile memory system |
KR101606718B1 (en) | 2010-10-27 | 2016-03-28 | 엘에스아이 코포레이션 | Adaptive ecc techniques for flash memory based data storage |
KR20160118526A (en) * | 2015-04-02 | 2016-10-12 | 한국외국어대학교 연구산학협력단 | Method and Apparatus for Creating Error Correction Code |
KR20180041473A (en) * | 2016-10-14 | 2018-04-24 | 한국외국어대학교 연구산학협력단 | Method And Computer Program of Implementing Virtual NAND Flash |
KR20180087496A (en) * | 2017-01-23 | 2018-08-02 | 에스케이하이닉스 주식회사 | Memory system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102404257B1 (en) | 2020-12-23 | 2022-06-02 | 청주대학교 산학협력단 | Asynchronous mass memory module with error corrction function using error correction code and error correction method of asynchronous mass memory module using error correction code |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100845529B1 (en) | Ecc controller for use in flash memory device and memory system including the same | |
US9465692B2 (en) | High reliability erasure code distribution | |
US20120096328A1 (en) | Multi-write endurance and error control coding of non-volatile memories | |
US10719395B2 (en) | Memory system | |
US20100281340A1 (en) | Adaptive endurance coding of non-volatile memories | |
US20180278273A1 (en) | Decoding device and decoding method | |
US10447301B2 (en) | Optimal LDPC bit flip decision | |
US9852022B2 (en) | Memory system, memory controller and memory control method | |
US9654147B2 (en) | Concatenated error correction device | |
US8406051B2 (en) | Iterative demodulation and decoding for multi-page memory architecture | |
US9588772B2 (en) | Memory controller and decoding method | |
US11567825B2 (en) | Generating error checking data for error detection during modification of data in a memory sub-system | |
US10574272B2 (en) | Memory system | |
KR102628009B1 (en) | Memory system for partial page compression | |
JP2019057812A (en) | Memory system | |
US10200066B2 (en) | Code reconstruction scheme for multiple code rate TPC decoder | |
KR102076624B1 (en) | Storage system based flash memory and error correcting method thereof | |
KR20200110624A (en) | Memory system, and operating method of memory controller | |
US11231994B2 (en) | Memory system and method of controlling nonvolatile memory | |
US20160080004A1 (en) | Memory controller and decoding method | |
CN109841252B (en) | Flash memory controller and encoder arranged in flash memory controller | |
KR102007163B1 (en) | Encoder, decoder and semiconductor device including the same | |
US20210058097A1 (en) | Memory system and method for controlling non-volatile memory | |
US20160269046A1 (en) | Memory controller, memory system, and decoding method | |
JP2021141369A (en) | Memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |