KR101653999B1 - Storage system based on nand flash and data retention improving method - Google Patents

Storage system based on nand flash and data retention improving method Download PDF

Info

Publication number
KR101653999B1
KR101653999B1 KR1020150046818A KR20150046818A KR101653999B1 KR 101653999 B1 KR101653999 B1 KR 101653999B1 KR 1020150046818 A KR1020150046818 A KR 1020150046818A KR 20150046818 A KR20150046818 A KR 20150046818A KR 101653999 B1 KR101653999 B1 KR 101653999B1
Authority
KR
South Korea
Prior art keywords
nand flash
flash memory
parity information
block
garbage collection
Prior art date
Application number
KR1020150046818A
Other languages
Korean (ko)
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 KR1020150046818A priority Critical patent/KR101653999B1/en
Application granted granted Critical
Publication of KR101653999B1 publication Critical patent/KR101653999B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory

Abstract

The present invention relates to a storage system based on a NAND flash which comprises: at least one NAND flash memory including a plurality of blocks recording data; and a controller configured to execute data retention enhancing firmware to manage data. The controller records parity information for error correction in an arbitrary page of a preset specific block among the plurality of blocks by the execution of the firmware and performs scrubbing with respect to the data recorded in the plurality of blocks by using an error correction code and the parity information at a predetermined timing. Therefore, the storage system can increase durability of the NAND flash memory.

Description

낸드 플래시 기반의 스토리지 시스템 및 데이터 보존 강화 방법{STORAGE SYSTEM BASED ON NAND FLASH AND DATA RETENTION IMPROVING METHOD} NAND flash-based storage systems, and enhance the data storage method {STORAGE SYSTEM BASED ON NAND FLASH AND DATA RETENTION IMPROVING METHOD}

본 발명은 낸드 플래시 기반의 스토리지 시스템 및 데이터 보존 강화 방법에 관한 것이다. The invention relates to a method of strengthening a NAND flash-based storage system and data storage.

낸드 플래시 기반의 스토리지는 빠른 속도 및 낮은 전력 소비 등의 장점으로 컴퓨터 시스템 및 모바일 디바이스 저장장치로 활용되고 있다. NAND flash-based storage is being utilized at a faster rate and benefits on a computer system, such as low power consumption and mobile device storage. 낸드 플래시 기반의 스토리지는 데이터를 저장하는 최소 단위인 셀(cell)에 데이터를 저장하는 방식에 따라 SLC(single level cell), MLC(multi level cell) 및 TLC(triple level cell) 등으로 구분할 수 있다. NAND flash-based storage may be divided into such SLC (single level cell), MLC (multi level cell) and TLC (triple level cell) according to the method of storing data in a cell (cell) which is the minimum unit for storing data .

SLC는 낸드 플래시 메모리에 포함된 하나의 셀에 1비트(bit)를 저장한다. SLC stores 1-bit (bit) in a cell included in the NAND flash memory. MLC는 하나의 셀에 2비트의 정보를 저장하며, TLC는 하나의 셀에 3비트의 정보를 저장한다. MLC stores two bits of information in one cell and, TLC stores the 3-bit information in one cell. SLC에 비하여 MLC 및 TLC는 저장 밀도가 높아졌기 때문에 비용이 저렴하다. Compared to SLC MLC and TLC is cheaper because their increased storage density. 그리고 MLC 및 TLC는 동일한 크기의 메모리인 경우, SLC에 비하여 읽기, 쓰기 및 지우기 연산에 소요되는 시간이 적다. And MLC and TLC is the case of the same size memory, the less time it takes to read, write and erase operation as compared to SLC.

그러나 P/E 횟수(Program erase cycles)가 제한된 낸드 플래시 기반의 스토리지의 특성에 따라, MLC 및 TLC는 SLC에 비하여 P/E 횟수가 적어지게 되므로, 낸드 플래시 기반의 스토리지의 수명이 짧아질 수 있다. However, MLC and TLC is because the P / E count becomes less than the SLC, there is a NAND flash-based storage life may be shortened depending on the nature of the P / E number (Program erase cycles) has a limited NAND flash-based storage . 또한, MLC 및 TLC는 장기간 사용함에 따라, 비트 에러율(bit error rate)이 증가하여 안정성이 낮아진다는 단점이 있다. In addition, MLC and TLC has the disadvantage of lowering the reliability increases, the bit error rate (bit error rate) in accordance with a long period is enabled.

특히 낸드 플래시 기반의 스토리지의 경우 P/E 횟수가 증가하거나 데이터의 보존 기간(data retention period)이 증가함에 따라 비트 에러율도 증가하게 된다. In particular, the bit error rate is increased as the case of the NAND flash-based storage increases the P / E count is increased or the retention period (data retention period) of the data. 또한, 낸드 플래시 기반의 스토리지에서 랜덤 읽기 에러가 흔하게 발생할 수 있으므로 데이터 무결성(data integrity)을 유지하기 위하여 에러정정코드(Error correction code; ECC) 등이 필요하다. Further, since the error correction code to the random reading error may occur frequently in the NAND flash-based storage to ensure data integrity (data integrity); the like (Error correction code ECC) is required.

이와 관련하여, 한국 등록특허공보 제10-2009-7009421호(발명의 명칭: 에러 억제를 위해 랜더 마이징하는 플래시 메모리 디바이스, 시스템 및 방법)는 비휘발성 메모리 및 오리지널 데이터의 크기를 보존하면서, 비휘발성 메모리에 저장될 오리지널 랜드마징하고, 오리지널 데이터를 메모리에 저장하고, 오리지널 데이터에 대한 요청에 응답하여, 오리지널 데이터를 검색하고 디랜더마이닝하고, 요청하는 엔티티를 엑스포팅하는 컨트롤러 및 회로에 대하여 기술을 개시하고 있다. In this regard, the Korea Patent Application No. 10-2009-7009421 No. (title of the invention: the flash memory device to render customization for error suppression, the system and method) while preserving the size of the nonvolatile memory and the original data, the non-volatile original land majing be stored in a memory, and storing the original data in the memory, in response to a request for the original data, to retrieve the original data, and D render mining and described with respect to the X port the entity requesting controller and circuit It discloses.

또한, 한국 등록특허공보 제10-2010-0075352호(발명의 명칭: 불휘발성 메모리 장치 및 그 것의 동작 방법)는 리드 동작 시 메모리 셀 블록 내에서 단위 그룹당 발생된 에러 비트의 수가 에러정정기술을 통해 보정 가능한 최대 비트 수와 같거나, 최대 비트 수보다는 적지만 정해놓은 비트 수보다 많은 경우, 해당 메모리 셀 블록에 저장된 데이터를 다른 메모리 셀 블록으로 옮기는 카피 백 동작을 한 후 해당 메모리 셀 블록을 사용하지 않도록 설정하는 인밸리드 블록을 실시하는 것에 대한 기술을 개시하고 있다. Also, Korea Patent Application No. 10-2010-0075352 No. (title of the invention: the non-volatile memory device and a method of operation of what) is the number of error bits occurring per unit cell in the memory block during the read operation by the error correction technique correction equal to the maximum number of bits or, in many cases than the number of bits placed determined only less than the maximum number of bits, after the copy back operation for transferring data stored in the memory cell block to another memory cell block not using the memory cell block the techniques about to conduct de Valley block to turn off discloses.

본 발명의 일 실시예는 데이터 보존 기간이 증가함에 따라 발생할 수 있는 에러를 감소시켜 데이터를 보존하고, 수명을 연장시킬 수 있는 낸드 플래시 기반의 스토리지 시스템 및 데이터 보존 강화 방법을 제공하는데 그 목적이 있다. One embodiment of the present invention is there is provided a data retention period increases, can reduce the error retention, enhance NAND flash-based storage system and data storage which can extend the life of the data how occur depending .

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다. However, SUMMARY OF THE INVENTION An example of this embodiment is not limited to the aspect as described above, may also be present another technical problem.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 낸드 플래시 기반의 스토리지 시스템은 데이터를 기록하는 복수의 블록을 포함하는 적어도 하나의 낸드 플래시 메모리; As a technical means for achieving the above-mentioned technical problem, the NAND flash-based storage system of the first aspect of the invention comprises at least one NAND flash memory including a plurality of blocks of recording data; 및 데이터 보존 강화 펌웨어를 실행하여 데이터를 관리하는 컨트롤러를 포함한다. Run and retention enhanced firmware includes a controller that manages the data. 이때, 컨트롤러는 펌웨어의 실행에 의해서, 복수의 블록 중 기 설정된 특정 블록의 임의의 페이지에 에러정정을 위한 패리티 정보를 기록하고, 소정의 타이밍에 에러정정코드 및 패리티 정보를 이용하여 복수의 블록에 기록된 데이터에 대하여 스크러빙(Scurbbing)을 수행한다. At this time, the controller is a plurality of blocks by using a write parity information for error correction in any of the pages of a particular block is set group of a plurality of blocks, by a firmware execution, error correction in a predetermined timing code and parity information, It performs a scrubbing (Scurbbing) with respect to the recorded data.

또한, 본 발명의 제 2 측면에 따른 낸드 플래시 기반의 스토리지 시스템의 데이터 보존 강화 방법은 낸드 플래시 메모리에서 데이터를 기록하는 복수의 블록 중 기 설정된 특정 블록의 임의의 페이지에 에러정정을 위한 패리티 정보를 기록하는 단계; In addition, enhanced data retention of the NAND flash-based storage system according to the second aspect of the present invention, the parity information for error correction in any of the pages of a particular block is set group of a plurality of blocks of recording data in the NAND flash memory and recording; 및 소정의 타이밍에 패리티 정보를 이용하여, 복수의 블록에 기록된 데이터에 대하여 스크러빙(Scurbbing)을 수행하는 단계를 포함한다. And using the parity information in a predetermined timing, and performing a scrubbing (Scurbbing) with respect to the data recorded in the plurality of blocks.

그리고 본 발명의 제 3 측면에 따른 낸드 플래시 메모리는 데이터를 기록하는 복수의 블록 중 임의의 페이지에 에러정정을 위한 패리티 정보를 기록한 특정 블록을 포함한다. And a NAND flash memory according to the third aspect of the present invention of a plurality of blocks for recording the data including a particular block record parity information for error correction in any of the page. 이때, 복수의 블록에 기록된 데이터는 소정의 타이밍에 에러정정코드 및 패리티 정보를 이용하여 스크러빙(Scrubbing)된다. At this time, the data recorded in the plurality of blocks is scrubbed (Scrubbing) using the error correction codes and parity information at a predetermined timing.

전술한 과제 해결 수단 중 어느 하나에 의하면, 본 발명의 일 실시예는 소정의 타이밍에 에러정정코드 및 패리티 정보를 이용하여 복수의 블록이 기록된 데이터에 대하여 스크러빙을 수행함으로써, 교정 불가한 데이터 보유 에러율을 감소시키고, 낸드 플래시 메모리의 수명을 연장할 수 있다. According to any one of the above problems means issue, an embodiment of the present invention by carrying out the scrubbing with respect to the plurality of block record data by using the error correction codes and parity information at a predetermined timing, holds a correction No data reducing the error rate and, it is possible to extend the life of the NAND flash memory.

그리고 본 발명의 일 실시예는 가비지 컬렉션 주기 및 세이프 주기를 비교하여, 가비지 컬렉션 및 스크러빙을 수행할 수 있으므로, 낸드 플래시 메모리의 성능 및 수명에 영향을 미칠 수 있는 읽기, 쓰기 및 지우기 연산을 줄일 수 있다. And one embodiment of the present invention compares the garbage collection cycle and the safe period, it can perform garbage collection and scrubbing, reading that can affect the performance and life of the NAND flash memory, write and erase may reduce the operational have. 또한, 본 발명의 일 실시예는 스크러빙을 수행하기 위하여, 에러정정코드 및 패리티 정보를 이용하므로, 에러정정코드만을 이용하는 경우에 비하여 많은 양의 데이터의 오류를 수정할 수 있다. Further, one embodiment of the present invention may correct the errors of a large amount of data as compared with the case in order to perform a scrub, since the use of error correction codes and parity information, using only the error correction code.

도 1은 낸드 플래시 기반 스토리지 시스템에서 시간에 따른 교정 불가 페이지 에러율의 변화를 도시한 예시도이다. Figure 1 is an illustration showing a change in the calibration page and not the error rate with time in the NAND Flash-based storage system, Fig.
도 2는 본 발명의 일 실시예에 따른 낸드 플래시 기반 스토리지 시스템의 구성도이다. 2 is a block diagram of a NAND flash-based storage system, in accordance with an embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템에서 패리티 정보 기록에 대한 예시도이다. Figure 3 is an exemplary view for parity information written in the NAND flash-based storage system, in accordance with an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템에서 패리티 정보 기록에 대한 예시도이다. Figure 4 is an exemplary view for parity information written in the NAND flash-based storage system, in accordance with an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 스크러빙을 설명하기 위한 도면이다. 5 is a view for explaining the scrubbing according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 스크러빙 및 가비지 컬렉션 수행의 예시도이다. Figure 6 is an exemplary view of a scrubbing and garbage collection performed in accordance with one embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템의 데이터 보존 강화 방법의 순서도이다. 7 is a flow diagram of a method for enhanced data retention NAND flash-based storage system, in accordance with an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템의 스크러빙 및 가비지 컬레션 수행 방법의 순서도이다. Figure 8 is a flow diagram of a method to perform the scrubbing and garbage illustration of a NAND flash-based storage system, in accordance with an embodiment of the present invention Cloths.
도 9는 본 발명의 일 실시예에 따른 낸드 플래시 메모리의 구성도이다. 9 is a configuration diagram of a NAND flash memory according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. In the following a description will be given of an embodiment of the present invention will be fully self-of ordinary skill to be easily carried out in the pertaining the present invention with reference to the accompanying drawings art. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. However, the invention is not to be implemented in many different forms and limited to the embodiments set forth herein. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. And the part not related to the description in order to clearly describe the present invention in the drawings is omitted.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. In the specification, when that any part is "connected" with another part, which is also included if it is the case that is "directly connected to", as well as, interposed between the other element or intervening "electrically connected" . 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. In addition, it is assuming that any part "includes" a certain component, which is not to exclude other components not specifically described against which means that it is possible to further include other components.

다음은 도 1을 참조하여 낸드 플래시 기반 스토리지 시스템(에서의 교정 불가 에러를 설명한다. Next, refer to FIG. 1 will be described in the non-error correction in the NAND flash-based storage systems (

도 1은 낸드 플래시 기반 스토리지 시스템에서 시간에 따른 교정 불가 페이지 에러율(uncorrectable page error rate)의 변화를 도시한 예시도이다. Figure 1 is an illustration showing a change in the non-page correction error rate (page uncorrectable error rate) over time in the NAND Flash-based storage system, Fig.

낸드 플래시 기반 스토리지 시스템은 P/E 횟수가 증가함에 따라 교정 불가 페이지 에러율이 증가할 수 있다. NAND flash-based storage system can be calibrated Page error rate can not be increased as the P / E count is increased. 또한, 낸드 플래시 기반 스토리지 시스템은 데이터를 보유하는 시간(일)이 길어짐에 따라 교정 불가 페이지 에러율이 증가할 수 있다. In addition, the NAND flash-based storage system has the page can not be corrected error rate can increase with the longer the time (days) for holding data. 이러한 현상은 SLC에 비하여 단일 셀에 많은 데이터를 저장하는 MLC 또는 TLC에서 더욱 심각해 질 수 있다. This phenomenon can be more serious in the MLC or TLC to store more data on a single cell compared to SLC.

특히, 낸드 플래시 기반 스토리지 시스템은 낸드 플래시 메모리가 지니는 고유의 특성상 덮어쓰기를 수행할 수 없다. In particular, NAND flash-based storage system can not be written to overwrite the unique nature having a NAND flash memory. 그러므로 낸드 플래시 기반 스토리지 시스템은 쓰기 연산을 수행할 때, 낸드 플래시 메모리의 미사용 페이지에 데이터를 기록한다. Therefore, the NAND flash-based storage system may write data to the time to perform a write operation, an unused page in the NAND flash memory. 그리고 낸드 플래시 기반 스토리지 시스템은 낸드 플래시 메모리에 이미 기록된 데이터가 업데이트 되는 경우, 원래 데이터가 기록되었던 페이지를 무효화하고, 다른 위치의 미사용 페이지(free page)에 업데이트 된 데이터를 기록하게 된다. And if the NAND flash-based storage system, in which the already recorded data on the NAND flash memory update, invalidate a page that was the original data is recorded, thereby recording the updated data to an unused page in the other position (free page). 이때, 새로 데이터가 기록된 페이지를 유효 페이지(valid page)라고 하고, 이전에 데이터가 기록된 이후 무효화된 페이지를 무효 페이지(invalid page)라고 한다. At this time, as a new page on which data is recorded valid page (valid page) is called, and the invalid page, an invalid page after the data has been previously recorded (page invalid).

낸드 플래시 기반 스토리지 시스템은 무효 페이지가 증가함에 따라, 데이터를 저장할 공간이 부족해 질 수 있다. NAND flash-based storage system, may be insufficient space to store the data as invalid pages increases. 그러므로 낸드 플래시 기반 스토리지 시스템은 무효 페이지를 지우는 가비지 컬렉션(garbage collection)을 수행한다. Therefore, NAND flash-based storage system performs garbage collection (garbage collection) to erase invalid pages.

이때, 낸드 플래시 기반 스토리지 시스템은 가비지 컬렉션을 통하여 업데이트가 자주 발생하는 핫 블록(hot block)의 에러를 정정할 수 있다. At this time, the NAND flash-based storage system can correct the error of the hot block for updating frequently occurs through the garbage collection (hot block). 그러나 업데이트가 자주 일어나지 않고, 데이터 보존 기간이 비교적 긴 콜드 블록(cold block)의 경우에는 가비지 컬렉션을 수행하지 않기 때문에 에러가 수정되지 않을 수 있다. However, the update does not occur frequently, can be the data retention period in the case of relatively long cold block (cold block), the error is not corrected because it does not perform a garbage collection. 그러므로 낸드 플래시 기반 스토리지 시스템은 콜드 블록 등을 위하여 긴 데이터 보존 기간 동안 데이터를 유지할 수 있는 방법으로 데이터 복구가 필요하다. Therefore, the NAND flash-based storage system is a data recovery needed in a way that can keep data for a long data retention time or the like to a cold block.

종래의 낸드 플래시 기반 스토리지 시스템은 이러한 문제를 해결하기 위하여, 주기적으로 스크러빙을 시행한다. Conventional NAND flash-based storage systems, scrubbing performed periodically in order to solve this problem. 이때, 스크러빙은 에러정정코드 기반의 기법 중 하나로 주기적인 메모리 검사를 통하여 검출되는 에러를 수정하는 것이다. At this time, the scrubbing is to correct the error is detected by the periodic memory test in one of the error correction code-based techniques. 스크러빙의 실행은 비교적 간단하다. Execution of scrubbing is relatively simple. 그러나 스크러빙을 자주 실행하는 경우에는 낸드 플래시 기반 스토리지 시스템의 성능이 저하되고, 수명을 단축할 수 있다는 단점이 있다. However, if you frequently run the scrubbing, the performance of NAND flash-based storage system is reduced, there is a disadvantage that can shorten life.

또한, 도 1을 참조하면, 종래의 낸드 플래시 기반 스토리지 시스템에서는 P/E 횟수가 증가함에 따라 가비지 컬렉션 및 스크러빙 등의 기법을 수행하더라도 시간이 지남에 따라 데이터의 교정 불가 페이지 에러가 증가할 수 있다. Also, Referring to Figure 1, even in the conventional NAND flash-based storage system, perform techniques such as garbage collection and scrubbing, as P / E count is increased it is possible to increase the correction can not page error of the data over time, . 특히, 종래의 낸드 플래시 기반 스토리지 시스템은 교정 불가 페이지 에러의 임계값으로 알려져 있는 10xE -15 을 초과하는 경우, 낸드 플래시 메모리 및 시스템의 안정성을 보장할 수 없을 수 있다. In particular, the conventional NAND flash-based storage system may not be able to ensure the stability of the NAND flash memory and the system, if it exceeds the 10xE -15, known as the threshold value of the error correction can not page. 그러므로 낸드 플래시 기반 스토리지 시스템의 데이터 보존 강화 장치 및 방법이 필요하다. Therefore, it is necessary enhanced data retention of the NAND flash-based storage system, apparatus and method.

다음은 도 2 내지 도 8을 참조하여 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템(200)을 설명한다. The following describes the storage system 200 of the NAND flash-based, in accordance with an embodiment of the present invention will be described with reference to FIG. 2 to FIG.

도 2는 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템(200)의 구성도이다. 2 is a block diagram of the storage system 200 of the NAND flash based according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 낸드 플래시 기반 스토리지 시스템(200)은 하나 이상의 낸드 플래시 메모리(210), 메모리(220) 및 컨트롤러(230)를 포함한다. NAND flash-based storage system 200 according to one embodiment of the present invention comprise at least one NAND flash memory 210, a memory 220 and a controller 230.

이때, 낸드 플래시 메모리(210)는 데이터를 기록하는 복수의 블록을 포함한다. At this time, the NAND flash memory 210 includes a plurality of blocks of recording data. 그리고 낸드 플래시 메모리(210)에서 블록은 데이터가 저장되는 기본 단위인 복수 개의 페이지를 포함한다. And in the NAND flash memory 210. The block includes a plurality of pages, the basic unit in which data is stored. 낸드 플래시 메모리(210)는 페이지 단위로 읽고 쓰기 연산을 수행하며, 블록 단위로 지우기 연산을 수행한다. NAND flash memory 210 performs the read and write operations in page units, and performs an erase operation on a block-by-block basis.

메모리(220)에는 데이터 보존 강화 펌웨어(firmware)가 저장된다. A memory strengthening 220, data storage firmware (firmware) is stored. 여기에서, 메모리(220)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전기가 필요한 휘발성 저장장치를 통칭하는 것이다. Here, the memory 220 is to collectively refer to a volatile storage device that requires electricity in order to maintain the non-volatile storage device and stored information that does not need to be powered to keep the stored information. 또한, 메모리(220)는 별도의 장치로 낸드 플래시 기반 스토리지 시스템(200)에 포함될 수 있으며, 컨트롤러(230)와 통합되어 구현될 수 있다. In addition, the memory 220 may be implemented may be included in the NAND flash-based storage system 200 as a separate unit, integrated with the controller 230.

컨트롤러(230)는 낸드 플래시 기반 스토리지 시스템(200)을 하드 디스크 드라이브와 같은 디스크 드라이브처럼 사용할 수 있도록 일반적인 파일 시스템(file system) 인터페이스(interface)를 제공한다. Controller 230 provides a NAND flash-based storage system 200, the common file system (file system) interface that can be used like a disk drive such as a hard disk drive (interface). 이때, 컨트롤러(230)는 SoC(system on chip)으로 컴퓨터 장치와 독립적으로 낸드 플래시 메모리(210)를 제어할 수 있다. At this time, the controller 230 may control the NAND flash memory 210 independently of the computer device as SoC (system on chip).

혹은 컨트롤러(230)는 플래시 변환 계층(flash translation layer; FTL)을 통해 낸드 플래시 메모리(210)를 제어할 수 있다. Or controller 230 may flash translation layer; it is possible to control the NAND flash memory 210 through the (flash translation layer FTL). 이때, 플래시 변환 계층은 기존의 운영체제의 파일 시스템이 하드 디스크 드라이브와 달리 물리적인 섹터(sector)가 없는 낸드 플래시 메모리(210)을 사용하기 위하여, 물리적인 블록과 페이지를 논리적인 섹터 구조로 변환할 수 있다. At this time, flash conversion layer to be converted, a physical block and a page in a logical sector structure, in order to use the NAND flash memory 210 without a physical sector (sector), unlike a file system of an existing operating system, a hard disk drive can.

컨트롤러(230)는 메모리(220)에 저장된 데이터 보존 강화 펌웨어를 실행하여, 낸드 플래시 메모리(210)에 기록되는 데이터를 관리한다. Controller 230 executes the firmware stored in the data storage enhance the memory 220, and manages the data to be written to the NAND flash memory 210. 이를 위하여, 먼저 컨트롤러(230)는 낸드 플래시 메모리(210)의 복수 개의 블록 중 기 설정된 특정 블록의 임의의 페이지에 에러정정을 위한 패리티(parity) 정보를 기록한다. To this end, first, the controller 230 writes the parity (parity) information for error correction in any of the pages of a particular block of the plurality of predetermined block of the NAND flash memory 210. 그리고 컨트롤러(230)는 소정의 타이밍에 기록된 패리티 정보 및 에러정정코드에 기초하여 복수의 블록에 기록된 데이터에 대하여, 스크러빙을 수행한다. And the controller 230, performs the scrubbing against the data recorded in the plurality of blocks based on the parity information, and the error correction code recorded in the predetermined timing.

이때, 패리티 정보가 저장되는 특정 블록은 콜드(cold) 블록이 될 수 있다. At this time, the specific block being the parity information is stored may be a cold (cold) block. 블록은 핫(hot) 블록과 콜드블록으로 구분할 수 있다. Block can be divided into a hot (hot) blocks and cold blocks. 이때, 핫 블록은 데이터가 자주 업데이트 되므로, 콜드 블록에 비하여 저장된 데이터의 보존 기간이 짧다. At this time, the hot-block, data is frequently updated, a shorter retention time than that of the data stored in the cold block. 그리고 핫 블록은 잦은 업데이트에 의하여 발생할 수 있는 무효 페이지에 대한 가비지 컬렉션을 수행할 수 있는 가능성이 크므로, 가비지 컬렉션을 통하여 별도의 패리티 정보 없이 에러를 수정할 수 있다. And a hot block to the greater possibility to perform garbage collection for the disabled that may arise by the frequent updates page, you can fix the error without any parity information through garbage collection. 그러므로 컨트롤러(230)는 저장된 데이터의 보존 기간이 비교적 길고, 가비지 컬렉션을 수행할 가능성이 적은 콜드 블록에 패리티 정보를 기록할 수 있다. Therefore, the controller 230 may write the parity information on the age of the stored data is relatively long, a small cold block likely to perform a garbage collection.

그리고 컨트롤러(230)는 소정의 타이밍에 기록된 패리티 정보 및 에러정정코드에 기초하여 복수의 블록에 기록된 데이터에 대하여, 스크러빙을 수행할 수 있다. And the controller 230 relative to the data recorded in the plurality of blocks based on the parity information, and the error correction code recorded in the predetermined timing, it is possible to perform a scrub. 여기에 대해서 도 3 및 도 4를 참조하여 설명한다. Here it will be described with reference to Figs. 3 and 4 with respect to.

도 3 및 도 4는 본 발명의 일 실시예에 따른 낸드 플래시 기반 스토리지 시스템(200)에서 패리티 정보 기록에 대한 예시도이다. 3 and 4 is an exemplary view for parity information written in the NAND flash-based storage system 200 according to one embodiment of the invention.

도 3을 참조하면, 낸드 플래시 기반 스토리지 시스템(200)은 4개의 낸드 플래시 메모리(310 내지 340)를 포함한다. 3, the NAND flash-based storage system 200 includes four NAND flash memory (310 to 340). 또한, 낸드 플래시 기반 스토리지 시스템(200)은 호스트 인터페이스(host interface; 300)를 통해 컴퓨팅 장치와 같은 호스트(host)와 데이터를 주고 받을 수 있다. In addition, the NAND flash-based storage system 200 includes a host interface; can be via (host interface 300) to send and receive the host (host) and the data, such as the computing device.

이때, 호스트 인터페이스(300)는 낸드 플래시 기반 스토리지 시스템(200)과 연결된 컴퓨터 장치의 IDE(integrated driver electronics), PCI(peripheral component interconnect BUS), PATA(parallel ATA), SATA(serial ATA) 및 USB(universal serial bux)와 같은 컴퓨팅 버스(computing bus)가 될 수 있다. At this time, the host interface 300 includes a NAND flash-based storage system (200), IDE (integrated driver electronics) of a computer device that is connected with, PCI (peripheral component interconnect BUS), PATA (parallel ATA), SATA (serial ATA) and USB ( It may be a computing bus (computing bus), such as universal serial bux). 또한, 호스트 인터페이스(300)는 낸드 플래시 기반 스토리지 시스템(200)과 네트워크를 통하여 연결된 컴퓨터 장치의 네트워크 모듈이 될 수 있다. Further, the host interface 300 may be a network module of a computer device connected via a NAND flash-based storage system 200 and the network.

낸드 플래시 메모리(310 내지 340)는 하나 이상의 블록을 포함할 수 있다. NAND flash memory (310 to 340) may include one or more blocks. 또한, 블록은 하나 이상의 페이지를 포함할 수 있다. In addition, the block may include one or more pages. 예를 들어 도 3을 참조하면, 제 1 낸드 플래시 메모리(310)는 하나 이상의 블록을 포함하며, 각각의 블록에는 물리적 블록 번호인 PBN(physical block number)를 부여할 수 있다. For example, if 3, the first NAND flash memory 310 may be assigned the physical block number of PBN (physical block number), and comprises at least one block, each block. 또한, 각각의 블록은 하나 이상의 페이지를 포함하며, 각각의 페이지는 물리적 페이지 번호인 PPN(physical block number)를 부여할 수 있다. In addition, each block comprising one or more pages, and each page can be assigned to a physical page number PPN (physical block number).

그리고 낸드 플래시 기반 스토리지 시스템(310)에 포함된 컨트롤러(230)는 미리 정의된 핫/콜드 블록 분류 기준에 따라, 각각의 낸드 플래시 메모리(210)에 포함된 블록을 핫 블록 또는 콜드 블록으로 분류할 수 있다. And a controller 230 included in the NAND flash-based storage system 310 according to a predefined hot / cold block classifier, to classify the blocks included in each of the NAND flash memory 210 to the hot block or cold block can. 이때, 미리 정의된 핫/콜드 블록에 대한 분류 기준은 낸드 플래시 기반 스토리지 시스템(200)에 기본적(default)으로 미리 설정된 값일 수 있으며, 낸드 플래시 기반 스토리지 시스템(200)의 사용자에 의하여 미리 설정된 값일 수 있다. At this time, the segment of the predefined hot / cold block of NAND flash based on the storage system 200 can advance value is set by default (default), it may be a value a user to pre-set by the NAND flash-based storage system 200 have. 그리고 미리 정의된 핫/콜드 블록 분류 기준은 호스트에 의해서 정의될 수 있다. And predefined hot / cold block segments may be defined by the host.

예를 들어, 컨트롤러(230)는 미리 정의된 핫/콜드 블록에 대한 분류 기준에 따라, 3개 이상 유효 페이지를 포함하는 블록을 핫 블록으로 분류하고, 그렇지 않은 블록을 콜드 블록으로 분류할 수 있다. For example, the controller 230 according to the classification based on a predefined hot / cold block, and classifying blocks that contain valid page three or more hot-blocks, or is a non-block can be classified into the cold block .

도 3을 참조하면, 제 1 낸드 플래시 메모리(310)의 'PBN 0 블록'(P300)은 무효 페이지가 포함되지 않으며, 제 2 낸드 플래시 메모리(320)의 'PBN 0 블록'(P310)은 하나의 무효 페이지를 포함한다. 3, the first 1 'PBN 0 block' (P300) of the NAND flash memory 310 is not included in the invalid page, the 2 'PBN 0 block' (P310) of the NAND flash memory 320 is one It includes an invalid page. 그러므로 컨트롤러(230)는 미리 정해진 핫/콜드 분류 기준에 따라, 제 1 낸드 플래시 메모리(310) 및 제 2 낸드 플래시 메모리(320)의 각각 'PBN 0 블록'(P300, P310)을 각각 콜드 블록으로 분류할 수 있다. Therefore, the controller 230 according to a predetermined hot / cold segments, the first NAND flash memory 310 and the second respectively of the NAND flash memory (320) 'PBN 0 block' (P300, P310) each for the cold block It can be classified.

또한, 제 3 낸드 플래시 메모리(330)의 'PBN 0 블록'(P320) 및 제 4 낸드 플래시 메모리(340)의 'PBN 0 블록'(P330)은 각각 세 개의 무효 페이지를 포함하고 있다. In addition, the 3 'block PBN 0 "(P330) of a NAND flash memory, the block PBN 0" of (330) (P320) and a fourth NAND flash memory 340 and each contains three invalid pages. 그러므로 컨트롤러(230)는 미리 정해진 핫/콜드 분류 기준에 따라, 제 3 낸드 플래시 메모리(330) 및 제 4 낸드 플래시 메모리(340)의 각각 'PBN 0 블록'(P320, P330)을 각각 핫 블록으로 분류할 수 있다. Therefore, the controller 230, the third each of the NAND flash memory 330, and a fourth NAND flash memory (340) 'PBN 0 block' (P320, P330), each hot-block according to a predetermined hot / cold classifiers It can be classified.

도 4를 참조하면, 컨트롤러(230)는 콜드 블록으로 분류된 제 1 낸드 플래시 메모리(310)의 'PBN 0 블록'(P401) 및 제 2 낸드 플래시 메모리(320)의 'PBN 0 블록'(P411)에 대하여 각각 블록에 포함된 복수 개의 페이지 중 'PPN 0 페이지'(P400, P410)를 선택하여 패리티 정보를 기록할 수 있다. 4, the controller 230 of the first NAND flash memory 310 is divided into a cold block 'PBN 0 block' (P401) and the second NAND flash memory (320) 'PBN 0 block' (P411 ) may select the 'PPN 0 page' (P400, P410) of the plurality of pages included in each block by writing the parity information for the. 이후, 컨트롤러(230)는 스크러빙을 수행하여, 에러를 정정하기 위하여 'PPN 0 페이지'(P400, P410)(P400, P410)에 기록된 패리티 정보를 이용할 수 있다. Then, the controller 230 may utilize the parity information written to the 'PPN 0 page' (P400, P410) (P400, P410) in order to correct the error with scrubbing.

이때, 컨트롤러(230)는 수직 스트라이핑(vertical striping)에 기초하여 패리티를 기록할 수 있다. At this time, the controller 230 may record the parity on the basis of the vertical stripes (vertical striping). 그러므로 패리티 정보는 패리티 정보를 기록하고자 하는 블록의 복수 개의 페이지 중 마지막에 위치한 하나 이상의 페이지에 기록될 수 있다. Therefore, the parity information may be written to one or more pages in the last of the plurality of pages of the block to be written to the parity information.

또한, 컨트롤러(230)는 핫 블록으로 분류된 제 3 낸드 플래시 메모리(330) PBN 0 블록(P320) 및 제 4 낸드 플래시 메모리(340)의 'PBN 0 블록'(P330)의 경우, 패리티 정보를 기록하지 않을 수 있다. In addition, the controller 230 in the case of the third NAND flash memory (330) PBN 0 block (P320) and the fourth of the NAND flash memory (340) 'PBN 0 block' (P330) classify the hot block, the parity information for It may not be recorded. 그러므로 컨트롤러(230)는 미사용 블록에 데이터를 기록할 수 있다. Therefore, the controller 230 may write data to an unused block.

한편, 컨트롤러(230)는 낸드 플래시 메모리(210)에 패리티 정보를 기록한 다음, 소정의 타이밍에 기록된 패리티 정보 및 에러정정코드를 이용하여 낸드 플래시 메모리(210)의 복수의 블록에 기록된 데이터에 대하여 스크러빙을 수행한다. On the other hand, the controller 230 is the data written in the plurality of blocks of the NAND flash memory recording the parity information 210, then the parity information, and by using an error correction code NAND flash memory 210 is written at a predetermined timing and for performing a scrubbing.

이때, 스크러빙은 앞에서 설명한 것과 같이, 낸드 플래시 기반 스토리지 시스템(200)의 데이터 보존 기간이 길어짐에 따라 발생하는 에러에 대한 해결책이 될 수 있다. At this time, the scrubbing as described previously, may be a solution to errors that may occur in accordance with the longer the data retention time of the NAND flash-based storage system 200. 하지만, 스크러빙은 읽기 쓰기 량의 증가에 따른 낸드 플래시 기반 스토리지 시스템(200)의 수명을 단축하게 할 수 있다는 단점이 있다. However, scrubbing has the disadvantage that it can shorten the life of NAND flash-based storage system 200 in accordance with an increase in the amount of reading and writing.

그러므로 본 발명의 일 실시예에 따른 컨트롤러(230)는 스크러빙을 수행하기 전, 가비지 컬렉션이 수행할 가능성이 스크러빙 보다 높은 경우에는 스크러빙을 수행하지 않고, 가비지 컬렉션을 먼저 수행한다. Therefore, the controller 230 according to one embodiment of the present invention, before carrying out the scrubbing, when the likelihood of the garbage collection carried out is higher than the scrubbing is carried out without scrubbing, and performs garbage collection first. 만약, 가비지 컬렉션이 수행될 가능성이 스크러빙에 비하여 낮은 경우, 컨트롤러(230)는 스크러빙을 수행한다. If, when the possibility of garbage collection to be performed lower than the scrubbing, the controller 230 performs the scrubbing.

이를 위하여, 컨트롤러(230)는 패리티 정보를 기록하기 전에 낸드 플래시 메모리(210)에 대한 가비지 컬렉션 주기 및 세이프 주기를 산출하고, 산출된 가비지 컬렉션 주기 및 세이프 주기에 따라 스크러빙 또는 가비지 컬렉션을 수행할 수 있다. To this end, the controller 230 can calculate the garbage collection cycle and a safe period for the NAND flash memory 210 prior to writing the parity information and perform the scrub or garbage collection, according to the garbage collection cycle, and safe period calculation, have.

구체적으로 컨트롤러(230)는 낸드 플래시 메모리(210)에 패리티 정보를 기록하기 전에 먼저 가비지 컬렉션 주기 및 세이프 주기를 산출한다. More specifically, controller 230 first calculates the garbage collection cycle, and safe period before writing the parity information to the NAND flash memory 210. 이때, 세이프 주기는 스크러빙을 수행하지 않은 상태에서 데이터 보존 에러를 허용할 수 있는 시간에 기초하여 산출된다. In this case, the safe period is calculated on the basis of time to allow for errors in the data retention without performing a scrubbing. 그러므로 컨트롤러(230)는 낸드 플래시 메모리(210)의 사용시간과 낸드 플래시 메모리(210)를 사용함에 따라 변화하는 에러율 간의 관계를 모델링하여 세이프 주기를 산출한다. Therefore, the controller 230 calculates a safe period by modeling the relationship between the error rate changes with the use of the usage time and the NAND flash memory 210 in the NAND flash memory 210.

또한, 가비지 컬렉션 주기는 낸드 플래시 메모리(210)에 대한 가비지 컬렉션이 수행되기까지 남은 시간에 기초하여 산출된다. In addition, garbage collection cycle is calculated based on the remaining time to perform garbage collection for the NAND flash memory 210. 그러므로 컨트롤러(230)는 낸드 플래시 메모리(210)에서 사용 중인 블록의 개수 및 일별로 업데이트 되는 블록의 개수에 기초하여 산출될 수 있다. Therefore, the controller 230 may be calculated based on the number of blocks to be updated with the number of blocks in use and daily in the NAND flash memory 210.

세이프 주기 및 가비지 컬렉션 주기의 비교 결과, 세이프 주기가 가비지 컬렉션 주기보다 짧은 경우, 컨트롤러(230)는 세이프 주기를 소정의 타이밍으로 산출한다. If the comparison result, the safe period of the safe period and a garbage collection cycle is shorter than the garbage collection cycle, the controller 230 calculates a safe period with a predetermined timing. 이와 반대로, 세이프 주기가 가비지 컬렉션 주기보다 길거나 같은 경우, 컨트롤러(230)는 가비지 컬렉션 주기를 소정의 타이밍으로 산출한다. On the other hand, when the safe period equal to or longer than the garbage collection cycle, the controller 230 calculates a garbage collection cycle at a predetermined time.

그리고 컨트롤러(230)는 산출된 소정의 타이밍에 따라, 스크러빙 또는 가비지 컬렉션을 수행한다. And the controller 230 performs, scrubbing or garbage collection, in accordance with the calculated predetermined timing.

가비지 컬렉션 주기 및 세이프 주기의 비교 결과, 세이프 주기가 짧은 경우, 컨트롤러(230)는 세이프 주기에 스크러빙을 수행할 수 있다. If the comparison result, the safe period of the garbage collection cycle, and safe short period, the controller 230 may perform a scrubbing the safe period. 이때, 컨트롤러(230)는 낸드 플래시 기반 스토리지 시스템(200)의 성능 및 수명 향상을 위하여 바로 스크러빙을 수행하지 않고, 패리티 정보를 기록하여 세이프 주기를 연장할 수 있다. At this time, the controller 230 may extend the safe period by instead of directly performing a scrub writes the parity information to improve the performance and life span of a NAND flash-based storage system 200. 즉, 세이프 주기에 도달하면, 컨트롤러(230)는 스크러빙을 수행하지 않고, 임의의 페이지에 패리티 정보 기록을 수행하여, 스크러빙이 수행되는 것을 미룰 수 있다. In other words, when it reaches the safe period, the controller 230 does not perform a scrub, to perform parity information recorded on any page can be deferred in that the scrubbing is performed. 또한, 패리티를 기록한 다음, 컨트롤러(230)는 패리티 정보 및 에러정정코드에 기초하여 세이프 주기를 재 산출하고, 다시 가비지 컬렉션 주기와 비교할 수 있다. Also, recording the parity, and then, the controller 230 re-calculates a safe period based on the parity information, and the error correcting code, can be compared with the garbage collection cycle again.

다시 재 산출된 세이프 주기 및 가비지 컬렉션 주기를 비교하여, 재 산출된 세이프 주기가 짧은 경우, 컨트롤러(230)는 재 산출된 세이프 주기에 에러정정코드 및 기록된 패리티 정보에 기초하여 스크러빙을 수행할 수 있다. When compared to a safe period and a garbage collection cycle recalculated again, the safe period the re-calculated short, the controller 230 is able to perform a scrub based on the re-calculating the safe period error correction code and recorded on the parity information, have.

또한, 세이프 주기 또는 재 산출된 세이프 주기와 비교하여 가비지 컬렉션 주기가 짧은 경우, 컨트롤러(230)는 낸드 플래시 메모리(210)에 포함된 복수의 블록에 기록된 데이터에 대하여 가비지 컬렉션을 수행할 수 있다. In addition, when compared to the safe period or the re-calculated safe period, the garbage collection cycle is short, the controller 230 may perform garbage collection with respect to the data recorded in the plurality of blocks contained in the NAND flash memory 210 . 이때, 가비지 컬렉션은 앞에서 설명한 것과 같이, 낸드 플래시 메모리(210)에 포함된 무효 페이지 또는 무효 블록에 기록된 데이터를 지우는 것이다. At this time, the garbage collection, as described previously, to erase the data recorded in the valid page or the invalid block included in the NAND flash memory 210. 스크러빙 및 세이프 주기는 도 5를 참조하여 상세하게 설명한다. Scrubbing and safe period will be described in detail with reference to FIG.

도 5는 본 발명의 일 실시예에 따른 스크러빙을 설명하기 위한 도면이다. 5 is a view for explaining the scrubbing according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 세이프 주기는 교정 불가 페이지 에러율( UPER )이 미리 정해진 임계값에 가까워질 때까지 소요되는 시간을 모델링하여 산출될 수 있다. Safe period according to an embodiment of the present invention can be derived by modeling the time it takes until the closer to the predetermined threshold can not be corrected page error rate (UPER). 이때, 미리 정해진 임계값은 하드 디스크 드라이브에 대한 미국 표준으로 알려져 있는 10xE -15 가 될 수 있다. At this time, the predetermined threshold can be a 10xE -15, known as the American National Standard for a hard disk drive.

컨트롤러(230)는 미리 정해진 임계값을 이용하여 세이프 주기를 산출할 수 있다. Controller 230 may calculate a safe period with the predetermined threshold. 예를 들어, 세이프 주기는 낸드 플래시 기반 스토리지 시스템(200)의 P/E 횟수에 대한 허용된 교정 불가 페이지 에러율 임계값의 비로 산출될 수 있다. For example, the safe period may be calculated as the ratio of the allowed calibration can not page the error rate threshold for a P / E number of the NAND flash-based storage system 200.

세이프 주기에 도달한 후, 컨트롤러(230)는 낸드 플래시 메모리(210)에 포함된 블록에 대한 패리티 정보를 기록하고, 스크러빙이 수행되는 세이프 주기를 재 산출할 수 있다. After reaching the safe period, the controller 230 may re-calculate a safe period in which record parity information about the block included in the NAND flash memory 210, and the scrubbing is performed. 이와 같이, 컨트롤러(230)는 패리티 정보를 활용하여 낸드 플래시 기반 스토리지 시스템(200)의 데이터 보유 에러를 감소시키고, 사용 공간 절약 및 수명 연장을 위하여, 스크러빙 대상이 되는 블록에 대하여 패리티 정보를 기록하고, 세이프 주기를 연장할 수 있다. In this way, the controller 230 utilizes parity information to reduce the data retention error of the NAND flash-based storage system 200, to a space-saving and long life, and writes the parity information for the blocks to be scrubbed target It may extend the safe period.

이때, 패리티 정보는 스크러빙을 수행한 블록의 임의의 페이지에 기록될 수 있다. At this time, the parity information may be written on any page of performing a scrubbing block. 예를 들어, 패리지 정보는 패리티 정보를 기록하고자 하는 블록의 복수 개의 페이지 중 마지막에 위치한 하나 이상의 페이지에 기록될 수 있다. For example, the ridge tile information may be recorded in one or more pages in the last of the plurality of pages of the block to be written to the parity information.

또한, 컨트롤러(230)는 패리티 정보 기록을 수행한 다음, 세이프 주기를 재 산출 하기 위하여 에러정정코드 및 패리티 정보를 이용할 수 있다. In addition, the controller 230 may utilize the error correction codes and parity information to re-calculate the following, the safe period perform parity information recording. 재 산출되는 세이프 주기는 낸드 플래시 메모리(210)의 사용 시간과 패리티 정보가 기록된 이후의 교정 불가 페이지 에러율 간의 관계를 모델링하여 산출할 수 있다. Safe cycle is re-calculation can be calculated by modeling the relationship between the error rate of the page can not be corrected after the operating time and the parity information of the NAND flash memory 210 is recorded. 예를 들어, 스크러빙에 의하여 페이지가 수정된 이후의 변화하는 에러율은 도 5의 에러정정코드 및 패리티 정보를 적용하는 경우에 대한 교정 불가 페이지 에러율( For example, the correction for the case of applying the error rate error correction code and parity information, in Fig. 5, which change after the page was modified by the non-scrubbing page error rate (

Figure 112015032433274-pat00001
)이 될 수 있다. ) It can be.

컨트롤러(230)는 세이프 주기가 재 산출되면, 재 산출된 세이프 주기 및 가비지 컬렉션 주기를 비교하여 다시 소정의 타이밍을 산출할 수 있다. Controller 230 when the safe period is recalculated, by comparing the safe period and a garbage collection cycle can be re-calculated again calculates a predetermined timing. 그리고 산출된 소정의 타이밍에 따라 스크러빙 또는 가비지 컬렉션을 수행할 수 있다. And it may perform a scrub or garbage collection, in accordance with the calculated predetermined timing.

이때, 스크러빙되는 데이터의 크기( At this time, the size of data to be scrubbed (

Figure 112015032433274-pat00002
)는 1일에 쓰기 요청이 발생하는 양 및 세이프 주기 동안 데이터가 갱신되지 않을 확률에 기초하여 도출할 수 있다. ) It may be derived based on the probability of not the data is updated during a write request on the first day and the amount of generation of safe period. 스크러빙되는 데이터의 크기는 수학식 1과 같다. The size of data to be scrubbed is shown in equation (1).

Figure 112015032433274-pat00003

이때, D write 는 1일에 쓰기 요청이 발생하는 양이다. In this case, D is the amount of write, write requests per day occurs. 그리고 s t 는 세이프 주기 t 일 동안 데이터가 갱신되지 않을 확률이다. And s t is the probability data is not updated during a safe period t.

재 산출된 세이프 주기와 가비지 컬렉션 주기의 비교에 따른 스크러빙 수행은 도 6을 참조하여 설명한다. Scrubbing performed according to the comparison of the re-calculated safe period with the garbage collection cycle will be described with reference to FIG.

도 6은 본 발명의 일 실시예에 따른 스크러빙 및 가비지 컬렉션 수행의 예시도이다. Figure 6 is an exemplary view of a scrubbing and garbage collection performed in accordance with one embodiment of the present invention.

도 6의 (a)에서처럼 가비지 컬렉션 주기가 재 산출된 세이프 주기보다 짧은 경우, 컨트롤러(230)는 가비지 컬렉션 주기에 도달하면, 가비지 컬렉션을 수행할 수 있다. If, as shown in FIG. 6 (a) shorter than a garbage collection cycle is re-calculated safe period, the controller 230 reaches a garbage collection cycle, it is possible to perform a garbage collection.

그러나 도 6의 (b)와 같이 재 산출된 세이프 주기가 가비지 컬렉션 주기보다 짧은 경우, 소정의 타이밍은 재 산출된 세이프 주기가 될 수 있다. However, when the safe period recalculated as shown in (b) of Figure 6 is less than the garbage collection cycle, a predetermined timing may be a re-calculation-safe period. 그리고 컨트롤러(230)는 재 산출된 세이프 주기에 도달하면, 스크러빙을 수행할 수 있다. And controller 230 is reached in the re-calculated safe period, it is possible to perform a scrub.

한편, 도 6의 (a)에서처럼 가비지 컬렉션을 수행하는 경우에는 미사용 블록 풀에 포함된 블록(P600)이 도 6의 (b)의 스크러빙을 수행한 경우의 미사용 블록 풀에 포함된 블록(P610)보다 적을 수 있다. On the other hand, the blocks included in (a), as in the case of performing the garbage collection, the unused block in the case of performing the scrubbing of (b) of this Figure 6 the block (P600) are included in the unused block pool full of Figure 6 (P610) more can be less. 그러므로 스크러빙을 수행하는 경우에는 미사용 블록이 증가할 수 있다. Therefore, when performing the scrub may be an unused block is increased. 이러한 미사용 블록을 포함하는 공간을 오버 프로비저닝(over provisioning; OP) 공간이라고 할 수 있다. The space including these unused block over-provisioning; can be described as (over provisioning OP) space.

이때, 오버 프로비저닝 공간은 낸드 플래시 기반의 스토리지 시스템(200)이 원활하게 작동할 수 있도록 미리 마련한 예비 공간이다. At this time, the over-provisioning area is the pre-prepared spare space so that the storage system 200 of the NAND flash based can work smoothly. 낸드 플래시 기반 스토리지 시스템(200)에 많은 오버 프로비저닝 공간이 차지하게 되는 경우 낸드 플래시 기반의 스토리지 시스템(200)은 가비지 컬렉션 또는 스크러빙을 원활하게 수행할 수 있지만, 공간이 낭비되게 될 수 있다. NAND flash-based storage system 200. Many over-provisioning NAND flash-based storage system 200. If the space is occupied on but can smoothly perform garbage collection or scrubbing, can be presented space is wasted. 그러므로 컨트롤러(230)는 최적의 오버 프로비저닝 공간을 설정하여야 한다. Therefore, the controller 230 is to be set at the best over-provisioning space.

컨트롤러(230)는 최적의 오버 프로비저닝 공간을 설정하기 위하여, 스크러빙을 수행할 때, 스크러빙을 수행하는 시점의 오버 프로비저닝(over provisioning; OP) 공간 사이즈를 계산할 수 있다. Controller 230, when performing a scrub, over-provisioning at the time of performing the scrubbing in order to set the optimum over-provisioning space; can be calculated (over provisioning OP) space size. 그리고 컨트롤러(230)는 계산된 사이즈를 기초로 분류된 핫 블록을 위한 제 1 오버 프로비저닝 공간 및 분류된 콜드 블록을 위한 제 2 오버 프로비저닝 공간을 설정할 수 있다. And the controller 230 may set the second over-provisioning area for the provisioning over the first area and a classification the cold block for the hot block classification based on the calculated size. 이때, 제 1 오버 프로비저닝 공간은 사용 중인 블록의 개수에 기초하여 산출될 수 있다. In this case, the first over-provisioning space can be calculated on the basis of the number of blocks being used. 또한, 제 2 오버 프로비저닝 공간은 스크러빙에 사용되는 블록의 개수에 기초하여 산출될 수 있다. Further, the second over-provisioning space can be calculated based on the number of blocks used for scrubbing.

이때, 최적의 오버 프로비저닝 공간을 설정하기 위한 오버 프로비저닝 공간의 비율( a effective )은 수학식 2와 같다. At this time, the ratio of the over-provisioning area for setting an optimum over-provisioning area (effective a) is equal to the equation (2).

Figure 112015032433274-pat00004

이때, 수학식 2에서 u scrub 는 스크러빙을 수행하기 위하여 선택되는 데이터 블록의 사용량이다. At this time, u scrub in equation (2) is an amount of the data block is selected to perform a scrub.

한편, 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템(200)은 스크러빙을 수행하기까지 유예기간을 제공할 수 있으므로, 기록 증폭 계수(write amplification factor; WAF)를 낮출 수 있다. On the other hand, one embodiment of the storage system 200 of the NAND flash-based according to the present invention can provide a grace period to perform a scrub, a recording amplifier coefficients, can be lowered (write amplification factor WAF). 이때, 기록 증폭 계수는 낸드 플래시 기반의 스토리지 시스템(200)의 성능 및 수명을 결정하는 것으로, 기록 증폭 계수가 작아질수록 성능 및 수명이 향상될 수 있다. At this time, the record amplification factor may be that the smaller is, the recording amplification factor in determining the performance and life of the NAND flash-based storage system 200 improves the performance and service life.

낸드 플래시 기반의 스토리지 시스템(200)에서 스크러빙 및 가비지 컬렉션 수행에 따른 기록 증폭 계수 WAF 는 핫/콜드 블록에 대한 스크러빙 및 가비지 컬렉션 수행에 따라 각각 산출되며, 수학식 3 내지 수학식 6과 같다. In the NAND flash-based storage system 200 according to the recording amplification factor WAF perform the scrubbing and garbage collection are calculated respectively in accordance with the scrubbing and performing garbage collection on a hot / cold block, shown in Equation 3 to Equation 6.

이때, 수학식 3은 핫 블록 및 콜드 블록에 가비지 컬렉션을 수행했을 경우에 대한 기록 증폭 계수를 나타낸다. In this case, Equation 3 represents the amplification factor of the recording when performing garbage collection on a hot blocks and cold blocks. 이때, 핫 블록의 가비지 컬렉션에 대한 기록 증폭 계수는 WAF hotGC 이고, 콜드 블록의 가비지 컬렉션에 대한 기록 증폭 계수는 WAF coldGC 이다. At this time, the amplification factor recorded on the garbage collection of the hot block WAF hotGC, record amplification factor for the garbage collection of the cold block is WAF coldGC.

Figure 112015032433274-pat00005

그리고 수학식 4는 핫 블록에 가비지 컬렉션을 수행하고, 콜드 블록에 스크러빙을 수행한 경우에 대한 기록 증폭 계수를 나타낸다. And Equation (4) represents a record amplification factor for the case of performing a garbage collection on a hot block, it performs scrub the cold block. 그리고 수학식 5는 콜드 블록에 가비지 컬렉션을 수행하고, 핫 블록에 스크러빙을 수행한 경우에 대한 기록 증폭 계수를 나타낸다. And equation (5) represents the record amplification factor for the case of performing a garbage collection on a cold block, performs scrub the hot block. 이 두 경우에서 기록 증폭 계수는 최적의 오버 프로비저닝 공간의 크기에 비례할 수 있다. In both cases the recording amplification factor can be proportional to the size of the optimum over-provisioning space.

핫 블록에 가비지 컬렉션을 수행하고, 콜드 블록에 스크러빙을 수행한 경우에 대하여 예를 들어 설명하면, 콜드 블록의 오버 프로비저닝 공간이 최적의 오버 프로비저닝 공간보다 크게 되면, 낸드 플래시 기반의 스토리지 시스템(200)은 핫 블록의 오버 프로비저닝 공간을 튜닝하여, 성능을 향상시킬 수 있다. Performing garbage collection on a hot block, and when is described, for example, with respect to the case of performing a scrub the cold block, over-provisioned space of the cold block is larger than the optimum over-provision space, a NAND flash-based storage system 200 It can be tuned to the over-provisioning of the hot space blocks enhance performance. 그러므로 이 경우의 기록 증폭 계수는 수학식 4와 같으며, 반대의 경우는 수학식 5와 같다. Thus were recorded amplification factor in this case is equal to the expression (4), the opposite case is shown in equation (5).

Figure 112015032433274-pat00006

Figure 112015032433274-pat00007

이때, At this time,

Figure 112015032433274-pat00008
And
Figure 112015032433274-pat00009
는 핫 블록 및 콜드 블록 각각에 최적의 오버 프로비저닝 공간을 튜닝한 경우에 대한 기록 증폭 계수를 의미한다. It refers to a record amplification factor for the case of tuning the best over-provisioning area for each hot blocks and cold blocks. 또한, WAF hot _scrub WAF cold _scrub 는 핫 블록 및 콜드 블록 각각에 스크러빙을 수행한 경우에 대한 기록 증폭 계수이다. Also, WAF _scrub hot and cold WAF _scrub is a record amplification factor for the case of performing a scrub each hot blocks and cold blocks.

마지막으로 수학식 6은 핫 블록 및 콜드 블록에 모두 스크러빙을 수행한 경우에 대한 기록 증폭 계수이다. Finally, equation (6) it is recorded for the amplification factor in case of performing a scrubbing block for both hot and cold blocks. 이때, 핫 블록 및 콜드 블록의 오버 프로비저닝 공간은 스크러빙을 위한 데이터 복사를 위하여 활용될 수 있다. At this time, the over-provisioning of the hot block and the cold space blocks can be used to copy the data for scrubbing. 그러므로 수학식 6에서 기록 증폭 계수는 오버 프로비저닝 공간을 고려하지 않을 수 있다. Therefore, the recording amplification factor in equation (6) may or may not take into account the over-provisioning space.

Figure 112015032433274-pat00010

다음은 도 7 및 도 8을 참조하여 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템(200)의 데이터 보존 강화 방법을 설명한다. The following describes how to enhance data retention of the storage system 200 of the NAND flash-based, in accordance with an embodiment of the present invention with reference to Figs.

도 7은 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템(200)의 데이터 보존 강화 방법의 순서도이다. 7 is a flowchart of the enhanced data retention of the storage system 200 of the NAND flash-based, in accordance with an embodiment of the method of the present invention. 또한, 도 8은 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템(200)의 스크러빙 및 가비지 컬렉션 수행 방법의 순서도이다. 8 is a flow diagram of a scrubbing and performing garbage collection in the storage system 200 of the NAND flash-based, in accordance with an embodiment of the method of the present invention.

낸드 플래시 기반의 스토리지 시스템(200)은 낸드 플래시 기반 스토리지 시스템(200)에 포함된 낸드 플래시 메모리(210)에서 데이터를 기록하는 복수의 블록 중 기 설정된 특정 블록의 임의의 페이지에 에러정정을 위한 패리티 정보를 기록한다(S700). The storage system 200 of the NAND flash based parity for error correction in any of the pages of a particular block is set group of a plurality of blocks of recording data in the NAND flash memory 210 included in the NAND flash-based storage system 200 information is recorded (S700). 그리고 낸드 플래시 기반의 스토리지 시스템(200)은 소정의 타이밍에 에러정정코드 및 패리티 정보를 이용하여, 복수의 블록에 기록된 데이터에 대하여 스크러빙(Scurbbing)을 수행한다(S710). And it performs a scrubbing (Scurbbing) with respect to the storage system 200 of the NAND flash based using the error correction codes and parity information at a predetermined timing, recording a plurality of data blocks (S710).

이때, 패리티 정보를 저장하는 특정 블록은 핫 블록에 비하여, 업데이트가 자주 발생하지 않아 가비지 컬렉션을 수행할 가능성이 적은 콜드 블록일 수 있다. In this case, the particular block to store the parity information may be, the update does not occur frequently are less likely to cold block to perform garbage collection in comparison to the hot block.

이를 위하여, 낸드 플래시 기반의 스토리지 시스템(200)은 미리 정의된 핫/콜드 블록 분류 기준에 따라, 복수의 블록을 핫 블록 및 콜드 블록으로 분류할 수 있다. To this end, the storage system 200 of the NAND flash based according to a predefined hot / cold block segment, it is possible to classify the plurality of blocks in the hot block and the cold block. 이때, 미리 정의된 핫/콜드 블록 분류 기준은 낸드 플래시 기반의 스토리지 시스템(200) 또는 낸드 플래시 기반의 스토리지 시스템(200)과 데이터를 교환하는 컴퓨팅 장치에 의하여 설정될 수 있다. At this time, hot / cold block segments predefined can be set by a computing device for exchanging NAND flash-based storage system 200 or the NAND flash memory based on the storage system 200, and data.

그리고 스크러빙을 수행하는 소정의 타이밍은 낸드 플래시 기반의 스토리지 시스템(200)이 스크러빙을 수행하기까지 남은 세이프 주기 및 가비지 컬렉션을 수행하기까지 남은 가비지 컬렉션 주기에 기초하여 산출될 수 있다. And a predetermined timing to perform the scrubbing can be calculated based on the rest of the garbage collection cycle by performing a garbage collection to rest periods and safe to perform the storage system 200 of the NAND flash based scrubbing.

이때, 세이프 주기는 낸드 플래시 기반의 스토리지 시스템(200)은 낸드 플래시 메모리(210)의 사용시간 및 낸드 플래시 메모리(210)를 사용함에 따라 변화되는 에러율 간의 관계를 모델링하여 산출할 수 있다. In this case, the safe period of the storage system 200 of the NAND flash based can be calculated by modeling the relationship between the error rate is changed according to the use of the operating time and the NAND flash memory 210 in the NAND flash memory 210. 그리고 가비지 컬렉션 주기는 낸드 플래시 메모리(210)에 대한 가비지 컬렉션이 수행되기까지 남은 시간에 기초하여 산출된다. And a garbage collection cycle is calculated based on the remaining time to perform garbage collection for the NAND flash memory 210.

스크러빙 및 가비지 컬랙션을 수행하는 과정을 구체적으로 살펴보면, 먼저 낸드 플래시 기반의 스토리지 시스템(200)은 세이프 주기 및 가비지 컬렉션 주기를 산출할 수 있다(S800). Scrubbing and look at the process of performing garbage collections Specifically, the first storage system (200) of NAND flash-based can calculate the safe period and garbage collection cycle (S800).

그리고 낸드 플래시 기반의 스토리지 시스템(200)은 세이프 주기 및 가비지 컬렉션 주기를 비교할 수 있다(S810, S820). And a storage system (200) of NAND-based flash can compare the periodic and safe garbage collection cycle (S810, S820). 두 주기의 비교결과 세이프 주기가 가비지 컬렉션 주기보다 짧은 경우, 낸드 플래시 기반의 스토리지 시스템(200)은 세이프 주기에 도달하면, 스크러빙을 수행하지 않고, 임의의 페이지에 패리티 정보를 기록할 수 있다(S830). If the two periods compared result is shorter than the safe cycle cycle garbage collection, if the storage system (200) of NAND flash-based reach the safe period, without carrying out the scrubbing, you can record the parity information on any page (S830 ).

패리티 정보를 기록한 다음, 낸드 플래시 기반의 스토리지 시스템(200)은 세이프 주기를 재 산출할 수 있다(S840). Storage system 200 of recording the parity information, then NAND Flash-based material may calculate the safe period (S840). 이때, 재 산출되는 세이프 주기는 에러정정코드 및 패리티 정보를 이용하여 산출될 수 있다. In this case, the safe period is re-calculated may be calculated by using the error correction code and the parity information.

그리고 세이프 주기가 재 산출되면, 낸드 플래시 기반의 스토리지 시스템(200)은 가비지 컬렉션 주기와 재 산출된 세이프 주기를 다시 비교할 수 있다(S850). And when the safe period is recalculated, the storage system 200 of Flash-based NAND can again compare the periodic re-calculated and safe garbage collection cycle (S850).

재 산출된 세이프 주기와 가비지 컬렉션 주기를 비교하여, 재 산출된 세이프 주기가 가비지 컬렉션 주기보다 짧은 경우, 낸드 플래시 기반의 스토리지 시스템(200)은 재 산출된 세이프 주기를 소정의 타이밍으로 산출할 수 있다. By comparing the safe period with the garbage collection cycle recalculated and re-calculating the safe period is short case, the storage system 200 of the NAND flash based than the period garbage collection can calculate the re-calculated safe cycle at a predetermined time . 그리고 낸드 플래시 기반의 스토리지 시스템(200)은 소정의 타이밍에 에러정정코드 및 패리지 정보에 기초하여 스크러빙을 수행할 수 있다(S860). And the storage system 200 of the NAND flash based may be performed by scrubbing the basis of the error correction code and the L ridge information at a predetermined timing (S860).

그리고 세이프 주기 및 재 산출된 세이프 주기가 가비지 컬렉션 주기보다 길거나 같은 경우, 낸드 플래시 기반의 스토리지 시스템(200)은 가비지 컬렉션 주기에 가비지 컬렉션을 수행할 수 있다(S870). And a safe cycle and re-calculate safe period is longer than the case of garbage collection cycle, the storage system 200 of Flash-based NAND can perform garbage collection, the garbage collection cycle (S870).

다음은 도 9를 참조하여 본 발명의 일 실시예에 따른 낸드 플래시 메모리(210)를 설명한다. The following describes a NAND flash memory 210 according to one embodiment of the present invention will be described with reference to Fig.

도 9는 본 발명의 일 실시예에 따른 낸드 플래시 메모리(210)의 구성도이다. 9 is a configuration diagram of a NAND flash memory 210 according to one embodiment of the present invention.

본 발명의 일 실시예에 따른 낸드 플래시 메모리(210)는 하나 이상의 블록(910)을 포함한다. NAND flash memory 210 according to one embodiment of the present invention include one or more blocks (910). 또한, 하나 이상의 블록(910)은 각각 하나 이상의 페이지(911)를 포함한다. In addition, the one or more blocks (910) comprises at least one page (911) respectively.

낸드 플래시 메모리(210)는 데이터를 기록하는 복수의 블록(910) 중 임의의 페이지에 에러정정을 위한 패리티 정보를 기록한 특정 블록을 포함한다. NAND flash memory 210 of a plurality of blocks (910) for recording data containing the particular block recorded parity information for error correction in any of the page. 이때, 특정 블록은 핫 블록에 비하여, 업데이트가 자주 발생하지 않아 가비지 컬렉션을 수행할 가능성이 작은 콜드 블록일 수 있다. In this case, the specific block may be, the update is not frequent this little cold blocks likely to perform garbage collection compared to the hot block.

핫 블록은 콜드 블록에 비하여 저장된 데이터 보존 기간이 짧다. Hot block is shorter than the data retention period is stored in the cold block. 그리고 핫 블록은 잦은 업데이트에 의하여 가비지 컬렉션을 수행할 가능성이 크다. And the hot block is likely to perform garbage collection by the frequent updates. 그러므로 핫 블록은 가비지 컬렉션을 통하여 별도의 패리티 정보 없이 에러를 수정할 수 있다. Therefore, the hot block can correct the error without any parity information via the garbage collection. 즉, 낸드 플래시 메모리(210)는 낸드 플래시 메모리(210)에 포함된 복수의 블록(910)을 핫 블록 및 콜드 블록으로 분류하고, 데이터 보존 기간이 긴 콜드 블록에 포함된 임의의 페이지에 페리티 정보를 기록할 수 있다. That is, the NAND flash memory 210 includes a parity on any page containing a plurality of block 910, the hot block and classified to a cold block and a longer data retention period cold block included in the NAND flash memory 210 it is possible to record the information.

그리고 낸드 플래시 메모리(210)는 소정의 타이밍에 복수의 블록(910)에 기록된 데이터를 에러정정코드 및 패리티 정보에 기초하여 스크러빙 할 수 있다. And NAND flash memory 210 can be scrubbed on the basis of the data recorded in the plurality of block 910 at a predetermined timing to the error correcting code and parity information. 이때, 낸드 플래시 메모리(210)는 낸드 플래시 메모리(210)에 포함된 복수의 블록(910)에 대하여 산출될 수 있는 가비지 컬렉션 주기 및 세이프 주기의 비교를 통하여 소정의 타이밍을 산출한다. At this time, the NAND flash memory 210 and calculates the predetermined timing through a comparison of the garbage collection cycle and a safe period, which can be calculated for a plurality of blocks (910) included in the NAND flash memory 210.

만약, 세이프 주기가 가비지 컬렉션 주기보다 긴 경우, 소정의 타이밍은 가비지 컬렉션 주기가 될 수 있다. If, when the safe period is longer than the garbage collection cycle, the predetermined timing may be a garbage collection cycle. 이때, 낸드 플래시 메모리(210)는 가비지 컬렉션 주기에 가비지 컬렉션을 수행할 수 있다. At this time, the NAND flash memory 210 may perform garbage collection on the garbage collection cycle.

그리고 세이프 주기가 가비지 컬렉션 주기보다 짧은 경우, 낸드 플래시 메모리(210)는 세이프 주기에 먼저 패리티 정보를 기록하여 세이프 주기를 연장할 수 있다. And if the period is shorter than the safe garbage collection cycle, the NAND flash memory 210 may extend the safe period by first recording the information on the parity-safe period. 그리고 낸드 플래시 메모리(210)는 패리티 정보를 기록한 다음, 에러정정코드 및 패리티 정보에 기초하여 세이프 주기를 재산출할 수 있다. And NAND flash memory 210 may invoke the property safe period on the basis of the following, error correction codes and parity information indicating the parity information.

낸드 플래시 메모리(210)는 재 산출된 세이프 주기 및 가비지 컬랙션 주기를 다시 비교하여, 소정의 타이밍을 재산출할 수 있다. NAND flash memory 210 by again comparing the safe period and Garbage Collection cycle recalculated and can invoke property to a predetermined timing. 그리고 낸드 플래시 메모리(210)는 재 산출된 소정의 타이밍에 따라 스크러빙 또는 가비지 컬렉션을 수행할 수 있다. And NAND flash memory 210 may perform a scrub or garbage collection, in accordance with the re-calculated predetermined timing. 이때, 그리고 낸드 플래시 메모리(210)는 스크러빙을 수행하는 경우, 에러정정코드 및 패리티 정보에 기초하여 스크러빙을 수행할 수 있다. At this time, and the NAND flash memory 210 may perform a scrub based on the case of performing scrub, the error correction code and the parity information. 본 발명의 일 실시예에 따른 낸드 플래시 기반의 스토리지 시스템(200) 및 데이터 보존 강화 방법은 소정의 타이밍에 에러정정코드 및 패리티 정보를 이용하여 복수의 블록이 기록된 데이터에 대하여 스크러빙을 수행함으로써, 교정 불가한 데이터 보유 에러율을 감소시키고 낸드 플래시 메모리의 수명을 연장할 수 있다. By one embodiment the enhanced NAND flash-based storage system 200 and the data storage method according to the present invention performs the scrubbing with respect to the plurality of block record data by using the error correction codes and parity information at a predetermined timing, reducing the non-corrected data retention error rate and may extend the life of a NAND flash memory.

그리고 낸드 플래시 기반의 스토리지 시스템(200) 및 데이터 보존 강화 방법은 가비지 컬렉션 주기 및 세이프 주기를 비교하여, 가비지 컬렉션 및 스크러빙을 수행할 수 있으므로, 낸드 플래시 메모리의 성능 및 수명에 영향을 미칠 수 있는 읽기 및 쓰기 연산을 줄일 수 있다. And how to strengthen the NAND flash-based storage system 200 and the data storage are read in it as compared to the garbage collection cycle, and safe cycle and can perform garbage collection and scrubbing, it can affect the performance and life of the NAND flash memory and it is possible to reduce the write operation. 또한, 낸드 플래시 기반의 스토리지 시스템(200) 및 데이터 보존 강화 방법은 스크러빙을 수행하기 위하여, 에러정정코드 및 패리티 정보를 이용하므로, 에러정정코드만을 이용하는 경우에 비하여 많은 양의 데이터의 오류를 수정할 수 있다. In addition, enhanced NAND flash-based storage system 200 and data storage methods can correct errors of the large amount of data compared to the case, so using the error correction code and the parity information in order to perform a scrub, using only the error correction code have.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. One embodiment of the present invention can also be implemented in the form of a recording medium comprising instructions executable by a computer, such as program modules, being executed by a computer. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. Computer readable media can be any available media that can be accessed by the computer and includes both volatile and nonvolatile media, removable and non-removable media. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. Further, the computer readable medium may include both computer storage media and communication media. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. And communication media typically include other data, or other transport mechanism in a modulated data signal such as computer readable instructions, data structures, program modules, or carrier, and includes any information delivery media.

본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다. The method and system of the present invention has been described with reference to specific embodiments, some or all of their components, or the operations may be implemented using a computer system having a general purpose hardware architecture.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. Description of the invention described above will be appreciated that is for illustrative purposes, One of ordinary skill in the art without changing the technical spirit or essential features of the present invention easily deformed is possible in other specific forms will be. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. Thus the embodiments described above are only to be understood as illustrative and non-restrictive in every respect. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. For example, the components that are described in one-piece can be performed with the embodiment may be distributed, combined also it has been described as distributed components, which likewise form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다. The scope of the invention is intended to be included within the scope of the above description becomes than indicated by the claims, which will be described later, and all such modifications as derived from the meaning and range and equivalents concept as recited in the claims the invention do.

200: 낸드 플래시 기반의 스토리지 시스템 200: NAND flash-based storage system
210: 낸드 플래시 메모리 210: NAND Flash memory
220: 메모리 220: memory
230: 컨트롤러 230: controller

Claims (12)

  1. 낸드 플래시 기반의 스토리지 시스템에 있어서, In the NAND flash-based storage systems,
    데이터를 기록하는 복수의 블록을 포함하는 적어도 하나의 낸드 플래시 메모리; At least one NAND flash memory including a plurality of blocks of recording data; And
    데이터 보존 강화 펌웨어를 실행하여 상기 데이터를 관리하는 컨트롤러를 포함하고, By running a data storing enhanced firmware and a controller to manage said data,
    상기 컨트롤러는 상기 펌웨어의 실행에 의해서, 상기 복수의 블록 중 기 설정된 특정 블록의 임의의 페이지에 에러정정을 위한 패리티 정보를 기록하고, Wherein the controller and writes the parity information for error correction in any of the pages of a particular block of the plurality of predetermined block by execution of the firmware,
    소정의 타이밍에 에러정정코드 및 상기 패리티 정보를 이용하여 상기 복수의 블록에 기록된 데이터에 대하여 스크러빙(Scurbbing)을 수행하되, But by using the error correction code and the parity information at a predetermined timing to perform the scrub (Scurbbing) with respect to the data recorded in the plurality of blocks,
    상기 컨트롤러는 상기 낸드 플래시 메모리의 사용시간과 상기 낸드 플래시 메모리를 사용함에 따라 변화하는 에러율 간의 관계를 모델링하여 산출된 세이프 주기와, 상기 낸드 플래시 메모리에 대한 가비지 컬렉션 주기를 비교하고, Wherein the controller compares the garbage collection cycle for a safe period, and the NAND flash memory calculated by modeling the relationship between the error rate changes with the use of the the NAND flash memory and use the memory of the NAND flash, and
    상기 세이프 주기가 상기 가비지 컬렉션 주기보다 짧은 경우, 상기 세이프 주기에 상기 임의의 페이지를 결정하고, 상기 결정된 페이지에 상기 패리티 정보를 기록하는 것을 특징으로 하는 낸드 플래시 기반의 스토리지 시스템. The safe period is short, if NAND flash-based storage system, characterized in that the determining of the any page of the safe period and writing the parity information to the determined page than the garbage collection cycle.
  2. 제 1 항에 있어서, According to claim 1,
    상기 컨트롤러는 상기 복수의 블록을 핫 블록과 콜드 블록으로 분류하고, 상기 복수의 블록 중 상기 분류된 콜드 블록의 임의의 페이지에 상기 패리티 정보를 기록하는 것을 특징으로 하는 낸드 플래시 기반의 스토리지 시스템. Said controller is a NAND flash-based storage system for the blocks of the plurality is characterized in that blocks classified as hot and cold blocks, and writing the parity information for any page of the cold block the classification of the plurality of blocks.
  3. 제 2 항에 있어서, 3. The method of claim 2,
    상기 컨트롤러는 상기 스크러빙을 수행하는 시점의 오버 프로비저닝(OP) 공간 사이즈를 계산하고, 상기 계산된 사이즈를 기초로 상기 분류된 핫 블록을 위한 제 1 오버 프로비저닝 공간 및 상기 분류된 콜드 블록을 위한 제 2 오버 프로비저닝 공간을 설정하는 것을 특징으로 하는 낸드 플래시 기반의 스토리지 시스템. The controller of claim 2 for the cold block of the first over-provisioning space and the classification for the hot block the classification based on the over-provisioning (OP) size calculated the space size, and the calculation of the time when performing the scrub NAND flash-based storage system, characterized in that to set the over-provisioning space.
  4. 제 1 항에 있어서, According to claim 1,
    상기 컨트롤러는 상기 특정 블록의 복수 개의 페이지 중 마지막에 위치한 하나 이상의 페이지에 상기 패리티 정보를 기록하는 것을 특징으로 하는 낸드 플래시 기반의 스토리지 시스템. It said controller is a NAND flash-based storage system, characterized in that for writing the parity information to one or more pages in the last of the plurality of pages in the particular block.
  5. 삭제 delete
  6. 제 1 항에 있어서, According to claim 1,
    상기 컨트롤러는 상기 가비지 컬렉션 주기가 상기 세이프 주기보다 짧거나 동일한 경우, 상기 가비지 컬렉션 주기에 상기 복수의 블록에 기록된 데이터에 대하여 가비지 컬렉션을 수행하는 것을 특징으로 하는 낸드 플래시 기반의 스토리지 시스템. It said controller is a NAND flash-based storage system, characterized in that for performing garbage collection with respect to the data recorded in the block of the plurality when the garbage collection cycle is shorter than or equal to the safe period, the garbage collection cycle.
  7. 제 1 항에 있어서, According to claim 1,
    상기 컨트롤러는 상기 패리티 정보를 기록한 이후에 상기 세이프 주기를 재 산출하고, 상기 가비지 컬렉션 주기와 비교하여 상기 소정의 타이밍을 산출하되, Said controller is recalculated, but the safe period after recording the parity information, as compared with the garbage collection cycle calculating the predetermined timing,
    상기 재 산출된 세이프 주기는 상기 낸드 플래시 메모리의 사용시간과 상기 기록된 패리티에 의하여 변화하는 에러율 간의 관계를 모델링하여 산출된 것을 특징으로 하는 낸드 플래시 기반의 스토리지 시스템. The re-calculation a safe period of NAND flash-based storage system, characterized in that the calculated by modeling the relationship between the error rate changes by using time and the parity is written in the NAND flash memory.
  8. 낸드 플래시 기반의 스토리지 시스템의 데이터 보존 강화 방법에 있어서, In the enhanced data retention of the NAND flash-based storage system, method,
    낸드 플래시 메모리에서 데이터를 기록하는 복수의 블록 중 기 설정된 특정 블록의 임의의 페이지에 에러정정을 위한 패리티 정보를 기록하는 단계; Writing the parity information for error correction in any of the pages of a particular block of the plurality of predetermined block for writing data in the NAND flash memory; And
    소정의 타이밍에 상기 패리티 정보를 이용하여, 상기 복수의 블록에 기록된 데이터에 대하여 스크러빙(Scurbbing)을 수행하는 단계를 포함하되, Using the parity information in a predetermined timing, comprising the step of performing a scrub (Scurbbing) with respect to the data recorded in the plurality of blocks,
    상기 패리티 정보를 기록하는 단계는, Writing the parity information,
    상기 낸드 플래시 메모리의 사용시간과 상기 낸드 플래시 메모리를 사용함에 따라 변화되는 에러율 간의 관계를 모델링하여 세이프 주기를 산출하는 단계; Calculating a safe period by modeling the relationship between the error rate is changed according to the use of the operation time of the NAND flash memory and the NAND flash memory;
    상기 산출된 세이프 주기 및 상기 낸드 플래시 메모리에 대한 가비지 컬렉션 주기를 비교하는 단계; Comparing the garbage collection cycle for the calculated safe period and the NAND flash memory; And
    상기 세이프 주기가 상기 가비지 컬렉션 주기보다 짧은 경우, 상기 세이프 주기에 상기 임의의 페이지를 결정하고, 상기 결정된 페이지에 상기 패리티 정보를 기록하는 단계를 포함하는 것을 특징으로 하는 데이터 보존 강화 방법. If the safe period shorter than a period wherein the garbage collection, enhanced data retention method comprising the steps of determining an arbitrary page of the safe period and writing the parity information to the determined page.
  9. 제 8 항에 있어서, The method of claim 8,
    상기 패리티 정보를 기록하는 단계는 Writing the parity information,
    상기 복수의 블록을 핫 블록과 콜드 블록으로 분류하여 상기 분류된 콜드 블록의 임의의 페이지에 상기 패리티 정보를 기록하는 단계를 포함하는 것을 특징으로 하는 데이터 보존 강화 방법. How to enhance data retention of the plurality of blocks, it characterized in that it comprises the step of writing the parity information for any page of hot blocks and cold blocks classified by the block classification cold.
  10. 삭제 delete
  11. 제 8 항에 있어서, The method of claim 8,
    상기 패리티 정보를 기록하는 단계 이후에, 상기 세이프 주기를 재 산출하고, 상기 가비지 컬렉션 주기와 비교하여 상기 소정의 타이밍을 산출하는 단계를 더 포함하되, After writing the parity information, further comprising the step of re-calculating the safe period, as compared with the garbage collection cycle calculating the predetermined timing,
    상기 재 산출된 세이프 주기는 상기 낸드 플래시 메모리의 사용시간과 상기 기록된 패리티에 의하여 변화하는 에러율 간의 관계를 모델링하여 산출된 것을 특징으로 하는 데이터 보존 강화 방법. The re-calculation a safe period is enhanced data retention method, characterized in that the calculated by modeling the relationship between the error rate changes by using time and the parity is written in the NAND flash memory.
  12. 낸드 플래시 메모리에 있어서, In the NAND flash memory,
    데이터를 기록하는 복수의 블록 중 임의의 페이지에 에러정정을 위한 패리티 정보를 기록한 특정 블록을 포함하고, Of a plurality of blocks of recording data included in the particular block recorded parity information for error correction in any of the page,
    상기 복수의 블록에 기록된 데이터는 소정의 타이밍에 에러정정코드 및 상기 패리티 정보를 이용하여 스크러빙(Scrubbing)되는 것이고, The data recorded in the plurality of blocks will be scrubbed (Scrubbing) using the error correction code and the parity information at a predetermined timing,
    상기 임의의 페이지는 세이프 주기 및 상기 낸드 플래시 메모리에 대한 가비지 컬렉션 주기를 비교하여, 상기 세이프 주기가 상기 가비지 컬렉션 주기보다 짧은 경우, 상기 세이프 주기 동안 결정된 이후, 상기 패리티 정보가 기록되는 것이며, Wherein any page will be compared to the garbage collection cycle, the safe period is shorter than the period when the garbage collection, after the period determined for the safe, which the parity information is written to the safe period, and the NAND flash memory,
    상기 세이프 주기는 상기 낸드 플래시 메모리의 사용시간과 상기 낸드 플래시 메모리를 사용함에 따라 변화하는 에러율 간의 관계를 모델링하여 산출되는 것을 특징으로 하는 낸드 플래시 메모리. The safe period of the NAND flash memory, characterized in that which is calculated by modeling the relationship between the error rate changes with the use of the operating time for the NAND flash memory and the NAND flash memory.
KR1020150046818A 2015-04-02 2015-04-02 Storage system based on nand flash and data retention improving method KR101653999B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150046818A KR101653999B1 (en) 2015-04-02 2015-04-02 Storage system based on nand flash and data retention improving method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150046818A KR101653999B1 (en) 2015-04-02 2015-04-02 Storage system based on nand flash and data retention improving method

Publications (1)

Publication Number Publication Date
KR101653999B1 true KR101653999B1 (en) 2016-09-09

Family

ID=56939255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150046818A KR101653999B1 (en) 2015-04-02 2015-04-02 Storage system based on nand flash and data retention improving method

Country Status (1)

Country Link
KR (1) KR101653999B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120107126A (en) * 2009-12-30 2012-09-28 샌디스크 테크놀로지스, 인코포레이티드 Method and controlller for performing a copy-back operation
KR20120136674A (en) * 2011-06-09 2012-12-20 삼성전자주식회사 On-chip data scrubbing method and apparatus with ecc
KR20130143140A (en) * 2011-04-26 2013-12-30 엘에스아이 코포레이션 Variable over-provisioning for non-volatile storage
KR20140131261A (en) * 2013-05-03 2014-11-12 실리콘 모션 인코포레이티드 Method for reading data from block of flash memory and associated memory device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120107126A (en) * 2009-12-30 2012-09-28 샌디스크 테크놀로지스, 인코포레이티드 Method and controlller for performing a copy-back operation
KR20130143140A (en) * 2011-04-26 2013-12-30 엘에스아이 코포레이션 Variable over-provisioning for non-volatile storage
KR20120136674A (en) * 2011-06-09 2012-12-20 삼성전자주식회사 On-chip data scrubbing method and apparatus with ecc
KR20140131261A (en) * 2013-05-03 2014-11-12 실리콘 모션 인코포레이티드 Method for reading data from block of flash memory and associated memory device

Similar Documents

Publication Publication Date Title
US8533391B2 (en) Storage device and user device including the same
US8954654B2 (en) Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
KR101095765B1 (en) Memory system and control method thereof
US8037232B2 (en) Data protection method for power failure and controller using the same
JP6452278B2 (en) Measurement of cell damage for durability leveling of the non-volatile memory
US8166233B2 (en) Garbage collection for solid state disks
US9569320B2 (en) Non-volatile memory program failure recovery via redundant arrays
US8799747B2 (en) Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US10055294B2 (en) Selective copyback for on die buffered non-volatile memory
US20130019057A1 (en) Flash disk array and controller
US8732557B2 (en) Data protection across multiple memory blocks
JP6077673B2 (en) Method having a runtime variable raid protection scheme, solid state drive controller, and a data storage device
JP4688584B2 (en) Storage devices
US8166258B2 (en) Skip operations for solid state disks
EP2382547B1 (en) Logical address offset
KR101405741B1 (en) Stripe-based non-volatile multilevel memory operation
US8332579B2 (en) Data storage apparatus and method of writing data
EP2483785B1 (en) Stripe-based memory operation
US9176817B2 (en) Data management in solid state storage devices
US8046645B2 (en) Bad block identifying method for flash memory, storage system, and controller thereof
US8910017B2 (en) Flash memory with random partition
US8788900B2 (en) Semiconductor memory device
US8176295B2 (en) Logical-to-physical address translation for a removable data storage device
US9208018B1 (en) Systems and methods for reclaiming memory for solid-state memory
KR20100077118A (en) Memory system, controller, and control method of the memory system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant