KR101711056B1 - Method and Apparatus for Creating Error Correction Code - Google Patents
Method and Apparatus for Creating Error Correction Code Download PDFInfo
- Publication number
- KR101711056B1 KR101711056B1 KR1020150046782A KR20150046782A KR101711056B1 KR 101711056 B1 KR101711056 B1 KR 101711056B1 KR 1020150046782 A KR1020150046782 A KR 1020150046782A KR 20150046782 A KR20150046782 A KR 20150046782A KR 101711056 B1 KR101711056 B1 KR 101711056B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- error correction
- correction code
- variable
- generating
- 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
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- 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/36—Data generation devices, e.g. data inverters
-
- 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/40—Response verification devices using compression techniques
-
- 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
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
Abstract
본 실시예는 쓰기 대상 데이터에 대해서 압축을 수행하여 데이터를 축약한 후 축약한 데이터에 대해서 가변형 ECC Coding 방법을 적용하여 에러 정정 코드 데이터를 생성함으로써 에러 발생 확률을 근본적으로 줄이는 한편, 데이터 축약으로 인해 확보된 영역에 기존 대비 추가 생성된 에러 정정 코드 데이터를 기재함으로써 추가적인 ECC 영역을 확보해 에러 발생 시 복원 과정이 보다 원활하게 수행될 수 있도록 하는 에러 정정 코드 생성방법 및 장치에 관한 것이다.In this embodiment, error-correcting code data is generated by compressing the data to be written and shortening the data and applying the variable ECC coding method to the reduced data, thereby fundamentally reducing the error occurrence probability. On the other hand, To an error correction code generating method and apparatus for allowing an additional ECC area to be secured by describing error correction code data generated in addition to the existing area, so that the restoration process can be smoothly performed when an error occurs.
Description
본 실시예는 에러 정정 코드 생성방법 및 장치에 관한 것이다.The present embodiment relates to a method and an apparatus for generating an error correction code.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.
일반적으로 낸드 플래시 메모리(Nand Flash Memory)는 낮은 전력 소모 및 대용량 특성으로 인해 SSD(solid state drive)와 eMMC(embedded Multi Media Card) 등의 저장장치에서 저장 매체로서 주로 사용되고 있다.In general, NAND flash memory is mainly used as a storage medium in a storage device such as a solid state drive (SSD) and an embedded multi media card (eMMC) due to its low power consumption and large capacity.
최근, 낸드 플래시 메모리의 제품 생산 기술이 진보됨에 따라 메모리 셀(Cell) 당 저장할 수 있는 비트 수가 증가하고 있으며, 현재 널리 사용되는 메모리 셀은 TLC(Three Level Cell)로서 셀 당 세 비트를 저장한다. 한편, 낸드 플래시 메모리는 셀 당 저장 비트수가 증가함에 따라 장치의 제작 비용이 감소한 반면 인접 비트간의 간섭으로 인해 데이터를 읽고 쓸 때 에러 발생 확률이 급격히 증가하고 있다. In recent years, the number of bits that can be stored per memory cell (cell) has increased as the technology for producing NAND flash memory has been advanced. Currently, memory cells that are widely used are three level cells (TLC). On the other hand, in NAND flash memory, as the number of stored bits per cell increases, the manufacturing cost of the device decreases. However, the probability of occurrence of errors increases rapidly when data is read or written due to interference between adjacent bits.
전술한 문제를 해결하기 위해 낸드 플래시 메모리 시스템은 BCH(Bose, Chaudhuri, and Hocquenghem), LDPC(Low Density Parity Check) Code와 같은 통신 및 신호처리 ECC Coding 기법을 적용하여 에러 정정 코드를 생성하고, 에러 발생 시 에러 정정 코드를 이용하여 에러를 복구하는 방법을 적용하고 있다. 하지만 종래의 ECC Coding 기법의 경우 코딩 길이에 따른 오버헤드가 크다는 문제점이 존재하며, 이러한, 오버헤드를 줄이는 데 한계가 있어 향 후 셀 당 비트수가 점점 더 증가할 경우 발생한 에러를 완전히 복원할 수 없다는 문제점이 존재한다.In order to solve the above problems, the NAND flash memory system generates an error correction code by applying a communication and signal processing ECC coding technique such as BCH (Bose, Chaudhuri, and Hocquenghem) and LDPC (Low Density Parity Check) A method of recovering an error using an error correction code is applied. However, in the conventional ECC coding technique, there is a problem that the overhead due to the coding length is large, and there is a limit to reduce the overhead. Therefore, if the number of bits per cell increases gradually, There is a problem.
이에, 종래의 ECC Coding과는 독립적으로 상호 작용하여 에러의 발생을 줄이고, 발생한 에러에 대해서 원활하게 복원할 수 있도록 하는 시스템적이고 구조적인 접근 방식이 요구되고 있다.Accordingly, there is a need for a systematic and structured approach that can interact with the conventional ECC coding independently to reduce the occurrence of errors and to smoothly recover the generated errors.
본 실시예는 낸드 플래시 메모리 기반 저장장치가 쓰기 대상 데이터에 대해서 압축을 수행하여 데이터를 축약한 후 축약한 데이터에 대해서 가변형 ECC Coding 방법을 적용하여 에러 정정 코드 데이터를 생성함으로써 에러 발생 확률을 근본적으로 줄이는 한편, 데이터 축약으로 인해 확보된 영역에 기존 대비 추가 생성된 에러 정정 코드 데이터를 기재함으로써 추가적인 ECC 영역을 확보해 에러 발생 시 복원 과정이 보다 원활하게 수행될 수 있도록 하는 데 그 목적이 있다.In the present embodiment, the NAND flash memory based storage device compresses the data to be written and shortens the data, and then generates the error correction code data by applying the variable ECC coding method to the reduced data, thereby fundamentally increasing the error occurrence probability And an additional ECC area is secured by recording the generated error correction code data in addition to the existing area in the area secured by the data reduction, so that the restoration process can be performed more smoothly in the event of an error.
본 실시예는, 낸드 플래시 메모리 기반 저장장치의 에러 정정 코드 생성방법에 있어서, 호스트로부터 입력 데이터를 수신하고, 상기 입력 데이터를 페이지 단위로 분할하여 적어도 하나의 쓰기 대상 데이터를 생성하는 수신단계; 상기 쓰기 대상 데이터를 압축하여 서브 페이지 단위로 분할된 하나 이상의 압축 데이터를 생성하는 압축단계; 상기 압축 데이터를 가변 단위의 크기로 분할하여 에러 정정 코드(ECC: Error Correction Code) 데이터 생성을 위한 단위(ECC Codeword)의 가변 분할 데이터를 생성하고, 상기 가변 분할 데이터별로 각각 대응되는 대응 에러 정정 코드 데이터를 생성하는 생성단계; 및 상기 가변 분할 데이터 및 상기 가변 분할 데이터별 대응 에러 정정 코드 데이터를 조합한 조합 데이터를 생성하고, 상기 조합 데이터를 대응되는 낸드 플래시 메모리에 할당하는 할당단계를 포함하는 것을 특징으로 하는 에러 정정 코드 생성방법을 제공한다.According to another aspect of the present invention, there is provided a method of generating an error correction code for a NAND flash memory based storage device, the method comprising: receiving input data from a host and dividing the input data into pages; A compressing step of compressing the write target data to generate one or more pieces of compressed data divided into subpage units; And generating variable division data of a unit (ECC Codeword) for generating error correction code (ECC) data by dividing the compressed data into a variable unit size, and generating a corresponding error correction code A generating step of generating data; And an allocation step of generating combination data in which the variable division data and the corresponding error correction code data for each variable division data are combined and allocating the combination data to the corresponding NAND flash memory ≪ / RTI >
또한, 본 실시예의 다른 측면에 의하면, 낸드 플래시 메모리 기반 저장장치에 있어서, 호스트로부터 입력 데이터를 수신하고, 상기 입력 데이터를 페이지 단위로 분할하여 적어도 하나의 쓰기 대상 데이터를 제공하는 호스트 인터페이스부; 복수의 코어를 구비하며, 각 코어는 상기 쓰기 대상 데이터를 압축하여 서브 페이지 단위로 분할된 하나 이상의 압축 데이터를 생성하고, 상기 압축 데이터를 가변 단위의 크기로 분할하여 에러 정정 코드(ECC: Error Correction Code) 데이터 생성을 위한 단위(ECC Codeword)의 가변 분할 데이터를 생성하고, 상기 가변 분할 데이터별로 각각 대응되는 대응 에러 정정 코드 데이터를 생성하고, 상기 가변 분할 데이터 및 상기 가변 분할 데이터별 대응 ECC 데이터를 조합한 조합 데이터를 생성하는 코어부; 및 상기 조합 데이터를 대응되는 낸드 플래시 메모리에 할당하는 출력부를 포함하는 것을 특징으로 하는 저장장치를 제공한다.According to another aspect of the present invention, there is provided a storage device based on a NAND flash memory, comprising: a host interface unit for receiving input data from a host, dividing the input data into pages, and providing at least one data to be written; Each of the cores compresses the data to be written to generate one or more pieces of compressed data divided into subpage units, divides the compressed data into sizes of variable units, and generates an error correction code (ECC) (ECC codeword) for generating code data, generating corresponding error correction code data corresponding to each of the variable division data, and outputting the variable division data and the corresponding ECC data for each variable division data A core unit that generates combined data; And an output unit for allocating the combination data to a corresponding NAND flash memory.
본 실시예에 의하면, 낸드 플래시 메모리 기반 저장장치가 쓰기 대상 데이터에 대해서 압축을 수행하여 데이터를 축약한 후 축약한 데이터에 대해서 가변형 ECC Coding 방법을 적용하여 에러 정정 코드 데이터를 생성함으로써 에러 발생 확률을 근본적으로 줄이는 한편, 데이터 축약으로 인해 확보된 영역에 기존 대비 추가 생성된 에러 정정 코드 데이터를 기재함으로써 추가적인 ECC 영역을 확보해 에러 발생 시 복원 과정이 보다 원활하게 수행될 수 있도록 하는 효과가 있다.According to this embodiment, the storage device based on NAND flash memory compresses the data to be written and shortens the data, and then generates the error correction code data by applying the variable ECC coding method to the reduced data, In addition, it is possible to secure an additional ECC area by recording the error correction code data generated in addition to the existing area in the area reserved due to the data reduction, so that the restoration process can be performed more smoothly in the event of an error.
도 1은 본 실시예에 따른 낸드 플래시 메모리 기반 저장장치를 개략적으로 나타낸 블럭 구성도이다.
도 2는 본 실시예에 따른 코어를 개략적으로 나타낸 블럭 구성도이다.
도 3은 본 실시예에 따른 에러 정정 코드 생성방법을 설명하기 위한 순서도이다.
도 4는 본 실시예에 따른 코어가 에러 정정 코드를 생성하는 제1 방법을 예시한 예시도이다.
도 5는 본 실시예에 따른 코어가 에러 정정 코드를 생성하는 제2 방법을 예시한 예시도이다.1 is a block diagram schematically illustrating a storage device based on a NAND flash memory according to an embodiment of the present invention.
2 is a block diagram schematically showing a core according to the present embodiment.
3 is a flowchart for explaining a method of generating an error correction code according to the present embodiment.
4 is an exemplary diagram illustrating a first method for generating an error correction code according to the present embodiment.
5 is an exemplary diagram illustrating a second method of generating an error correction code according to the present embodiment.
이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, the present embodiment will be described in detail with reference to the accompanying drawings.
도 1은 본 실시예에 따른 낸드 플래시 메모리 기반 저장장치를 개략적으로 나타낸 블럭 구성도이다.1 is a block diagram schematically illustrating a storage device based on a NAND flash memory according to an embodiment of the present invention.
도 1에 도시하듯이, 본 실시예에 따른 낸드 플래시 메모리 기반 저장장치(100, 이하, 저장장치로 명시하도록 한다.)는 플래시 컨트롤러(110), DRAM(130, Dynamic Random Access Memory) 및 다수의 낸드 플래시 메모리(140)를 포함한다. 여기서, 플래시 컨트롤러(110)와 다수의 낸드 플래시 메모리(140)는 저장장치(100)가 eMMC(embedded Multi Media Card)인 경우 하나의 칩 안에 패키징된 형태로 구현될 수 있으며, SSD(solid state drive)인 경우 외부 인터페이스에 의해 칩과 서로 연결된 형태로 구현될 수 있다.1, a NAND flash memory based
플래시 컨트롤러(110)는 호스트(미도시)와 낸드 플래시 메모리(140) 사이에서 동작하며, 호스트의 I/O 액세스 명령에 대응하여 쓰기 대상 데이터를 낸드 플래시 메모리(140)에 저장하거나 호스트로 출력할 읽기 대상 데이터를 낸드 플래시 메모리(140)로부터 출력한다. 한편, 본 실시예는 쓰기 대상 데이터가 발생 시의 에러 정정 코드 데이터의 생성방법에 관한 기술로서, 플래시 컨트롤러(110)가 수행하는 다수의 동작 중 쓰기 동작에 대해서 중점적으로 설명하도록 한다.The
플래시 컨트롤러(110)는 호스트 인터페이스부(112), 코어부(114), 출력부(118) 및 버퍼 관리부(120)를 포함한다.The
호스트 인터페이스부(112)는 호스트와 제어신호 및 데이터를 송수신한다. 본 실시예에 따른 호스트 인터페이스부(112)는 호스트로부터 쓰기 제어신호 및 입력 데이터를 수신하는 경우, 입력 데이터를 페이지 단위로 분할하여 적어도 하나의 쓰기 대상 데이터를 생성한다. 일반적으로, 낸드 플래시 메모리(140)에서 쓰기 동작(Write Operation)은 페이지(Page) 단위로 수행된다. 이에, 본 실시예에 따른 호스트 인터페이스부(112)는 호스트로부터 수신한 입력 데이터를 페이지 단위로 분할하여 실질적으로 낸드 플래시 메모리(140)에 저장되는 데이터인 쓰기 대상 데이터를 생성한다.The
호스트 인터페이스부(112)는 하나 이상의 쓰기 대상 데이터를 코어부(114) 내 구비된 복수의 코어(116) 중 어느 하나의 코어로 할당한다. 예컨대, 호스트 인터페이스부(112)는 각 코어(116)에 의해 관리되는 낸드 플래시 메모리(140) 내에 데이터가 기 저장되어 있는지 여부를 확인하고, 확인결과에 따라 쓰기 대상 데이터를 복수의 코어(116) 중 어느 하나의 코어로 할당할 수 있다. 본 실시예에서는 호스트 인터페이스부(112)가 쓰기 대상 데이터를 복수의 코어(116) 중 어느 하나의 코어로 할당하는 기준에 대해서 특정 기준으로 한정하지는 않는다.The
코어부(114)는 복수의 코어(116)를 구비하며, 각 코어(116)는 호스트 인터페이스부(112)로부터 할당받은 쓰기 대상 데이터를 낸드 플래시 메모리(140)에 저장하기 위한 쓰기 동작을 수행한다. 본 실시예에 따른 코어부(114)는 멀티 코어 방식을 적용하여 호스트 인터페이스 처리 및 플래시 인터페이스 처리를 병렬화하며, 이를 통해 단일 코어 방식 대비 고속의 성능을 제공한다.The
코어(116)는 쓰기 대상 데이터에 대한 쓰기 동작 수행 시 낸드 플래시 메모리(140)에 실제 저장되는 데이터에 대한 에러 발생 여부 검사 및 발생한 에러를 복원하기 위한 에러 정정 코드(ECC: Error Correction Code) 데이터를 생성하고, 이를 쓰기 대상 데이터와 함께 제공한다. 종래의 ECC Coding 방법에서는 쓰기 대상 데이터에 대해서 페이지를 구성하는 서브 페이지의 크기 단위만큼의 데이터별로 각각 에러 정정 코드 데이터를 생성하였다. 한편, 에러 정정 코드 데이터는 에러 정정 코드 데이터 생성을 위한 데이터 단위(이하, ECC Codeword로 명시하도록 한다.)의 크기에 따라 에러 정정 능력이 결정되며, ECC Codeword의 크기가 작을수록 에러 정정 능력이 좋아진다. 이에, 본 실시예에 따른 코어(116)는 쓰기 대상 데이터에 대해서 압축을 수행하여 데이터를 축약한 후 축약한 데이터에 대해서 가변형 ECC Coding 방법을 적용함으로써 ECC Codeword의 크기를 기존의 서브 페이지 크기 단위 대비 작은 크기로 감소시킨다. 코어(116)는 감소된 ECC Codeword에 기초하여 쓰기 대상 데이터에 대한 에러 정정 코드 데이터를 각각 생성함으로써 이전 크기의 ECC Codeword를 사용하는 경우 대비 에러 발생 확률을 근본적으로 줄이는 한편, 에러 정정 능력이 향상될 수 있도록 동작한다.The
이하, 본 실시예에 따른 코어(116)가 에러 정정 코드 데이터를 생성하는 보다 구체적인 방법에 대해 설명하도록 한다.Hereinafter, a more specific method by which the
코어(116)는 호스트 인터페이스부(112)로부터 수신한 쓰기 대상 데이터에 대해서 압축을 수행하여 서브 페이지 단위로 분할된 하나 이상의 압축 데이터를 생성한다. 이때, 쓰기 대상 데이터의 압축률은 쓰기 대상 데이터의 크기에 따라 결정된다. 예컨대, 쓰기 대상 데이터는 압축 과정을 통해 생성된 하나 이상의 압축 데이터를 쓰기 대상 데이터를 위해 할당된 공간 내 저장 시 적어도 하나의 서브 페이지의 크기만큼의 여유 공간(이하, 추가 생성영역으로 명시하도록 한다.)이 확보될 수 있을 정도의 크기로 압축되는 것이 바람직하나 반드시 이에 한정되는 것은 아니다. 본 실시예에 따른 코어(116)는 쓰기 대상 데이터에 대한 압축 과정을 수행함으로써 쓰기 대상 데이터에 대한 인코딩 시간 및 에러 발생 확률을 기존 대비 감소시킬 수 있다. 더불어, 코어(116)는 쓰기 대상 데이터의 압축으로 인해 확보된 추가 생성영역을 자유 영역으로 사용할 수 있게 된다.The
코어(116)는 서브 페이지 단위로 분할된 하나 이상의 압축 데이터에 대해서 각각 가변형(Variable-Sized) ECC Coding 방법을 적용하여 에러 정정 코드 데이터를 생성한다. 가변형 ECC Coding 방법은 기 설정된 ECC Codeword를 상황에 따라 가변적으로 조정하고, 조정된 ECC Codeword에 기초하여 에러 정정 코드 데이터를 생성하는 방법이다. 한편, 본 실시예에 따른 코어(116)는 쓰기 대상 데이터의 압축률에 기초하여 ECC Codeword를 가변적으로 조정한다. The
코어(116)는 가변형 ECC Coding 수행 시 서브 페이지 단위로 분할된 하나 이상의 압축 데이터를 각각 가변 단위의 크기로 분할하여 압축 데이터별 가변 분할 데이터를 생성하고, 이를 새로운 ECC Codeword로서 조정한다. 이후, 코어(116)는 가변 분할 데이터별로 각각 대응되는 대응 에러 정정 코드 데이터를 생성한다. 즉, 본 실시예에 따른 코어(116)는 하나 이상의 압축 데이터에 대해서 각각 가변형 ECC Coding 방법을 적용함으로써 ECC Codeword의 크기를 기존의 서브 페이지 크기 대비 작은 크기로 감소시킨다. 이에, 코어(116)는 쓰기 대상 데이터에 대해서 기존 보다 더 작은 영역으로 분할하여 에러 정정 코드 데이터를 생성할 수 있으며, 이를 통해, 이전 크기의 ECC Codeword를 사용하는 경우 대비 에러 발생 확률을 근본적으로 줄일 수 있다. 더불어, 에러 발생 시 에러 정정 과정을 더욱 원활하게 수행할 수 있다.The
코어(116)는 쓰기 대상 데이터의 압축률에 기초하여 가변 단위의 크기를 산출한다. 예컨대, 코어(116)는 쓰기 대상 데이터의 압축률이 높을수록 가변 단위의 크기를 감소시켜 더 작은 크기의 가변 분할 데이터를 생성할 수 있다.The
코어(116)는 가변 분할 데이터 및 가변 분할 데이터별 대응 에러 정정 코드 데이터를 조합한 조합 데이터를 생성한다.The
이하, 코어(116)가 가변 분할 데이터 및 가변 분할 데이터별 대응 에러 정정 코드 데이터를 조합한 조합 데이터를 생성하는 방법에 대해 설명하도록 한다.Hereinafter, a method for generating the combination data in which the
코어(116)는 하나 이상의 압축 데이터별로 생성된 가변 분할 데이터 중 어느 하나의 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 쓰기 대상 데이터에 대응되는 스페어(Spare) 영역에 저장한다. 이때, 어느 하나의 가변 분할 데이터는 생성된 가변 분할 데이터 중 쓰기 대상 데이터 공간 내 저장되는 순서가 가장 앞서는 가변 분할 데이터인 것이 바람직하나 반드시 이에 한정되는 것은 아니다.The core 116 stores the corresponding error correction code data corresponding to any one of the variable division data generated by the one or more pieces of compressed data in a spare area corresponding to the data to be written. At this time, it is preferable that any one of the variable divisional data is the variable divisional data which is stored in the write object data space among the generated variable divisional data which is the most preceding, but is not limited thereto.
코어(116)는 어느 하나의 가변 분할 데이터를 제외한 다른 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 쓰기 대상 데이터 공간 내 하나 이상의 압축 데이터의 저장 영역을 제외한 추가 생성영역에 저장한다. 즉, 코어(116)는 가변형 ECC Coding 방법을 이용하여 기존 대비 추가로 생성되는 에러 정정 코드 데이터에 대해서는 압축 과정을 이용하여 확보된 추가 생성영역에 저장한다.The core 116 stores the corresponding error correction code data corresponding to the variable division data other than any variable division data in the additional generation area excluding the storage area of the one or more compressed data in the data space to be written. That is, the core 116 stores the error correction code data generated by the variable ECC coding method in the additional generation area secured by using the compression process.
일반적으로 기존의 에러 정정 코드 데이터를 위해 할당된 스페어(Spare) 영역의 경우 페이지를 구성하는 복수의 서브 페이지에 대응되는 에러 정정 코드 데이터가 저장될 수 있을 정도의 크기를 갖는다. 이에, 종래의 저장 구조 방식에 따라서는 항상 정해진 양의 에러 정정 코드 데이터가 생성될 수밖에 없었다. 본 실시예의 경우 쓰기 대상 데이터의 압축으로 인해 확보된 추가 생성영역을 에러 정정 코드 데이터가 저장되는 추가적인 ECC 영역으로 제공함으로써 쓰기 대상 데이터에 대해서 기존 대비 더 많은 양의 에러 정정 코드 데이터를 생성하여 기재할 수 있도록 하였다.Generally, in the case of a spare area allocated for existing error correction code data, the size of the spare area is such that error correction code data corresponding to a plurality of sub pages constituting a page can be stored. Therefore, according to the conventional storage structure method, a predetermined amount of error correction code data has always been generated. In this embodiment, by providing the additional generation area secured by the compression of the write target data in the additional ECC area where the error correction code data is stored, a larger amount of error correction code data is generated and recorded in the write target data .
출력부(118)는 코어(116)로부터 생성된 조합 데이터를 대응되는 낸드 플래시 메모리(140)에 할당하는 역할을 수행한다.The
버퍼 관리부(120)는 플래시 컨트롤러(110)와 DRAM(130) 사이의 데이터를 송수신하는 역할을 수행한다.The
DRAM(130)은 플래시 컨트롤러(110)의 읽기/쓰기 동작 과정에서 발생하는 중간 데이터를 버퍼 관리부(120)를 이용하여 제공받고, 이를 임시로 저장하여 제공한다.The
낸드 플래시 메모리(140)는 전기적으로 데이터를 지우고 다시 기록할 수 있는 비휘발성 컴퓨터 기억 장치를 말한다. 낸드 플래시 메모리(140)는 데이터 삭제 연산의 기본 단위인 복수의 블록으로 구성되며, 블록은 읽기 및 쓰기 연산의 기본 단위인 복수의 페이지로 구성된다.The
도 2는 본 실시예에 따른 코어를 개략적으로 나타낸 블럭 구성도이다.2 is a block diagram schematically showing a core according to the present embodiment.
도 2에 도시하듯이, 본 실시예에 따른 코어(116)는 압축기(200) 및 ECC 생성부(210)를 포함한다.2, the
압축기(200)는 호스트 인터페이스부(112)로부터 수신한 쓰기 대상 데이터에 대해서 압축을 수행하여 서브 페이지 단위로 분할된 하나 이상의 압축 데이터를 생성한다. 이때, 쓰기 대상 데이터의 압축률은 쓰기 대상 데이터의 크기에 따라 결정된다. 예컨대, 쓰기 대상 데이터는 압축 과정을 통해 생성된 하나 이상의 압축 데이터를 쓰기 대상 데이터를 위해 할당된 공간 내 저장 시 적어도 하나의 서브 페이지의 크기만큼의 추가 생성영역이 확보될 수 있을 정도의 크기로 압축되는 것이 바람직하나 반드시 이에 한정되는 것은 아니다.The
ECC 생성부(210)는 하나 이상의 압축 데이터에 대해서 가변형 ECC Coding 방법을 적용한다.The
ECC 생성부(210)는 가변형 ECC Coding 방법에 따라 하나 이상의 압축 데이터를 가변 단위의 크기로 분할하여 압축 데이터별 가변 분할 데이터를 생성하고, 이를 새로운 ECC Codeword로서 조정한다. 즉, ECC 생성부(210)는 하나 이상의 압축 데이터에 대해서 가변형 ECC Coding 방법을 적용함으로써 ECC Codeword의 크기를 기존의 서브 페이지 크기 대비 작은 크기로 감소시킨다. 이때, ECC 생성부(210)는 쓰기 대상 데이터의 압축률에 기초하여 가변 단위의 크기를 산출한다.The
ECC 생성부(210)는 가변 분할 데이터별로 각각 대응되는 대응 에러 정정 코드 데이터를 생성한다.The
ECC 생성부(210)는 가변 분할 데이터 및 가변 분할 데이터별 대응 에러 정정 코드 데이터를 조합한 조합 데이터를 생성한다. ECC 생성부(210)는 압축 데이터별로 생성된 가변 분할 데이터 중 어느 하나의 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 쓰기 대상 데이터에 대응되는 스페어 영역에 저장하고, 어느 하나의 가변 분할 데이터를 제외한 다른 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 추가 생성영역에 저장하여 조합 데이터를 생성한다. 즉, ECC 생성부(210)는 가변형 ECC Coding 방법을 이용하여 기존 대비 추가로 생성되는 에러 정정 코드 데이터에 대해서는 압축 과정을 이용하여 확보된 추가 생성영역에 저장한다.The
도 3은 본 실시예에 따른 에러 정정 코드 생성방법을 설명하기 위한 순서도이다.3 is a flowchart for explaining a method of generating an error correction code according to the present embodiment.
본 실시예에 따른 에러 정정 코드 생성방법은 먼저, 저장장치(100)가 호스트로부터 입력 데이터를 수신하고, 입력 데이터를 페이지 단위로 분할하여 적어도 하나의 쓰기 대상 데이터를 생성하는 과정으로부터 시작된다(S302).The method for generating an error correction code according to the present embodiment starts with a process in which the
저장장치(100)는 쓰기 대상 데이터를 압축하여 서브 페이지 단위로 분할된 하나 이상의 압축 데이터를 생성한다(S304). 단계 S304에서 쓰기 대상 데이터의 압축률은 쓰기 대상 데이터의 크기에 따라 결정된다. 예컨대, 쓰기 대상 데이터는 압축 과정을 통해 생성된 하나 이상의 압축 데이터를 쓰기 대상 데이터를 위해 할당된 공간 내 저장 시 적어도 하나의 서브 페이지의 크기만큼의 여유 공간(=추가 생성영역)이 확보될 수 있을 정도의 크기로 압축되는 것이 바람직하나 반드시 이에 한정되는 것은 아니다.The
저장장치(100)는 단계 S304에서 생성된 하나 이상의 압축 데이터 각각에 대하여 가변형 ECC Coding 방법을 적용하여 각각 가변 단위의 크기로 분할하고, 이를 통해, 압축 데이터별 가변 분할 데이터를 생성한다(S306). 단계 S306에서 저장장치(100)는 하나 이상의 압축 데이터에 대해서 각각 가변형 ECC Coding 방법을 적용함으로써 ECC Codeword의 크기를 기존의 서브 페이지 크기 대비 작은 크기로 감소시킨다.In step S306, the
저장장치(100)는 단계 S306에서 생성된 가변 분할 데이터별로 각각 대응되는 대응 에러 정정 코드 데이터를 생성한다(S308).The
저장장치(100)는 단계 S306에서 생성된 가변 분할 데이터 및 단계 S308에서 생성된 가변 분할 데이터별 대응 에러 정정 코드 데이터를 조합한 조합 데이터를 생성하고, 생성된 조합 데이터를 대응되는 낸드 플래시 메모리에 할당한다(S310). 단계 S310에서 저장장치(100)는 압축 데이터별로 생성된 가변 분할 데이터 중 어느 하나의 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 쓰기 대상 데이터에 대응되는 스페어 영역에 저장하고, 어느 하나의 가변 분할 데이터를 제외한 다른 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 추가 생성영역에 저장하여 조합 데이터를 생성한다.The
여기서, 단계 S302 내지 S310은 앞서 설명된 저장장치(100)의 각 구성요소의 동작에 대응되므로 더 이상의 상세한 설명은 생략하도록 한다.Here, steps S302 to S310 correspond to the operations of the respective components of the
도 4는 본 실시예에 따른 코어가 에러 정정 코드를 생성하는 제1 방법을 예시한 예시도이다. 한편, 도 4에서는 코어(116)에 의해 생성된 에러 정정 코드가 스페어 영역 및 추가 생성영역에 나누어 기재되는 경우를 예시하였다.4 is an exemplary diagram illustrating a first method for generating an error correction code according to the present embodiment. On the other hand, FIG. 4 exemplifies the case where the error correction codes generated by the
도 4에서 도시하듯이, 본 실시예에 따른 코어가 에러 정정 코드를 생성하는 제1 방법은 ① 내지 ③의 단계로 이루어진다.As shown in FIG. 4, the first method for generating the error correction code according to the present embodiment includes the steps (1) to (3).
단계 ①에서 코어(116)는 호스트 인터페이스부(112)로부터 쓰기 대상 데이터를 수신한다. 도 4에서는 페이지가 8KB 크기를 갖는 것으로 예시하였으며, 이에, 코어(116)가 호스트 인터페이스부(112)로부터 수신하는 쓰기 대상 데이터 또한 8KB의 크기를 갖는 것으로 예시하였다.In step (1), the
단계 ②에서 코어(116)는 쓰기 대상 데이터를 압축하여 서브 페이지 단위로 분할된 하나 이상의 압축 데이터를 생성한다. 도 4에서 코어(116)는 쓰기 대상 데이터를 압축하여 6KB 즉, 2KB의 서브 페이지 단위로 분할된 3개의 압축 데이터를 생성한다. 이 경우, 기존의 쓰기 대상 데이터를 위해 할당된 공간 내에 서브 페이지의 크기(=2KB)만큼의 추가 생성영역이 확보된다.In step (2), the
단계 ③에서 코어(116)는 3개의 압축 데이터에 대해서 각각 가변형 ECC Coding 방법을 적용하여 에러 정정 코드 데이터를 생성한다. 도 4에서 코어(116)는 3개의 압축 데이터에 대해서 각각 가변 단위의 크기(=압축 데이터의 1/2 크기)로 분할하여, 압축 데이터별 복수 개의 가변 분할 데이터를 생성하고, 이를 통해 새로운 ECC Codeword를 생성한다. 즉, 코어(116)는 3개의 압축 데이터에 대해서 각각 가변형 ECC Coding 방법을 적용함으로써 기존의 서브 페이지 크기 대비 1/2 크기로 감소된 ECC Codeword를 생성한다. 이후, 코어(116)는 가변 분할 데이터별 각각 대응되는 대응 에러 정정 코드 데이터를 생성한다. 도 4에서는 압축 데이터별 2개의 가변 분할 데이터가 생성되며, 이에 대응되는 총 6개의 대응 에러 정정 코드 데이터가 생성된다.In step 3, the
단계 ③에서 코어(116)는 가변 분할 데이터 및 가변 분할 데이터별 대응 에러 정정 코드 데이터를 조합한 조합 데이터를 생성한다. 한편, 본 실시예에 따른 에러 정정 코드를 생성하는 제1 방법은 코어(116)에 의해 생성된 에러 정정 코드가 스페어 영역 및 추가 생성영역에 나누어 기재된다. 즉, 단계 ③에서 코어(116)는 3개의 압축 데이터별로 생성된 복수 개의 가변 분할 데이터 중 첫 번째 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 쓰기 대상 데이터에 대응되는 스페어 영역에 저장하고, 두 번째 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 추가 생성영역에 저장하여 조합 데이터를 생성한다.In step 3 (3), the
도 5는 본 실시예에 따른 코어가 에러 정정 코드를 생성하는 제2 방법을 예시한 예시도이다. 5 is an exemplary diagram illustrating a second method of generating an error correction code according to the present embodiment.
도 5에 도시하듯이, 본 실시예에 따른 코어가 에러 정정 코드를 생성하는 제2 방법은 제1 방법과 마찬가지로 ① 내지 ③의 단계를 수행하여 에러 정정 코드 데이터를 생성한다. 다만, 제2 방법의 경우 코어(116)에 의해 생성된 에러 정정 코드가 스페어 영역이 아닌 추가 생성영역에만 저장된다. 즉, 단계 ③에서 코어(116)는 3개의 압축 데이터별로 생성된 복수 개의 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 단계 ②의 압축 과정을 통해 확보된 추가 생성영역에 저장하여 조합 데이터를 생성한다. 이 경우, 스페어 영역에 대응되는 데이터에 대한 인코딩 시간 및 디코딩 시간을 감소시킬 수 있는 추가 효과가 있다.As shown in FIG. 5, the second method in which the core according to the present embodiment generates an error correcting code generates error correcting code data by performing the steps 1 to 3 in the same manner as the first method. However, in the case of the second method, the error correction code generated by the
본 실시예에 따른 코어(116)는 쓰기 대상 데이터의 압축률에 따라 제1 방법 또는 제2 방법을 선택적으로 이용하여 에러 정정 코드 데이터를 생성할 수 있다. 즉, 코어(116)는 쓰기 대상 데이터의 압축률에 따라 확보되는 추가 생성영역의 크기가 기 설정된 최대 크기 이상인 경우(=감소된 ECC Codeword에 기초하여 추가 생성되는 에러 정정 코드 데이터를 모두 수용 가능한 정도의 크기) 제2 방법에 따라 에러 정정 코드 데이터를 기재하여 제공할 수 있다. 또한, 코어(116)는 쓰기 대상 데이터의 압축률에 따라 확보되는 추가 생성영역의 크기가 기 설정된 최대 크기 미만인 경우 제1 방법에 따라 에러 정정 코드 데이터를 기재하여 제공할 수 있다. 한편, 코어(116)는 제1 방법 또는 제2 방법을 이용하여 에러 정정 코드 데이터를 생성 시 이를 구별하기 위한 플래그 정보를 조합 데이터 내 추가로 생성하여 기재함으로써 이후 디코딩 과정 시 야기될 수 있는 문제점을 사전에 차단한다.The
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present invention, and various changes and modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.
100: 저장장치 110: 플래시 컨트롤러
112: 호스트 인터페이스부 114: 코어부
116: 코어 118: 출력부
120: 버퍼 관리부 130: DRAM
141: 낸드 플래시 메모리 200: 압축기
210: ECC 생성부100: storage device 110: flash controller
112: host interface unit 114: core unit
116: core 118: output section
120: buffer management unit 130: DRAM
141: NAND flash memory 200: compressor
210: ECC generator
Claims (5)
호스트로부터 입력 데이터를 수신하고, 상기 입력 데이터를 페이지 단위로 분할하여 적어도 하나의 쓰기 대상 데이터를 생성하는 수신단계;
상기 쓰기 대상 데이터를 압축하여 서브 페이지 단위로 분할된 하나 이상의 압축 데이터를 생성하는 압축단계;
상기 압축 데이터를 상기 쓰기 대상 데이터의 압축률에 기초하여 산출된 가변 단위의 크기로 분할하여 에러 정정 코드(ECC: Error Correction Code) 데이터 생성을 위한 단위(ECC Codeword)의 가변 분할 데이터를 생성하고, 상기 가변 분할 데이터별로 각각 대응되는 대응 에러 정정 코드 데이터를 생성하는 생성단계; 및
상기 가변 분할 데이터 및 상기 가변 분할 데이터별 대응 에러 정정 코드 데이터를 조합한 조합 데이터를 생성하고, 상기 조합 데이터를 대응되는 낸드 플래시 메모리에 할당하는 할당단계
를 포함하는 것을 특징으로 하는 에러 정정 코드 생성방법.A method of generating an error correction code for a NAND flash memory based storage device,
A receiving step of receiving input data from a host and dividing the input data into page units to generate at least one data to be written;
A compressing step of compressing the write target data to generate one or more pieces of compressed data divided into subpage units;
Dividing the compressed data into sizes of variable units calculated based on a compression rate of the write target data to generate variable division data of a unit for generating error correction code (ECC) data (ECC Codeword) A generation step of generating corresponding error correction code data corresponding to each of the variable division data; And
An allocation step of generating combination data in which the variable division data and the corresponding error correction code data for each variable division data are combined and allocating the combination data to a corresponding NAND flash memory
And generating an error correction code.
상기 생성단계는,
상기 쓰기 대상 데이터의 압축률이 기 설정된 최저 압축률 이상인 경우 상기 가변 분할 데이터를 생성하는 단계를 수행하는 것을 특징으로 하는 에러 정정 코드 생성방법.The method according to claim 1,
Wherein the generating comprises:
And generating the variable division data when the compression rate of the data to be written is equal to or greater than a predetermined minimum compression rate.
상기 할당단계는,
상기 가변 분할 데이터 중 어느 하나의 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 상기 쓰기 대상 데이터에 대응되는 스페어(Spare) 영역에 저장하고, 상기 어느 하나의 가변 분할 데이터를 제외한 다른 가변 분할 데이터에 대응되는 대응 에러 정정 코드 데이터를 상기 쓰기 대상 데이터 공간 내 상기 하나 이상의 압축 데이터의 저장 영역을 제외한 추가 생성영역에 저장하여 상기 조합 데이터를 생성하는 것을 특징으로 하는 에러 정정 코드 생성방법.The method according to claim 1,
Wherein the allocating step comprises:
Wherein the variable error correction code data corresponding to one of the variable divisional data is stored in a spare area corresponding to the data to be written and the variable divisional data other than the variable divisional data And the corresponding combination error correction code data is stored in an additional generation area excluding the storage area of the at least one compressed data in the writing object data space to generate the combination data.
호스트로부터 입력 데이터를 수신하고, 상기 입력 데이터를 페이지 단위로 분할하여 적어도 하나의 쓰기 대상 데이터를 제공하는 호스트 인터페이스부;
복수의 코어를 구비하며, 각 코어는 상기 쓰기 대상 데이터를 압축하여 서브 페이지 단위로 분할된 하나 이상의 압축 데이터를 생성하고, 상기 압축 데이터를 상기 쓰기 대상 데이터의 압축률에 기초하여 산출된 가변 단위의 크기로 분할하여 에러 정정 코드(ECC: Error Correction Code) 데이터 생성을 위한 단위(ECC Codeword)의 가변 분할 데이터를 생성하고, 상기 가변 분할 데이터별로 각각 대응되는 대응 에러 정정 코드 데이터를 생성하고, 상기 가변 분할 데이터 및 상기 가변 분할 데이터별 대응 ECC 데이터를 조합한 조합 데이터를 생성하는 코어부; 및
상기 조합 데이터를 대응되는 낸드 플래시 메모리에 할당하는 출력부
를 포함하는 것을 특징으로 하는 저장장치.
A NAND flash memory based storage device,
A host interface unit for receiving input data from a host, dividing the input data into pages, and providing at least one data to be written;
Each of the cores compresses the data to be written to generate one or more pieces of compressed data divided into subpage units, and the compressed data is divided into a variable unit size calculated on the basis of a compression ratio of the data to be written , Generates variable division data of a unit (ECC Codeword) for generating error correction code (ECC) data, generates corresponding error correction code data corresponding to each of the variable division data, A core unit for generating combination data in which data and corresponding ECC data for each variable division data are combined; And
An output unit for assigning the combination data to a corresponding NAND flash memory
≪ / RTI >
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150046782A KR101711056B1 (en) | 2015-04-02 | 2015-04-02 | Method and Apparatus for Creating Error Correction Code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150046782A KR101711056B1 (en) | 2015-04-02 | 2015-04-02 | Method and Apparatus for Creating Error Correction Code |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160118526A KR20160118526A (en) | 2016-10-12 |
KR101711056B1 true KR101711056B1 (en) | 2017-02-28 |
Family
ID=57173498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150046782A KR101711056B1 (en) | 2015-04-02 | 2015-04-02 | Method and Apparatus for Creating Error Correction Code |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101711056B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11562803B2 (en) | 2020-10-23 | 2023-01-24 | Samsung Electronics Co., Ltd. | Memory device storing parity and memory system including the same |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102076624B1 (en) * | 2018-12-06 | 2020-02-12 | 한국외국어대학교 연구산학협력단 | Storage system based flash memory and error correcting method thereof |
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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005143668A (en) | 2003-11-12 | 2005-06-09 | Olympus Corp | Capsule endoscope |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10191272A (en) * | 1996-12-20 | 1998-07-21 | Kokusai Electric Co Ltd | Multiplex transmitting method and its device |
KR102081980B1 (en) * | 2012-10-08 | 2020-02-27 | 삼성전자 주식회사 | Method for performing write operation or read operation in memory system |
-
2015
- 2015-04-02 KR KR1020150046782A patent/KR101711056B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005143668A (en) | 2003-11-12 | 2005-06-09 | Olympus Corp | Capsule endoscope |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11562803B2 (en) | 2020-10-23 | 2023-01-24 | Samsung Electronics Co., Ltd. | Memory device storing parity and memory system including the same |
Also Published As
Publication number | Publication date |
---|---|
KR20160118526A (en) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10521292B2 (en) | Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information | |
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI514139B (en) | Physical page, logical page, and codeword correspondence | |
US20140032992A1 (en) | Memory controller, semiconductor memory system, and memory control method | |
CN107678695B (en) | Selecting redundant storage configurations based on available memory space | |
US9336081B2 (en) | Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access | |
US20150019933A1 (en) | Memory controller, storage device, and memory control method | |
US10062418B2 (en) | Data programming method and memory storage device | |
US9274706B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
US9208021B2 (en) | Data writing method, memory storage device, and memory controller | |
WO2008145070A1 (en) | Flash memory data read/write processing method | |
TW201545167A (en) | Method of handling error correcting code in non-volatile memory and non-volatile storage device using the same | |
US9720609B1 (en) | Data protecting method, memory control circuit unit and memory storage device | |
KR102628009B1 (en) | Memory system for partial page compression | |
US9430327B2 (en) | Data access method, memory control circuit unit and memory storage apparatus | |
KR101711056B1 (en) | Method and Apparatus for Creating Error Correction Code | |
JP2020149195A (en) | Memory system | |
CN109491828B (en) | Decoding method, memory storage device and memory control circuit unit | |
US10997067B2 (en) | Data storing method, memory controlling circuit unit and memory storage device | |
TWI732642B (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US10713160B1 (en) | Data writing method, memory control circuit unit and memory storage device | |
US9941907B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
CN107608817B (en) | Decoding method, memory storage device and memory control circuit unit | |
CN112799874A (en) | Memory control method, memory storage device and memory control circuit unit | |
CN107239224B (en) | Data protection method, memory control circuit unit and memory storage device |
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: 20200213 Year of fee payment: 4 |