KR101417827B1 - Apparatus and method for controlling flash memory for storing error correction code - Google Patents
Apparatus and method for controlling flash memory for storing error correction code Download PDFInfo
- Publication number
- KR101417827B1 KR101417827B1 KR1020110108677A KR20110108677A KR101417827B1 KR 101417827 B1 KR101417827 B1 KR 101417827B1 KR 1020110108677 A KR1020110108677 A KR 1020110108677A KR 20110108677 A KR20110108677 A KR 20110108677A KR 101417827 B1 KR101417827 B1 KR 101417827B1
- Authority
- KR
- South Korea
- Prior art keywords
- error correction
- correction code
- data
- page
- flash memory
- 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/1044—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 with specific ECC/EDC distribution
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
에러 정정 코드의 저장을 위한 플래시 메모리 제어장치 및 방법이 개시된다. 페이지 단위로 데이터가 저장되며, 상기 페이지가 사전에 설정된 개수의 섹터로 구성된 플래시 메모리를 제어하기 위하여, 호스트 인터페이스부는 호스트와 제어신호 및 데이터를 송수신하며, 메모리 인터페이스부는 호스트로부터 쓰기 제어신호와 함께 수신된 쓰기 대상 데이터 및 쓰기 대상 데이터에 대응하여 생성된 에러 정정 코드를 플래시 메모리의 페이지에 저장하되, 쓰기 대상 데이터가 저장되는 데이터 영역에 해당하는 복수의 섹터 중 사전에 설정된 개수의 섹터에 대응하는 영역을 에러 정정 코드의 저장영역으로 추가 할당한다. 본 발명에 따르면, 데이터 저장을 위한 메모리 영역의 일부를 에러 정정 코드의 저장에 사용함으로써, RAID-5 구조를 이용하는 방법 또는 외부 확장 블록을 사용하는 방법과 같은 기존의 에러 정정 코드 저장 기법들에 비해 동일 페이지에 데이터 및 그에 대한 에러 정정 코드를 함께 저장할 수 있으므로 외부 페이지를 읽고 쓰기 위한 지연시간을 줄일 수 있다.A flash memory control apparatus and method for storing an error correction code are disclosed. The host interface unit transmits and receives control signals and data to and from the host, and the memory interface unit receives the write control signals from the host together with the write control signals And the error correction code generated in correspondence with the write target data and the write target data is stored in a page of the flash memory, and a region corresponding to a predetermined number of sectors among the plurality of sectors corresponding to the data region in which the write target data is stored To the storage area of the error correction code. According to the present invention, by using a part of the memory area for data storage for storing the error correction code, compared with the conventional error correction code storage techniques such as a method using a RAID-5 structure or a method using an external expansion block Since the data and the error correction code for the same page can be stored in the same page, the delay time for reading and writing the external page can be reduced.
Description
본 발명은 에러 정정 코드의 저장을 위한 플래시 메모리 제어장치 및 방법에 관한 것으로, 보다 상세하게는, 플래시 메모리에 저장된 데이터의 에러 정정시에 사용되는 에러 정정 코드가 저장되는 과정을 제어하는 장치 및 방법에 관한 것이다.The present invention relates to a flash memory control apparatus and method for storing an error correction code, and more particularly, to an apparatus and a method for controlling a process of storing an error correction code used for error correction of data stored in a flash memory .
낸드(NAND) 플래시 메모리는 하드 드라이브에 비해 우수한 랜덤 읽기/쓰기 성능을 가지기 때문에 수많은 사용자의 요청을 동시에 처리하는 서버 시스템의 저장장치를 구축하는 데 사용된다. 또한 최근에는 낸드 플래시 메모리의 낮은 전력 소모 및 대용량 특성으로 인해 SSD(solid state drive)와 휴대용 기기의 저장장치로 널리 사용되고 있다.NAND flash memory has excellent random read / write performance compared to hard drives and is used to build storage on server systems that process many user requests concurrently. Recently, NAND flash memories have been widely used as solid state drives (SSD) and storage devices for portable devices due to their low power consumption and large capacity.
한편, 낸드 플래시 메모리의 제품 생산 기술이 미세화되고 한 개의 저장 셀(cell)에 여러 비트를 저장하는 멀티 레벨 셀(Multi Level Cell : MLC) 기술이 보급됨에 따라 장치의 제작 비용이 감소하였으나, 장치의 신뢰성과 내구성이 저하되는 결과를 초래하여 그에 따라 에러 검출 및 정정 기술이 사용되었다.Meanwhile, the manufacturing cost of the NAND flash memory has been reduced due to the miniaturization of the production technology of the NAND flash memory and the introduction of multi level cell (MLC) technology which stores a plurality of bits in one storage cell. However, The reliability and durability are degraded, and error detection and correction techniques are used accordingly.
낸드 플래시 메모리의 제어기는 에러 정정을 위해 에러 정정 코드(Error Correction Code : ECC)를 사용하는데, 에러 정정 코드는 데이터 전송 시간 동안 생성되고, 페이지 프로그램 시간 동안 데이터 페이지와 함께 스페어(spare) 영역에 저장된다. 대용량 낸드 플래시 메모리 장치는 프로그램 명령을 사용하여 데이터 영역과 스페어 영역 양쪽에 쓰기 동작을 수행하므로 에러 정정 코드를 저장하기 위한 추가 오버헤드는 발생하지 않는다. 이와 같이 저장된 에러 정정 코드는 페이지 읽기 시간 동안 데이터가 읽혀질 때 복호화되며, 에러 정정 코드에 의해 에러 정정된 데이터가 호스트로 리턴된다. 쓰기 동작을 수행할 때와 마찬가지로 데이터 영역과 스페어 영역에 저장된 정보는 한 번의 읽기 동작에 의해 읽혀질 수 있다.The controller of the NAND flash memory uses an error correction code (ECC) for error correction. The error correction code is generated during the data transfer time and stored in the spare area with the data page during the page program time do. Since the large capacity NAND flash memory device performs a write operation in both the data area and the spare area using the program command, no additional overhead for storing the error correction code occurs. The stored error correction code is decoded when the data is read during the page read time, and the error corrected data is returned to the host by the error correction code. The information stored in the data area and the spare area can be read by a single read operation as in the case of performing the write operation.
낸드 플래시 메모리의 제어기는 에러 정정 코드로서 일반적으로 BCH 코드 알고리즘을 사용한다. BCH 코드 알고리즘은 512 바이트 크기의 섹터에서 1 비트의 에러를 정정하기 위해 13 비트의 에러 정정 코드를 요구한다. 또한 최근 생산되는 3 비트 멀티 레벨 셀(MLC) 및 20 나노미터 급 메모리 제조 공정 기반의 플래시 메모리는 섹터 당 에러 발생률이 크게 증가하여, 1024 바이트 당 24 비트 또는 40 비트의 에러 정정 코드가 권장된다.The controller of the NAND flash memory generally uses the BCH code algorithm as the error correction code. The BCH code algorithm requires a 13-bit error correction code to correct a 1-bit error in a sector of 512 bytes in size. In addition, flash memory based on 3-bit multi-level cells (MLC) and 20-nanometer memory fabrication processes, which are recently produced, have a significant increase in error rate per sector, and an error correcting code of 24 bits or 40 bits per 1024 bytes is recommended.
RAID-5는 고신뢰를 요구하는 저장장치 시스템에서 주로 사용되는 기법이다. 도 1은 종래의 RAID-5 기법을 설명하기 위한 도면으로, 5개의 저장장치가 병렬로 연결되어 이 중에서 4개의 저장장치만 일반 데이터 저장을 위해 사용되고, 1개의 저장장치에는 다른 4개의 저장장치에 저장된 데이터의 오류 정정을 위한 패리티 비트가 저장된다.RAID-5 is a technique commonly used in high-reliability storage systems. FIG. 1 is a diagram for explaining a conventional RAID-5 technique. In FIG. 1, five storage devices are connected in parallel and four storage devices are used for general data storage. Four storage devices are connected to one storage device A parity bit for error correction of stored data is stored.
이와 같이 RAID-5에 의하면 저장 가능한 영역 중 1/5이 오류 정정을 위해 사용되므로 고신뢰 저장매체의 구현이 가능하지만, 저장 효율의 측면에서는 비효율적인 구조가 될 수 있어 낸드 플래시 메모리 기반의 저장장치에 대하여는 RAID 구조를 개선하여 패리티 비트가 저장되는 영역에 에러 정정 코드를 저장하는 기법이 제안되었다. 그러나 데이터의 읽기/쓰기 동작시 에러 정정 코드를 처리하기 위한 특정 페이지를 읽고 쓰는 동작이 수반되어 지연이 발생하는 문제가 있다.As described above, according to RAID-5, 1/5 of the storage area is used for error correction. Therefore, it is possible to implement a highly reliable storage medium. However, since it is inefficient in terms of storage efficiency, a storage device based on NAND flash memory In this paper, we propose a technique to improve the RAID structure and store the error correction code in the area where the parity bits are stored. However, there is a problem that a delay occurs due to an operation of reading and writing a specific page for processing an error correction code in a data read / write operation.
또한 BCH 코드 알고리즘을 적용하는 데 필요한 에러 정정 코드의 저장 영역을 확보하기 위하여 외부 확장 블록을 고정하여 사용하는 기법이 제안되었다. 도 2는 외부 확장 블록을 사용하는 기법을 설명하기 위한 도면이다. 도 2를 참조하면, 4 비트 에러 정정과 같은 저성능 BCH 코드 알고리즘의 에러 정정 코드를 해당 페이지의 스페어 영역에 1차로 저장하고, 24 비트 에러 정정과 같은 고성능 BCH 코드 알고리즘의 에러 정정 코드를 외부 지정된 확장 블록에 2차로 저장하게 된다. 이러한 방법을 사용할 경우, 일반적으로는 1차로 저장된 에러 정정 코드를 사용하여 에러를 정정하지만, 1차 정정이 불가능한 에러가 발생한 경우에는 정확한 에러 정정을 위해 2차로 저장된 에러 정정 코드를 사용하여 에러 정정을 수행하게 된다.In order to secure the storage area of the error correction code necessary for applying the BCH code algorithm, a technique of using an external expansion block is proposed. 2 is a diagram for explaining a technique using an external expansion block. 2, an error correction code of a low-performance BCH code algorithm such as a 4-bit error correction is first stored in a spare area of a corresponding page, and an error correction code of a high-performance BCH code algorithm such as 24- And the second block is stored in the expansion block. When this method is used, generally an error correction code stored firstarily is used to correct the error. However, if an error that can not be corrected firstly occurs, the error correction code stored in the second order is used to correct the error, .
그러나, 이와 같이 외부 확장 블록을 사용하는 기법을 사용할 경우 하나의 데이터에 대해 2개의 에러 정정 코드를 생성 및 저장하여야 하는 오버헤드가 발생하며, 저장장치의 수명이 다하여 해당 블록의 삭제 횟수가 증가한 경우에 에러 정정을 위해 매번 2개의 페이지를 읽어 복원해야 하는 단점이 존재한다.However, when the technique using the external expansion block is used, there is an overhead to generate and store two error correction codes for one piece of data. In the case where the number of times of deletion of the corresponding block increases due to the life of the storage device There is a disadvantage that two pages must be read and restored each time for error correction.
한편, 한국공개특허 제1998-0038438호에는 오버헤드 영역을 따로 구분하지 않고 데이터의 인코딩시 섹터의 상태정보를 함께 인코딩하여 섹터 내의 어떤 부분에서 발생한 에러도 에러 정정 코드에 의한 정정을 가능하게 하는 방법이 개시되어 있다. 그러나 이러한 방법 역시 증가된 크기의 에러 정정 코드를 저장하기 위한 추가 영역의 확보 문제는 해결할 수 없다는 문제를 가진다.Korean Unexamined Patent Publication No. 1998-0038438 discloses a method of encoding sector information of a sector by separately encoding an overhead area and correcting an error occurring in a sector in a sector by an error correction code . However, this method also has a problem in that the problem of securing an additional area for storing an increased size of error correction code can not be solved.
본 발명이 이루고자 하는 기술적 과제는, 플래시 메모리의 데이터가 저장될 페이지에 큰 비트의 에러 정정 코드를 함께 저장하여 추가 지연 없이 인코딩 및 디코딩이 가능하도록 하는 에러 정정 코드의 저장을 위한 플래시 메모리 제어장치 및 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION The present invention is directed to a flash memory controller for storing an error correction code for storing a large number of error correction codes in a page where data of a flash memory is to be stored, Method.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 에러 정정 코드의 저장을 위한 플래시 메모리 제어장치는, 페이지 단위로 데이터가 저장되며, 상기 페이지가 사전에 설정된 개수의 섹터로 구성된 플래시 메모리를 제어하기 위한 것으로, 호스트와 제어신호 및 데이터를 송수신하는 호스트 인터페이스부; 및 상기 호스트로부터 쓰기 제어신호와 함께 수신된 쓰기 대상 데이터 및 상기 쓰기 대상 데이터에 대응하여 생성된 에러 정정 코드를 상기 플래시 메모리의 페이지에 저장하되, 상기 쓰기 대상 데이터가 저장되는 데이터 영역에 해당하는 복수의 섹터 중 사전에 설정된 개수의 섹터에 대응하는 영역을 상기 에러 정정 코드의 저장영역으로 추가 할당하는 메모리 인터페이스부;를 구비하며, 상기 메모리 인터페이스부는 상기 페이지를 구성하는 복수의 섹터 중에서 상기 사전에 설정된 개수의 섹터를 제외한 나머지 섹터들에 상기 사전에 설정된 개수의 섹터에 대응하는 영역을 분할하여 추가적인 에러 정정 코드의 저장영역으로 할당한다.According to an aspect of the present invention, there is provided an apparatus for controlling flash memory for storing an error correction code, the apparatus comprising: a flash memory for storing data in units of pages; A host interface unit for transmitting / receiving control signals and data to / from the host; And an error correcting code generated corresponding to the write target data and the write target data received together with the write control signal from the host, in a page of the flash memory, wherein a plurality And a memory interface unit for additionally allocating an area corresponding to a predetermined number of sectors among the sectors of the page to the storage area of the error correction code, The sectors corresponding to the predetermined number of sectors are divided into the remaining sectors except for the number of sectors and allocated to the storage area of an additional error correction code.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 에러 정정 코드의 저장을 위한 플래시 메모리 제어방법은, 페이지 단위로 데이터가 저장되며, 상기 페이지가 사전에 설정된 개수의 섹터로 구성된 플래시 메모리를 제어하기 위한 것으로, (a) 호스트로부터 쓰기 제어신호와 함께 쓰기 대상 데이터를 수신하는 단계; (b) 상기 쓰기 대상 데이터에 대응하는 에러 정정 코드를 생성하는 단계; 및 (c) 상기 쓰기 대상 데이터 및 에러 정정 코드를 상기 플래시 메모리의 페이지에 저장하되, 상기 쓰기 대상 데이터가 저장되는 데이터 영역에 해당하는 복수의 섹터 중 사전에 설정된 개수의 섹터에 대응하는 영역을 상기 에러 정정 코드의 저장영역으로 추가 할당하는 단계;를 가지며, 상기 (c)단계에서, 상기 페이지를 구성하는 복수의 섹터 중에서 상기 사전에 설정된 개수의 섹터를 제외한 나머지 섹터들에 상기 사전에 설정된 개수의 섹터에 대응하는 영역을 분할하여 추가적인 에러 정정 코드의 저장영역으로 할당한다.According to another aspect of the present invention, there is provided a method of controlling a flash memory for storing an error correction code, the method comprising: storing data in units of pages; controlling the flash memory to include a predetermined number of sectors; (A) receiving data to be written together with a write control signal from a host; (b) generating an error correction code corresponding to the data to be written; And (c) storing the write target data and the error correction code in a page of the flash memory, wherein an area corresponding to a predetermined number of sectors among a plurality of sectors corresponding to a data area in which the write target data is stored is Further comprising the steps of: (a) allocating a predetermined number of sectors of the plurality of sectors constituting the page to a sector of the error correction code; The sector corresponding to the sector is divided and allocated to a storage area for an additional error correction code.
본 발명에 따른 에러 정정 코드의 저장을 위한 플래시 메모리 제어장치 및 방법에 의하면, 데이터 저장을 위한 메모리 영역의 일부를 에러 정정 코드의 저장에 사용함으로써, RAID-5 구조를 이용하는 방법 또는 외부 확장 블록을 사용하는 방법과 같은 기존의 에러 정정 코드 저장 기법들에 비해 동일 페이지에 데이터 및 그에 대한 에러 정정 코드를 함께 저장할 수 있으므로 외부 페이지를 읽고 쓰기 위한 지연시간을 줄일 수 있다.According to an apparatus and method for controlling a flash memory for storing an error correction code according to the present invention, by using a part of a memory area for storing data for storing an error correction code, a method using a RAID- It is possible to store the data and the error correction code thereon in the same page as compared with the conventional error correction code storing schemes such as the method of using it, so that the delay time for reading and writing the external page can be reduced.
도 1은 종래의 RAID-5 기법을 설명하기 위한 도면,
도 2는 외부 확장 블록을 사용하는 기법을 설명하기 위한 도면,
도 3은 본 발명에 따른 에러 정정 코드의 저장을 위한 플래시 메모리 제어장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 4는 하나의 페이지에 데이터와 에러 정정 코드가 저장되는 기존의 방식을 도시한 도면,
도 5는 본 발명에서 하나의 페이지에 데이터와 에러 정정 코드가 저장되는 방식을 도시한 도면,
도 6은 플래시 메모리의 한 페이지에서 스페어 영역으로 사용되는 섹터의 개수에 따른 에러 정정 가능 비트 수를 비교하여 나타낸 그래프,
도 7은 멀티 칩을 사용하는 SSD에서 사용되는 클러스터링 페이지의 일 예를 도시한 도면,
도 8은 에러 정정 가능 비트수에 따른 CBER(Correctable Block Error Rate)과 RBER(Raw Bit Error Rate)의 관계를 도시한 그래프,
도 9는 종래의 에러 정정 코드 저장 기법과 본 발명을 적용함에 따라 나타나는 동작 지연시간을 정규화하여 도시한 그래프, 그리고,
도 10은 본 발명에 따른 에러 정정 코드의 저장을 위한 플래시 메모리 제어방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.FIG. 1 is a diagram for explaining a conventional RAID-5 technique,
2 is a diagram for explaining a technique using an external expansion block,
3 is a block diagram showing a configuration of a preferred embodiment of a flash memory control apparatus for storing an error correction code according to the present invention;
4 is a diagram showing an existing method in which data and error correction codes are stored in one page,
5 is a diagram illustrating a method of storing data and an error correction code in one page in the present invention.
6 is a graph showing the number of error correctable bits according to the number of sectors used as a spare area in one page of the flash memory,
7 is a diagram illustrating an example of a clustering page used in an SSD using a multi-chip;
FIG. 8 is a graph showing a relationship between a correctable block error rate (CBER) and a raw bit error rate (RBER) according to the number of error correctable bits,
FIG. 9 is a graph illustrating a normalized error delay time, which is obtained by applying the conventional error correction code storing technique and the present invention,
10 is a flowchart illustrating a method of controlling a flash memory control method for storing an error correction code according to an exemplary embodiment of the present invention.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 에러 정정 코드의 저장을 위한 플래시 메모리 제어장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, preferred embodiments of a flash memory control apparatus and method for storing an error correction code according to the present invention will be described in detail with reference to the accompanying drawings.
도 3은 본 발명에 따른 에러 정정 코드의 저장을 위한 플래시 메모리 제어장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.3 is a block diagram showing a configuration of a preferred embodiment of a flash memory control apparatus for storing an error correction code according to the present invention.
도 3을 참조하면, 본 발명에 따른 플래시 메모리 제어장치(100)는 호스트(200)와 플래시 메모리(300) 사이에서 동작하며, 호스트 인터페이스부(110) 및 메모리 인터페이스부(120)를 구비한다. 또한 플래시 메모리 제어장치(100)는 호스트(200)와 플래시 메모리(300) 사이에서 전송되는 데이터가 저장되는 버퍼부(미도시)를 더 구비할 수 있다.3, a flash
플래시 메모리 제어장치(100)에서 호스트 인터페이스부(110)는 호스트(200)와 제어신호 및 데이터를 송수신하며, 메모리 인터페이스부(120)는 호스트(200)로부터 쓰기 제어신호와 함께 수신된 쓰기 대상 데이터 및 쓰기 대상 데이터에 대응하여 생성된 에러 정정 코드를 플래시 메모리(300)의 페이지에 저장한다.The
플래시 메모리(300)는 데이터 삭제 연산의 기본 단위인 복수의 블록으로 구성되며, 블록은 읽기 및 쓰기 연산의 기본 단위인 복수의 페이지로 구성된다. 또한 페이지는 복수의 섹터로 구성되며, 각각의 섹터는 실제 데이터가 저장되는 데이터 영역(data area)과 데이터 영역을 관리하기 위한 에러 정정 코드와 같은 정보가 저장되는 스페어 영역(spare area)으로 구성된다.The
도 4는 하나의 페이지에 데이터와 에러 정정 코드가 저장되는 기존의 방식을 도시한 도면이다. 도 4를 참조하면, (16K+512) 바이트 크기의 페이지가 32개의 섹터로 구성되어 있으며, 각각의 섹터는 (512+16) 바이트 크기이다. 각 섹터는 512 바이트 크기의 데이터 영역과 16 바이트 크기의 스페어 영역으로 구성되어 데이터와 에러 정정 코드가 각각 저장된다.4 is a diagram showing an existing method in which data and error correction codes are stored in one page. Referring to FIG. 4, a page of (16K + 512) bytes consists of 32 sectors, and each sector is (512 + 16) bytes in size. Each sector is composed of a data area of 512 bytes size and a spare area of 16 bytes size, and data and an error correction code are respectively stored.
앞에서 설명한 바와 같이 페이지의 크기가 선형적으로 증가하는 반면 에러 발생 확률은 기하급수적으로 증가하므로, 에러 정정 코드가 저장될 스페어 영역이 부족하게 된다. 따라서 본 발명에 따른 플래시 메모리 제어장치(100)의 메모리 인터페이스부(120)는 페이지를 구성하는 섹터의 개수를 조절하여 에러 정정 코드가 저장되는 ECC 저장영역을 추가로 할당함으로써 결과적으로 스페어 영역의 크기가 증가하는 것과 동일한 효과를 얻게 된다.As described above, the page size grows linearly while the error occurrence probability increases exponentially, and the spare area in which the error correction code is stored becomes insufficient. Accordingly, the
도 5는 본 발명에서 하나의 페이지에 데이터와 에러 정정 코드가 저장되는 방식을 도시한 도면이다. 도 5의 페이지 크기는 (16K+512) 바이트로, 도 4와 플래시 메모리(300)의 페이지 크기는 동일하나 섹터의 개수가 31개로 1개가 줄어든 것을 확인할 수 있다. 도 5에 도시된 플래시 메모리(300)의 페이지에서 각 섹터는 512 바이트 크기의 데이터 영역과 (32+α) 바이트 크기의 ECC 저장영역으로 구성되며, α=(줄어든 섹터의 크기/줄어든 섹터의 개수)이다.5 is a diagram illustrating a method of storing data and an error correction code in one page in the present invention. The page size of FIG. 5 is (16K + 512) bytes. It can be seen that the page size of FIG. 4 and the
ECC 저장영역으로 사용될 섹터의 개수는 설정에 의해 조절 가능하며, 바람직하게는 1개의 섹터에 해당하는 영역을 ECC 저장영역으로 사용할 수 있다. 또한 섹터의 일부가 ECC 저장영역으로 사용됨에 따라 줄어든 데이터 영역의 크기를 벗어나는 데이터에 대하여는 다른 페이지를 추가로 할당하여 호스트의 읽기/쓰기 요청을 처리할 수 있다.The number of sectors to be used as the ECC storage area can be adjusted by setting, and preferably, an area corresponding to one sector can be used as the ECC storage area. Also, as a part of a sector is used as an ECC storage area, a host can read / write requests by allocating another page to data that is outside the reduced data area size.
이와 같이 메모리 인터페이스부(120)가 플래시 메모리(300)의 섹터의 일부를 ECC 저장영역으로 사용함으로써, 쓰기 대상 데이터에 대한 에러 정정 코드가 쓰기 대상 데이터와 동일한 페이지에 함께 저장되며, 나아가 각 섹터별 데이터에 연속하여 에러 정정 코드가 저장되므로, 호스트의 섹터 단위 연산에 맞추어 지연 없는 에러 정정이 가능하다.In this way, by using a part of the sector of the
이후 호스트(200)로부터 플래시 메모리(300)에 저장된 데이터의 읽기 제어신호가 수신되면, 메모리 인터페이스부(120)는 읽기 제어신호에 대응하는 읽기 대상 데이터와 읽기 대상 데이터에 대응하는 에러 정정 코드를 플래시 메모리(300)의 동일 페이지로부터 독출하고, 읽기 대상 데이터에 대한 에러 정정을 수행한 후 호스트 인터페이스부(110)를 통해 호스트(200)로 출력하게 된다.Then, when the read control signal of the data stored in the
도 6은 플래시 메모리(300)의 한 페이지에서 ECC 저장영역으로 사용되는 섹터의 개수에 따른 에러 정정 가능 비트 수를 비교하여 나타낸 그래프이다. 도 6을 참조하면, 데이터 저장을 위한 섹터의 개수를 조절하여 에러 정정 코드의 저장 영역을 확보함으로써, BCH 코드 알고리즘과 같은 에러 정정 방식에서 고성능 에러 정정을 위해 증가된 비트의 에러 정정 코드를 저장할 수 있음을 확인할 수 있다.6 is a graph showing the number of error correctable bits according to the number of sectors used as an ECC storage area in one page of the
다만, 본 발명에 따른 플래시 메모리 제어장치(100)가 데이터 영역의 크기를 줄이고 ECC 저장영역의 크기를 증가시킴에 따라 호스트의 읽기/쓰기 요청이 플래시 메모리(300)의 페이지 크기와 같은 단위로 할당되는 경우에는 성능 저하가 발생할 것이 예상될 수 있다. 그러나 최근 널리 사용되는 SSD 제품에 구비된 플래시 메모리(300)는 페이지의 크기가 16 KB 이상으로 확장되어 사용되며, 나아가 8개 혹은 16개의 페이지가 클러스터링되어 하나의 클러스터링 페이지로 사용되고 있다. 실제로 수십 개의 낸드 플래시 메모리가 장착된 SSD를 용이하게 관리하거나 FTL의 맵 테이블 크기를 줄이기 위해 페이지 클러스터링 기법이 필수적으로 요구되므로 성능 저하는 크게 발생하지 않는다.However, since the flash
도 7은 멀티 칩을 사용하는 SSD에서 사용되는 클러스터링 페이지의 일 예를 도시한 도면으로, 4 개의 플래시 메모리 칩에서 동일 위치의 페이지들이 클러스터링되어 하나의 페이지로서 사용된다. 따라서 실질적으로 페이지의 크기가 커지는 효과가 발생하게 된다.FIG. 7 is a diagram illustrating an example of a clustering page used in an SSD using a multi-chip. In the four flash memory chips, pages at the same position are clustered and used as one page. Therefore, the effect of increasing the size of the page substantially occurs.
도 8은 에러 정정 가능 비트수에 따른 CBER(Correctable Block Error Rate)과 RBER(Raw Bit Error Rate)의 관계를 도시한 그래프이다. 도 8의 그래프는 현재 생산되고 있는 플래시 메모리 제품의 RBER이 24-비트 또는 40-비트 에러 정정 기법에 따라 가지게 되는 CBER을 나타낸 것이다. 여기서 CBER은 다음의 수학식 1에 의해 산출되는 값이다.FIG. 8 is a graph showing a relationship between a correctable block error rate (CBER) and a raw bit error rate (RBER) according to the number of error correctable bits. The graph of FIG. 8 shows a CBER in which the RBER of a flash memory product currently being produced has a 24-bit or 40-bit error correction scheme. Here, CBER is a value calculated by the following equation (1).
여기서, N은 블록 내의 비트 수, E는 블록 내의 에러 수, 그리고 p는 비트 에러율(bit error rate)을 나타낸다.Where N is the number of bits in the block, E is the number of errors in the block, and p is the bit error rate.
또한 도 9는 종래의 에러 정정 코드 저장 기법과 본 발명을 적용함에 따라 나타나는 동작 지연시간을 정규화하여 도시한 그래프이다. 도 9를 참조하면, 페이지의 크기가 작은 경우에는 에러 정정 코드의 저장에 사용되는 섹터의 개수가 증가할수록 지연시간이 급격하게 증가하나, 페이지의 크기가 커지면 일부 섹터를 에러 정정 코드의 저장에 사용하더라도 지연시간에 차이가 나타나지 않음을 확인할 수 있다.9 is a graph illustrating normalization of the operation delay time according to the conventional error correction code storing technique and the present invention. Referring to FIG. 9, when the page size is small, the delay time increases sharply as the number of sectors used for storing the error correction code increases. However, when the page size increases, some sectors are used for storing the error correction code It can be confirmed that there is no difference in the delay time.
한편, 하드 디스크 드라이브와 마찬가지로 낸드 플래시 메모리 기반의 저장장치에는 성능 향상을 위해 휘발성 메모리 버퍼가 사용될 수 있다. 이러한 시스템에서 메모리 제어기는 호스트의 I/O 액세스 명령에 대응하여 쓰기 대상의 데이터를 버퍼에 일시적으로 저장하거나 호스트로 출력할 읽기 대상의 데이터를 버퍼로부터 출력한다. 이와 같이 버퍼 메모리를 사용함으로써 I/O 액세스를 처리하는 동안 발생하는 지연시간을 줄일 수 있으며, 동일 블록 또는 페이지에 대한 명령을 합칠 수 있다.On the other hand, like the hard disk drive, a volatile memory buffer can be used for the performance enhancement of the NAND flash memory based storage device. In this system, the memory controller temporarily stores data to be written in the buffer in response to an I / O access command of the host, or outputs data to be read from the buffer to be output to the host. By using the buffer memory in this way, it is possible to reduce the delay time which occurs during the processing of the I / O access, and to combine instructions for the same block or page.
버퍼 관리 알고리즘 중 하나인 CFLRU(Clean-first LRU)는 낸드 플래시 메모리를 구비한 저장 시스템을 위한 LRU 기반의 버퍼 관리 알고리즘으로서, 낸드 플래시 메모리의 소거 후 쓰기 특성으로 인해 버퍼에 빈 슬롯이 없을 때 클린 페이지 또는 블록을 사용한다.One of the buffer management algorithms, CFLRU (Clean-first LRU), is an LRU-based buffer management algorithm for a storage system with NAND flash memory. When a buffer is empty, Use pages or blocks.
본 발명에 따른 플래시 메모리 관리장치(100)에는 이와 같은 CRLRU 버퍼 관리 기법이 적용될 수 있으며, 이하에서는 본 발명에 적용되는 CFLRU 기법을 O-CFLRU 기법이라 한다. 구체적으로, O-CFLRU 기법에서는 동일 페이지에 대한 섹터 단위의 명령을 그 시기 및 유형에 무관하게 함께 그룹화함으로써 버퍼의 할당 또는 플러쉬(flush)를 페이지 단위로 수행하게 된다. 또한 O-CFLRU에서는 수신되는 명령을 그 명령의 크기, 즉 섹터의 크기에 따라 분류하고, 섹터의 크기가 사전에 설정된 기준값(예를 들면, 32)보다 크면 해당 명령은 낸드 플래시 메모리에 직접 전달되며, 기준값보다 작은 크기의 명령은 버퍼에 저장되어 합쳐지거나 'in-place' 업데이트 되는 과정을 거치게 된다.The CRLRU buffer management scheme may be applied to the flash
이상에서 설명한 버퍼 관리 알고리즘인 O-CFLRU 기법을 본 발명에 적용할 경우, 도 9에 도시된 바와 같이 버퍼를 임시 데이터 저장 용도로 사용할 경우에 버퍼의 크기가 커질수록 지연시간이 감소하여 성능 하락의 폭이 작아지게 된다.In the case of applying the O-CFLRU scheme as the buffer management algorithm described above to the present invention, as shown in FIG. 9, when the buffer is used for temporary data storage, the delay time decreases as the size of the buffer increases. The width becomes smaller.
도 10은 본 발명에 따른 에러 정정 코드의 저장을 위한 플래시 메모리 제어방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.10 is a flowchart illustrating a method of controlling a flash memory control method for storing an error correction code according to an exemplary embodiment of the present invention.
도 10을 참조하면, 본 발명에 따른 플래시 메모리 제어장치(100)의 호스트 인터페이스부(110)가 호스트(200)로부터 데이터 쓰기 제어신호를 수신하면(S1010), 쓰기 제어신호의 대상인 쓰기 대상 데이터에 대응하는 에러 정정 코드가 생성된다(S1020). 에러 정정 코드는 메모리 인터페이스부(120) 또는 플래시 메모리 제어장치(100) 내에 별도로 구비된 에러 정정 유닛(미도시)에 의해 생성될 수 있다.10, when the
메모리 인터페이스부(120)는 쓰기 대상 데이터 및 그에 대응하는 에러 정정 코드를 플래시 메모리(300)에 저장하되, 앞에서 설명한 바와 같이 쓰기 대상 데이터가 저장될 페이지의 일부 섹터, 예를 들면 1~2개의 섹터에 대응하는 영역을 에러 정정 코드의 저장을 위한 ECC 저장영역으로 할당한다(S1030).The
이후 호스트(200)로부터 저장된 데이터에 대한 읽기 제어신호가 수신되면(S1040), 메모리 인터페이스부(120)는 읽기 제어신호에 대응하는 읽기 대상 데이터 및 읽기 대상 데이터와 동일한 페이지에 함께 저장된 에러 정정 코드를 플래시 메모리(300)로부터 독출하고(S1050), 에러 정정 코드를 이용하여 읽기 대상 데이터의 에러를 정정한 후 호스트(200)로 출력한다(S1060). 에러 정정 과정 역시 플래시 메모리 제어장치(100)에 별도로 구비된 에러 정정 유닛(미도시)에 의해 수행될 수 있다.Thereafter, when the read control signal for the stored data is received from the host 200 (S1040), the
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and may be implemented in the form of a carrier wave (for example, transmission via the Internet) . The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation in the embodiment in which said invention is directed. It will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the scope of the appended claims.
100 - 플래시 메모리 제어장치
110 - 호스트 인터페이스부
120 - 메모리 인터페이스부
200 - 호스트
300 - 플래시 메모리100 - Flash memory control device
110 - Host interface unit
120 - memory interface unit
200 - host
300 - Flash memory
Claims (8)
호스트와 제어신호 및 데이터를 송수신하는 호스트 인터페이스부; 및
상기 호스트로부터 쓰기 제어신호와 함께 수신된 쓰기 대상 데이터 및 상기 쓰기 대상 데이터에 대응하여 생성된 에러 정정 코드를 상기 플래시 메모리의 페이지에 저장하되, 상기 쓰기 대상 데이터가 저장되는 데이터 영역에 해당하는 복수의 섹터 중 사전에 설정된 개수의 섹터에 대응하는 영역을 상기 에러 정정 코드의 저장영역으로 추가 할당하는 메모리 인터페이스부;를 포함하며,
상기 메모리 인터페이스부는 상기 페이지를 구성하는 복수의 섹터 중에서 상기 사전에 설정된 개수의 섹터를 제외한 나머지 섹터들에 상기 사전에 설정된 개수의 섹터에 대응하는 영역을 분할하여 추가적인 에러 정정 코드의 저장영역으로 할당하는 것을 특징으로 하는 플래시 메모리 제어장치.A flash memory control apparatus for controlling a flash memory in which data is stored in units of pages and the page has a preset number of sectors,
A host interface unit for transmitting and receiving control signals and data to / from the host; And
And a write control unit for storing the write target data received together with the write control signal from the host and an error correction code generated corresponding to the write target data in a page of the flash memory, And a memory interface unit for allocating, as a storage area of the error correction code, an area corresponding to a predetermined number of sectors of the sector,
The memory interface unit divides the sector corresponding to the predetermined number of sectors into the remaining sectors excluding the predetermined number of sectors among the plurality of sectors constituting the page and allocates the divided sector as a storage area for an additional error correction code Wherein the flash memory is a flash memory.
상기 메모리 인터페이스부는 상기 호스트로부터 수신된 읽기 제어신호에 대응하는 읽기 대상 데이터 및 상기 읽기 대상 데이터와 동일한 페이지에 저장된 에러 정정 코드를 상기 플래시 메모리로부터 독출하는 것을 특징으로 하는 플래시 메모리 제어장치.The method according to claim 1,
Wherein the memory interface unit reads the read target data corresponding to the read control signal received from the host and the error correction code stored in the same page as the read target data from the flash memory.
상기 메모리 인터페이스부는 페이지 내의 각 섹터에 저장된 데이터에 대응하는 에러 정정 코드를 상기 데이터가 저장된 동일한 페이지 내의 상기 에러 정정 코드의 저장영역으로 추가 할당된 섹터에 연속하여 저장하는 것을 특징으로 하는 플래시 메모리 제어장치.3. The method according to claim 1 or 2,
Wherein the memory interface sequentially stores an error correction code corresponding to data stored in each sector in a page in an additional allocated sector as a storage area of the error correction code in the same page where the data is stored, .
상기 페이지는 상기 플래시 메모리가 복수 개 구비된 저장장치에서 서로 다른 플래시 메모리 내의 페이지가 클러스터링되어 단일 동작으로 처리되는 클러스터링 페이지인 것을 특징으로 하는 플래시 메모리 제어장치.3. The method according to claim 1 or 2,
Wherein the page is a clustering page in which pages in different flash memories are clustered and processed in a single operation in a storage device having a plurality of flash memories.
(a) 호스트로부터 쓰기 제어신호와 함께 쓰기 대상 데이터를 수신하는 단계;
(b) 상기 쓰기 대상 데이터에 대응하는 에러 정정 코드를 생성하는 단계; 및
(c) 상기 쓰기 대상 데이터 및 에러 정정 코드를 상기 플래시 메모리의 페이지에 저장하되, 상기 쓰기 대상 데이터가 저장되는 데이터 영역에 해당하는 복수의 섹터 중 사전에 설정된 개수의 섹터에 대응하는 영역을 상기 에러 정정 코드의 저장영역으로 추가 할당하는 단계;를 포함하며,
상기 (c)단계에서, 상기 페이지를 구성하는 복수의 섹터 중에서 상기 사전에 설정된 개수의 섹터를 제외한 나머지 섹터들에 상기 사전에 설정된 개수의 섹터에 대응하는 영역을 분할하여 추가적인 에러 정정 코드의 저장영역으로 할당하는 것을 특징으로 하는 플래시 메모리 제어방법.A flash memory control method for controlling a flash memory in which data is stored in units of pages and the page is composed of a predetermined number of sectors,
(a) receiving data to be written together with a write control signal from a host;
(b) generating an error correction code corresponding to the data to be written; And
(c) storing the write target data and the error correction code in a page of the flash memory, wherein an area corresponding to a predetermined number of sectors among a plurality of sectors corresponding to a data area in which the write target data is stored, Further comprising the step of:
In the step (c), an area corresponding to the predetermined number of sectors is divided into the remaining sectors excluding the predetermined number of sectors among the plurality of sectors constituting the page, To the flash memory.
(d) 상기 호스트로부터 수신된 읽기 제어신호에 대응하는 읽기 대상 데이터 및 상기 읽기 대상 데이터와 동일한 페이지에 저장된 에러 정정 코드를 상기 플래시 메모리로부터 독출하는 단계; 및
(e) 상기 플래시 메모리로부터 독출한 상기 에러 정정 코드에 의해 상기 읽기 대상 데이터의 에러를 정정하여 상기 호스트로 출력하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리 제어방법.6. The method of claim 5,
(d) reading the read target data corresponding to the read control signal received from the host and the error correction code stored in the same page as the read target data from the flash memory; And
(e) correcting an error of the data to be read by the error correction code read from the flash memory and outputting the corrected data to the host.
상기 (c) 단계에서, 페이지 내의 각 섹터에 저장된 데이터에 대응하는 에러 정정 코드를 상기 데이터가 저장된 동일한 페이지 내의 상기 에러 정정 코드의 저장영역으로 추가 할당된 섹터에 연속하여 저장하는 것을 특징으로 하는 플래시 메모리 제어방법.The method according to claim 5 or 6,
Wherein in the step (c), an error correction code corresponding to data stored in each sector in the page is successively stored in a sector allocated additionally as a storage area of the error correction code in the same page where the data is stored Memory control method.
상기 페이지는 상기 플래시 메모리가 복수 개 구비된 저장장치에서 서로 다른 플래시 메모리 내의 페이지가 클러스터링되어 단일 동작으로 처리되는 클러스터링 페이지인 것을 특징으로 하는 플래시 메모리 제어방법.The method according to claim 5 or 6,
Wherein the page is a clustering page in which pages in different flash memories are clustered and processed in a single operation in a storage device having a plurality of flash memories.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110108677A KR101417827B1 (en) | 2011-10-24 | 2011-10-24 | Apparatus and method for controlling flash memory for storing error correction code |
PCT/KR2012/004566 WO2013062204A1 (en) | 2011-10-24 | 2012-06-08 | Device and method for controlling a flash memory for storing an error correction code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110108677A KR101417827B1 (en) | 2011-10-24 | 2011-10-24 | Apparatus and method for controlling flash memory for storing error correction code |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130044555A KR20130044555A (en) | 2013-05-03 |
KR101417827B1 true KR101417827B1 (en) | 2014-07-11 |
Family
ID=48168008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110108677A KR101417827B1 (en) | 2011-10-24 | 2011-10-24 | Apparatus and method for controlling flash memory for storing error correction code |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101417827B1 (en) |
WO (1) | WO2013062204A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467094B2 (en) | 2016-03-04 | 2019-11-05 | Samsung Electronics Co., Ltd. | Method and apparatus for performing data recovery in a raid storage |
US11966589B2 (en) | 2021-08-02 | 2024-04-23 | SK Hynix Inc. | Controller and operating method thereof |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778337A (en) * | 2021-09-10 | 2021-12-10 | 深圳大普微电子科技有限公司 | Solid state disk based on flash memory and data management method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005115562A (en) * | 2003-10-06 | 2005-04-28 | Media Logic:Kk | Flash rom controller |
JP2009157960A (en) * | 2007-12-25 | 2009-07-16 | Hitachi Global Storage Technologies Netherlands Bv | Magnetic recording and playback device mounted with patterned medium |
KR20110093259A (en) * | 2010-02-12 | 2011-08-18 | 삼성전자주식회사 | Nonvolatile memory system and operation method using the same |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7861139B2 (en) * | 2007-01-26 | 2010-12-28 | Micron Technology, Inc. | Programming management data for NAND memories |
-
2011
- 2011-10-24 KR KR1020110108677A patent/KR101417827B1/en active IP Right Grant
-
2012
- 2012-06-08 WO PCT/KR2012/004566 patent/WO2013062204A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005115562A (en) * | 2003-10-06 | 2005-04-28 | Media Logic:Kk | Flash rom controller |
JP2009157960A (en) * | 2007-12-25 | 2009-07-16 | Hitachi Global Storage Technologies Netherlands Bv | Magnetic recording and playback device mounted with patterned medium |
KR20110093259A (en) * | 2010-02-12 | 2011-08-18 | 삼성전자주식회사 | Nonvolatile memory system and operation method using the same |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467094B2 (en) | 2016-03-04 | 2019-11-05 | Samsung Electronics Co., Ltd. | Method and apparatus for performing data recovery in a raid storage |
US11966589B2 (en) | 2021-08-02 | 2024-04-23 | SK Hynix Inc. | Controller and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20130044555A (en) | 2013-05-03 |
WO2013062204A1 (en) | 2013-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10445016B2 (en) | Techniques for storage command processing | |
US8019959B2 (en) | Nonvolatile memory system | |
KR101459861B1 (en) | Stripe-based memory operation | |
US8453033B2 (en) | Semiconductor memory device | |
US20040083334A1 (en) | Method and apparatus for managing the integrity of data in non-volatile memory system | |
US8321757B2 (en) | Method and apparatus for error correction | |
US9898215B2 (en) | Efficient management of page retirement in non-volatile memory utilizing page retirement classes | |
EP2277112B1 (en) | Using programming-time information to support error correction | |
US10062418B2 (en) | Data programming method and memory storage device | |
TWI591643B (en) | Data protecting method, memory control circuit unit and memory storage device | |
US20090024787A1 (en) | Data writing method and apparatus | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
KR20210000877A (en) | Apparatus and method for improving input/output throughput of memory system | |
US20120233382A1 (en) | Data storage apparatus and method for table management | |
JP6342013B2 (en) | Method, system and computer program for operating a data storage system including a non-volatile memory array | |
US10223022B2 (en) | System and method for implementing super word line zones in a memory device | |
US11169873B2 (en) | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive | |
US8775902B2 (en) | Memory controller and storage device | |
KR101417827B1 (en) | Apparatus and method for controlling flash memory for storing error correction code | |
US9417809B1 (en) | Efficient management of page retirement in non-volatile memory utilizing page retirement classes | |
US8533549B2 (en) | Memory system and computer system | |
JP6491482B2 (en) | Method and / or apparatus for interleaving code words across multiple flash surfaces | |
CN110600070B (en) | Coding and repairing method for improving repairing performance of solid state disk array system | |
US10713160B1 (en) | Data writing method, memory control circuit unit and memory storage device | |
US20230161666A1 (en) | Ecc parity biasing for key-value data storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180702 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190624 Year of fee payment: 6 |