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 PDF

Info

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
Application number
KR1020110108677A
Other languages
Korean (ko)
Other versions
KR20130044555A (en
Inventor
송용호
정상혁
정재형
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020110108677A priority Critical patent/KR101417827B1/en
Priority to PCT/KR2012/004566 priority patent/WO2013062204A1/en
Publication of KR20130044555A publication Critical patent/KR20130044555A/en
Application granted granted Critical
Publication of KR101417827B1 publication Critical patent/KR101417827B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity 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

에러 정정 코드의 저장을 위한 플래시 메모리 제어장치 및 방법{Apparatus and method for controlling flash memory for storing error correction code}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to an apparatus and a method for controlling a flash memory for storing an error correction code,

본 발명은 에러 정정 코드의 저장을 위한 플래시 메모리 제어장치 및 방법에 관한 것으로, 보다 상세하게는, 플래시 메모리에 저장된 데이터의 에러 정정시에 사용되는 에러 정정 코드가 저장되는 과정을 제어하는 장치 및 방법에 관한 것이다.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 memory control apparatus 100 according to the present invention operates between a host 200 and a flash memory 300, and includes a host interface unit 110 and a memory interface unit 120. The flash memory control apparatus 100 may further include a buffer unit (not shown) in which data transferred between the host 200 and the flash memory 300 is stored.

플래시 메모리 제어장치(100)에서 호스트 인터페이스부(110)는 호스트(200)와 제어신호 및 데이터를 송수신하며, 메모리 인터페이스부(120)는 호스트(200)로부터 쓰기 제어신호와 함께 수신된 쓰기 대상 데이터 및 쓰기 대상 데이터에 대응하여 생성된 에러 정정 코드를 플래시 메모리(300)의 페이지에 저장한다.The host interface unit 110 transmits and receives control signals and data to and from the host 200 in the flash memory control apparatus 100. The memory interface unit 120 receives the write target data And the error correction code generated corresponding to the write target data in the page of the flash memory 300. [

플래시 메모리(300)는 데이터 삭제 연산의 기본 단위인 복수의 블록으로 구성되며, 블록은 읽기 및 쓰기 연산의 기본 단위인 복수의 페이지로 구성된다. 또한 페이지는 복수의 섹터로 구성되며, 각각의 섹터는 실제 데이터가 저장되는 데이터 영역(data area)과 데이터 영역을 관리하기 위한 에러 정정 코드와 같은 정보가 저장되는 스페어 영역(spare area)으로 구성된다.The flash memory 300 is constituted by a plurality of blocks, which are basic units of data erase operations, and the blocks are composed of a plurality of pages which are basic units of read and write operations. The page is composed of a plurality of sectors, and each sector is composed of a data area for storing actual data and a spare area for storing information such as an error correction code for managing the data area .

도 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 memory interface unit 120 of the flash memory control apparatus 100 according to the present invention further allocates the ECC storage area in which the error correction code is stored by adjusting the number of sectors constituting the page, The same effect as that of the increase in the number of pixels is obtained.

도 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 flash memory 300 are the same, but the number of sectors is reduced to 31 by one. In the page of the flash memory 300 shown in FIG. 5, each sector is composed of a data area of 512 bytes and an ECC storage area of (32 +?) Bytes, where? = (The size of the reduced sector / )to be.

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 flash memory 300 as the ECC storage area, the memory interface unit 120 stores the error correction code for the write target data in the same page as the write target data, Since the error correction code is stored in succession to the data, it is possible to perform error correction without delay in accordance with the sector unit operation of the host.

이후 호스트(200)로부터 플래시 메모리(300)에 저장된 데이터의 읽기 제어신호가 수신되면, 메모리 인터페이스부(120)는 읽기 제어신호에 대응하는 읽기 대상 데이터와 읽기 대상 데이터에 대응하는 에러 정정 코드를 플래시 메모리(300)의 동일 페이지로부터 독출하고, 읽기 대상 데이터에 대한 에러 정정을 수행한 후 호스트 인터페이스부(110)를 통해 호스트(200)로 출력하게 된다.Then, when the read control signal of the data stored in the flash memory 300 is received from the host 200, the memory interface unit 120 reads the read target data corresponding to the read control signal and the error correction code corresponding to the read target data Reads data from the same page of the memory 300, performs error correction on the data to be read, and outputs the data to the host 200 through the host interface unit 110.

도 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 flash memory 300. As shown in FIG. Referring to FIG. 6, the number of sectors for data storage is adjusted to secure a storage area for an error correction code, thereby storing an error correction code of an increased bit for high performance error correction in an error correction method such as a BCH code algorithm .

다만, 본 발명에 따른 플래시 메모리 제어장치(100)가 데이터 영역의 크기를 줄이고 ECC 저장영역의 크기를 증가시킴에 따라 호스트의 읽기/쓰기 요청이 플래시 메모리(300)의 페이지 크기와 같은 단위로 할당되는 경우에는 성능 저하가 발생할 것이 예상될 수 있다. 그러나 최근 널리 사용되는 SSD 제품에 구비된 플래시 메모리(300)는 페이지의 크기가 16 KB 이상으로 확장되어 사용되며, 나아가 8개 혹은 16개의 페이지가 클러스터링되어 하나의 클러스터링 페이지로 사용되고 있다. 실제로 수십 개의 낸드 플래시 메모리가 장착된 SSD를 용이하게 관리하거나 FTL의 맵 테이블 크기를 줄이기 위해 페이지 클러스터링 기법이 필수적으로 요구되므로 성능 저하는 크게 발생하지 않는다.However, since the flash memory control apparatus 100 according to the present invention reduces the size of the data area and increases the size of the ECC storage area, the read / write request of the host is allocated in units equal to the page size of the flash memory 300 The performance degradation may be expected to occur. However, the size of the flash memory 300 included in the SSD product, which is currently widely used, is expanded to 16 KB or more, and furthermore, 8 or 16 pages are clustered and used as one clustering page. In practice, the page clustering technique is indispensable in order to easily manage the SSD equipped with dozens of NAND flash memories or to reduce the size of the map table of the FTL.

도 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).

Figure 112011083033407-pat00001
Figure 112011083033407-pat00001

여기서, 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 memory management apparatus 100 according to the present invention. Hereinafter, the CFLRU scheme applied to the present invention will be referred to as an O-CFLRU scheme. Specifically, in the O-CFLRU technique, the allocation or flush of a buffer is performed page by page by grouping the instructions of the sector for the same page regardless of the timing and type. In the O-CFLRU, the received command is classified according to the size of the command, that is, the size of the sector. If the size of the sector is larger than a preset reference value (for example, 32), the command is directly transmitted to the NAND flash memory , Instructions smaller in size than the reference value are stored in the buffer and are merged or 'in-place' updated.

이상에서 설명한 버퍼 관리 알고리즘인 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 host interface unit 110 of the flash memory control apparatus 100 according to the present invention receives a data write control signal from the host 200 (S1010) A corresponding error correction code is generated (S1020). The error correction code may be generated by an error correction unit (not shown) separately provided in the memory interface unit 120 or the flash memory control device 100. [

메모리 인터페이스부(120)는 쓰기 대상 데이터 및 그에 대응하는 에러 정정 코드를 플래시 메모리(300)에 저장하되, 앞에서 설명한 바와 같이 쓰기 대상 데이터가 저장될 페이지의 일부 섹터, 예를 들면 1~2개의 섹터에 대응하는 영역을 에러 정정 코드의 저장을 위한 ECC 저장영역으로 할당한다(S1030).The memory interface unit 120 stores the write target data and the corresponding error correcting code in the flash memory 300. As described above, the memory interface unit 120 stores the write target data in some sectors of the page, for example, one or two sectors To the ECC storage area for storing the error correction code (S1030).

이후 호스트(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 memory interface unit 120 reads the error correction code stored in the same page as the read target data and the read target data corresponding to the read control signal Reads the data from the flash memory 300 (S1050), corrects the error of the data to be read using the error correction code, and outputs the error to the host 200 (S1060). The error correction process may also be performed by an error correction unit (not shown) separately provided in the flash memory control device 100.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 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.
제 1항에 있어서,
상기 메모리 인터페이스부는 상기 호스트로부터 수신된 읽기 제어신호에 대응하는 읽기 대상 데이터 및 상기 읽기 대상 데이터와 동일한 페이지에 저장된 에러 정정 코드를 상기 플래시 메모리로부터 독출하는 것을 특징으로 하는 플래시 메모리 제어장치.
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.
제 1항 또는 제 2항에 있어서,
상기 메모리 인터페이스부는 페이지 내의 각 섹터에 저장된 데이터에 대응하는 에러 정정 코드를 상기 데이터가 저장된 동일한 페이지 내의 상기 에러 정정 코드의 저장영역으로 추가 할당된 섹터에 연속하여 저장하는 것을 특징으로 하는 플래시 메모리 제어장치.
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, .
제 1항 또는 제 2항에 있어서,
상기 페이지는 상기 플래시 메모리가 복수 개 구비된 저장장치에서 서로 다른 플래시 메모리 내의 페이지가 클러스터링되어 단일 동작으로 처리되는 클러스터링 페이지인 것을 특징으로 하는 플래시 메모리 제어장치.
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.
제 5항에 있어서,
(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.
제 5항 또는 제 6항에 있어서,
상기 (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.
제 5항 또는 제 6항에 있어서,
상기 페이지는 상기 플래시 메모리가 복수 개 구비된 저장장치에서 서로 다른 플래시 메모리 내의 페이지가 클러스터링되어 단일 동작으로 처리되는 클러스터링 페이지인 것을 특징으로 하는 플래시 메모리 제어방법.
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.
KR1020110108677A 2011-10-24 2011-10-24 Apparatus and method for controlling flash memory for storing error correction code KR101417827B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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