KR101419335B1 - Apparatus and method for page unit clustering of multi level cell flash memory - Google Patents

Apparatus and method for page unit clustering of multi level cell flash memory Download PDF

Info

Publication number
KR101419335B1
KR101419335B1 KR1020120133790A KR20120133790A KR101419335B1 KR 101419335 B1 KR101419335 B1 KR 101419335B1 KR 1020120133790 A KR1020120133790 A KR 1020120133790A KR 20120133790 A KR20120133790 A KR 20120133790A KR 101419335 B1 KR101419335 B1 KR 101419335B1
Authority
KR
South Korea
Prior art keywords
page
clustering
msb
lsb
flash memory
Prior art date
Application number
KR1020120133790A
Other languages
Korean (ko)
Other versions
KR20140066498A (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 KR1020120133790A priority Critical patent/KR101419335B1/en
Publication of KR20140066498A publication Critical patent/KR20140066498A/en
Application granted granted Critical
Publication of KR101419335B1 publication Critical patent/KR101419335B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

한 셀(cell) 당 두 비트(bit)를 저장하고 두 비트 중 상위 비트는 MSB(Most Significant Bit) 페이지를 이루고 하위 비트는 LSB(Least Significant Bit) 페이지를 이루는 멀티 레벨 셀 플래시 메모리에서 페이지 단위로 클러스터링하는 클러스터링 장치가 개시된다. 클러스터링부는 제1채널 내에서 제1MSB 페이지와 제1LSB 페이지를 함께 묶어 제1클러스터링 페이지(clustering page)를 구성한다. ECC부는 제1MSB 페이지와 제1LSB 페이지에 서로 다른 ECC(Error Correction Code)를 적용한다. 제어부는 제1클러스터링 페이지 내의 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제2패리티 비트(parity bit)는 제1클러스터링 페이지 내의 제1LSB 페이지의 제2데이터 영역(data area)을 제외한 제2스페어 영역(spare area)에 저장한다. 본 발명에 따르면, 클러스터링된 페이지의 구조를 변경함으로써 MSB 페이지와 LSB 페이지 사이에 존재했던 에러 불균형 현상을 해소하고, MSB 페이지의 수명을 연장시킴으로써 SSD(Solid State Device) 전체의 신뢰성을 향상시키는 효과를 낼 수 있다. Two bits per cell are stored. The most significant bit of the two bits constitutes the MSB (Most Significant Bit) page, and the lower bit is the page of the multilevel cell flash memory constituting the LSB (Least Significant Bit) page. Clustering apparatus for clustering is disclosed. The clustering unit forms a first clustering page by grouping the first MSB page and the first LSB page together in the first channel. The ECC unit applies a different ECC (Error Correction Code) to the first MSB page and the first LSB page. The control unit may include a first spare area excluding the first data area of the first MSB page among the first parity bits generated after the data is encoded in the first MSB page in the first clustering page The excess second parity bit is stored in the second spare area excluding the second data area of the first LSB page in the first clustering page. According to the present invention, by changing the structure of the clustered page, the error imbalance phenomenon existing between the MSB page and the LSB page is solved and the lifetime of the MSB page is extended, thereby improving the reliability of the entire solid state device You can.

Description

멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법{Apparatus and method for page unit clustering of multi level cell flash memory}[0001] Apparatus and method for page level clustering of multi-level cell flash memory [

본 발명은 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법에 관한 것으로, 더욱 상세하게는, 멀티 레벨 셀 플래시 메모리 내에서 MSB 페이지와 LSB 페이지의 에러율이 차이가 나는 점을 고려하여 MSB 페이지의 수명을 연장시키기 위한 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and method for clustering pages in a multi-level cell flash memory, and more particularly, to a method and apparatus for page level clustering in a multi-level cell flash memory, in which, in consideration of the difference in error rates between MSB pages and LSB pages, To an apparatus and method for page-by-page clustering of a multi-level cell flash memory.

낸드 플래시 메모리는 저전력, 소형화 등의 장점으로 인하여 기존의 자기디스크 저장매체를 대체하는 대체자원으로 각광을 받고 있다. 특히 셀 당 한 비트를 저장하는 싱글 레벨 셀(Single Level Cell : SLC)대신에 최근에는 셀 당 두 비트 이상을 저장하는 멀티 레벨 셀(Multi Level Cell : MLC)의 사용이 증가하면서 집적도가 증가하고 있다. NAND flash memory is attracting attention as a substitute resource for replacing existing magnetic disk storage media because of advantages such as low power and miniaturization. In particular, instead of a single level cell (SLC) storing one bit per cell, the use of a multi level cell (MLC) storing more than two bits per cell is increasing, .

MLC 낸드 플래시는 한 셀 당 두 비트를 저장하고 그 두 비트는 상위 비트와 하위 비트로 나누어지며 상의 비트는 MSB 페이지, 하위 비트는 LSB 페이지로 구성된다. MLC 낸드 플래시에서 MSB 페이지와 LSB 페이지의 데이터는 비트를 읽는 센싱 과정이 서로 다르고 MSB 페이지의 센싱 과정이 LSB 페이지의 센싱 과정보다 복잡하기 때문에 MSB 페이지의 에러 발생 빈도가 높게 나타난다. 하지만 현재 사용되는 MLC 낸드 플래시의 제어기는 MSB 페이지와 LSB 페이지에 모두 같은 성능의 에러 정정 코드(Error Correction Code : ECC)를 사용하여 오류를 정정하고 있다. 이는 오류가 많이 발생하는 MSB 페이지의 경우 LSB 페이지에 비해 일찍 수명이 다하게 되는 수명 불균형 현상이 일어나게 된다. 또한, LSB 페이지의 경우 에러 발생 빈도보다 고성능의 오류 정정 코드(ECC)를 사용하게 됨으로써 읽기 동작에 걸리는 레이턴시(latency)와 스페어(spare) 영역에 대한 area 측면에서 오버헤드를 발생시킨다. The MLC NAND flash stores two bits per cell, and the two bits are divided into upper and lower bits. The upper bit consists of the MSB page and the lower bit consists of the LSB page. In MLC NAND flash, MSB page and LSB page data have different sensing process of bit and MSB page sensing process is more complicated than LSB page sensing process. However, the controller of the currently used MLC NAND flash corrects the error by using the same performance error correction code (ECC) in both the MSB page and the LSB page. This causes a life imbalance phenomenon in which an MSB page having a large number of errors becomes shorter than an LSB page. In addition, in the case of the LSB page, a high performance error correction code (ECC) is used rather than an error occurrence frequency, thereby causing overhead in terms of latency and spare area for a read operation.

또한, MLC 낸드 어레이로 구성된 SSD(Solid State Drive)는 클러스터드 페이지(clustered page)의 구성이 MSB 페이지는 MSB 페이지끼리 LSB 페이지는 LSB 페이지끼리 클러스터링되어, MSB 페이지끼리 클러스터링된 클러스터드 페이지(clustered page)의 수명이 LSB 페이지끼리 클러스터링된 클러스터드 페이지(clustered page)에 비해 현저히 짧다는 단점이 있다. 이 또한, 스페어 영역(spare area)의 부족 현상으로 더 강력한 에러 정정 코드(ECC)를 사용하지 못함에 있어서 발생하는 현상이다. In addition, a solid state drive (SSD) composed of MLC NAND arrays has a clustered page structure, MSB pages are clustered between MSB pages, LSB pages are clustered between LSB pages, MSB pages are clustered page ) Is significantly shorter than the clustered page clustered LSB pages. This is also a phenomenon that occurs when a stronger error correcting code (ECC) can not be used due to a shortage of a spare area.

이와 관련된 선행기술을 구체적으로 살펴보면, 한국공개공보 제2009-0022435호(발명의 명칭 : 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터 처리방법)에는 전원 오류시 동일한 메모리 셀들에 프로그램되는 페이지들간의 영향을 줄일 수 있는 데이터 관리 방법을 개시하고 있다. 이는 에러 검출용 부호 방식에 따라 재구성된 어느 하나의 페이지로 복수의 메모리 셀들을 프로그램하는데, 이때 프로그램 단계에서 오류 발생시 복수의 메모리 셀들로부터 독출된 에러 검출용 부호를 이용하여 어느 하나의 페이지의 유효성을 판단한다. Specifically, Korean Patent Laid-Open Publication No. 2009-0022435 (a system including a multi-bit flash memory device and a data processing method thereof) is provided with a memory for storing a plurality of pages And a data management method that can reduce the influence of the data. This is achieved by programming a plurality of memory cells into any one of the pages reconstructed according to the error detection coding scheme. In this case, when an error occurs in the program stage, the validity of any one page is determined by using an error detection code read from a plurality of memory cells .

또한, 한국공개공보 제2006-0023428호(발명의 명칭 : 낸드 플래시 메모리 장치 및 그것의 카피백 프로그램 방법)에는 카피백 프로그램 동작(제1페이지에 저장된 데이터를 제2페이지로 옮기는 동작) 중에 에러가 검출되면 카피백 프로그램을 종료하는 방법을 개시하고 있다. 이는 셀 어레이(cell array)에 저장된 데이터를 읽어와 에러를 검출하고, 에러 검출 결과에 따라 상기 데이터를 카피백 프로그램하고, 에러가 검출되면 카피백 프로그램 동작을 종료한다. In addition, in Korean Laid-Open Publication No. 2006-0023428 (entitled " NAND flash memory device and its copy back program method "), an error occurs during copy backup program operation (operation of moving data stored in the first page to the second page) And terminating the copy-back program when it is detected. This reads data stored in a cell array to detect an error, programs the data in accordance with an error detection result, and terminates the copy back program operation when an error is detected.

본 발명이 이루고자 하는 기술적 과제는, 클러스터링을 통해 읽기/쓰기 동작의 속도가 향상되고 관리해야 하는 메타데이터의 크기가 줄어들 수 있는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법을 제공하는 데 있다. 또한, 클러스터링된 페이지는 SSD(Solid State Device) 동작시 하나의 페이지로 인식되므로, 여러 채널에 걸쳐 구성된 클러스터링된 페이지는 채널의 수만큼 병렬적(parallel)으로 동작이 가능하여 큰 데이터를 처리할 수 있는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법을 제공하는 데 있다. An object of the present invention is to provide an apparatus and method for clustering pages of a multi-level cell flash memory in which the speed of read / write operations is increased through clustering and the size of metadata to be managed can be reduced. In addition, since the clustered page is recognized as one page in the SSD (Solid State Device) operation, the clustered pages configured over the multiple channels can operate in parallel as many as the number of channels, Level cell flash memory, and a page level clustering apparatus and method for a multi-level cell flash memory.

본 발명이 이루고자 하는 다른 기술적 과제는, 클러스터링을 통해 읽기/쓰기 동작의 속도가 향상되고 관리해야 하는 메타데이터의 크기가 줄어들 수 있는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. 또한, 클러스터링된 페이지는 SSD(Solid State Device) 동작시 하나의 페이지로 인식되므로, 여러 채널에 걸쳐 구성된 클러스터링된 페이지는 채널의 수만큼 병렬적(parallel)으로 동작이 가능하여 큰 데이터를 처리할 수 있는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. According to another aspect of the present invention, there is provided a page level clustering method for a multi-level cell flash memory in which a speed of a read / write operation is improved through clustering and a size of metadata to be managed can be reduced, And an object of the present invention is to provide a computer-readable recording medium having recorded thereon a computer program. In addition, since the clustered page is recognized as one page in the SSD (Solid State Device) operation, the clustered pages configured over the multiple channels can operate in parallel as many as the number of channels, Readable recording medium on which a program for causing a computer to execute a page-by-page clustering method of a multi-level cell flash memory is provided.

상기의 기술적 과제를 달성하기 위한 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치는, 한 셀(cell) 당 두 비트(bit)를 저장하고 상기 두 비트 중 상위 비트는 MSB(Most Significant Bit) 페이지를 이루고 하위 비트는 LSB(Least Significant Bit) 페이지를 이루는 멀티 레벨 셀 플래시 메모리에서 페이지 단위로 클러스터링하는 클러스터링 장치에 있어서, 제1채널 내에서 제1MSB 페이지와 제1LSB 페이지를 함께 묶어 제1클러스터링 페이지(clustering page)를 구성하는 클러스터링부; 상기 제1MSB 페이지와 상기 제1LSB 페이지에 서로 다른 ECC(Error Correction Code)를 적용하는 ECC부; 및 상기 제1클러스터링 페이지 내의 상기 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 상기 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제2패리티 비트(parity bit)는 상기 제1클러스터링 페이지 내의 상기 제1LSB 페이지의 제2데이터 영역(data area)을 제외한 제2스페어 영역(spare area)에 저장하는 제어부;를 구비한다. According to an aspect of the present invention, there is provided a page level clustering apparatus for a multi-level cell flash memory, which stores two bits per cell, and the most significant bit of the two bits is a most significant bit ) Page and the lower bits are clustered in page units in a multi-level cell flash memory constituting a LSB (Least Significant Bit) page, wherein the first clustering unit groups the first MSB page and the first LSB page together in the first channel, A clustering unit that constitutes a clustering page; An ECC unit applying different ECC (Error Correction Code) to the first MSB page and the first LSB page; And a first spare area excluding a first data area of the first MSB page among first parity bits generated after data is encoded in the first MSB page in the first clustering page, ) In a second spare area excluding a second data area of the first LSB page in the first clustering page (step < RTI ID = 0.0 > .

상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치는, 제1채널 내에서 제1MSB 페이지와 제1LSB 페이지를 함께 묶어 제1클러스터링 페이지(clustering page)를 구성하고, 상기 제1채널과 상이한 제2채널에서 제2MSB 페이지와 제2LSB 페이지를 함께 묶어 제2클러스터링 페이지를 구성하여, 상기 제1클러스터링 페이지와 상기 제2클러스터링 페이지를 함께 묶어 제3클러스터링 페이지를 구성하는 클러스터링부; 상기 제1MSB 페이지 및 상기 제1LSB 페이지, 상기 제2MSB 페이지 및 상기 제2LSB 페이지에 서로 다른 ECC(Error Correction Code)를 적용하는 ECC부; 및 상기 제1클러스터링 페이지 내의 상기 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 상기 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제4패리티 비트(parity bit)는 상기 제2클러스터링 페이지 내의 상기 제2LSB 페이지의 제4데이터 영역(data area)을 제외한 제4스페어 영역(spare area)에 저장하는 제어부;를 구비한다. According to another aspect of the present invention, there is provided a page-level clustering apparatus for a multi-level cell flash memory, comprising: a first clustering unit configured to group a first MSB page and a first LSB page in a first channel, And a second clustering page is formed by grouping the second MSB page and the second LSB page in a second channel different from the first channel so that the first clustering page and the second clustering page are grouped together to constitute a third clustering page A clustering unit; An ECC unit applying different ECC (Error Correction Codes) to the first MSB page and the first LSB page, the second MSB page, and the second LSB page; And a first spare area excluding a first data area of the first MSB page among first parity bits generated after data is encoded in the first MSB page in the first clustering page, ) In a fourth spare area excluding a fourth data area of the second LSB page in the second clustering page is included in the second clustering page .

상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법은, 한 셀(cell) 당 두 비트(bit)를 저장하고 상기 두 비트 중 상위 비트는 MSB(Most Significant Bit) 페이지를 이루고 하위 비트는 LSB(Least Significant Bit) 페이지를 이루는 멀티 레벨 셀 플래시 메모리에서 페이지 단위로 클러스터링하는 클러스터링 장치에 의해 수행되는 클러스터링 방법에 있어서, (a) 제1채널 내에서 제1MSB 페이지와 제1LSB 페이지를 함께 묶어 제1클러스터링 페이지(clustering page)를 구성하는 단계; (b) 상기 제1MSB 페이지와 상기 제1LSB 페이지에 서로 다른 ECC(Error Correction Code)를 적용하는 단계; 및 (c) 상기 제1클러스터링 페이지 내의 상기 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 상기 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제2패리티 비트(parity bit)는 상기 제1클러스터링 페이지 내의 상기 제1LSB 페이지의 제2데이터 영역(data area)을 제외한 제2스페어 영역(spare area)에 저장하는 단계;를 갖는다. According to another aspect of the present invention, there is provided a page-level clustering method of a multi-level cell flash memory, which stores two bits per cell, and the most significant bit of the two bits is an MSB Bit cell in a multi-level cell flash memory, the low-order bits being LSB (Least Significant Bit) pages, the method comprising the steps of: (a) And a first LSB page to form a first clustering page; (b) applying a different ECC (Error Correction Code) to the first MSB page and the first LSB page; And (c) a first spare area, excluding a first data area of the first MSB page, among first parity bits generated after data is encoded in the first MSB page in the first clustering page, storing a second parity bit exceeding a spare area in a second spare area excluding a second data area of the first LSB page in the first clustering page; .

상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법은, (a) 제1채널 내에서 제1MSB 페이지와 제1LSB 페이지를 함께 묶어 제1클러스터링 페이지(clustering page)를 구성하고, 상기 제1채널과 상이한 제2채널에서 제2MSB 페이지와 제2LSB 페이지를 함께 묶어 제2클러스터링 페이지를 구성하여, 상기 제1클러스터링 페이지와 상기 제2클러스터링 페이지를 함께 묶어 제3클러스터링 페이지를 구성하는 단계; (b) 상기 제1MSB 페이지 및 상기 제1LSB 페이지, 상기 제2MSB 페이지 및 상기 제2LSB 페이지에 서로 다른 ECC(Error Correction Code)를 적용하는 단계; 및 (c) 상기 제1클러스터링 페이지 내의 상기 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 상기 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제4패리티 비트(parity bit)는 상기 제2클러스터링 페이지 내의 상기 제2LSB 페이지의 제4데이터 영역(data area)을 제외한 제4스페어 영역(spare area)에 저장하는 단계;를 갖는다. According to another aspect of the present invention, there is provided a page level clustering method for a multi-level cell flash memory, the method comprising: (a) clustering a first MSB page and a first LSB page in a first channel, ), Constituting a second clustering page by grouping a second MSB page and a second LSB page in a second channel different from the first channel, and combining the first clustering page and the second clustering page together, Constituting a page; (b) applying a different ECC (Error Correction Code) to the first MSB page and the first LSB page, the second MSB page, and the second LSB page; And (c) a first spare area, excluding a first data area of the first MSB page, among first parity bits generated after data is encoded in the first MSB page in the first clustering page, storing a fourth parity bit exceeding a spare area in a fourth spare area excluding a fourth data area of the second LSB page in the second clustering page; .

본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법에 의하면, 클러스터링을 통해 읽기/쓰기 동작의 속도가 향상되고 관리해야 하는 메타데이터의 크기가 줄어든다. 또한, 클러스터링된 페이지는 SSD(Solid State Device) 동작시 하나의 페이지로 인식되므로, 여러 채널에 걸쳐 구성된 클러스터링된 페이지는 채널의 수만큼 병렬적(parallel)으로 동작이 가능하여 큰 데이터를 처리할 수 있다. 즉, 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법은 클러스터링된 페이지의 구조를 변경함으로써 MSB 페이지와 LSB 페이지 사이에 존재했던 에러 불균형 현상을 해소하고, MSB 페이지의 수명을 연장시킴으로써 SSD(Solid State Device) 전체의 신뢰성을 향상시키는 효과를 낼 수 있다. According to an apparatus and method for page unit clustering of a multi-level cell flash memory according to the present invention, clustering improves the speed of read / write operations and reduces the size of metadata to be managed. In addition, since the clustered page is recognized as one page in the SSD (Solid State Device) operation, the clustered pages configured over the multiple channels can operate in parallel as many as the number of channels, have. That is, an apparatus and method for clustering per page of a multi-level cell flash memory according to the present invention can solve the error imbalance phenomenon existing between the MSB and LSB pages by changing the structure of the clustered page and extend the lifetime of the MSB page The reliability of the entire solid state device (SSD) can be improved.

도 1은 종래 SSD(Solid State Device)의 클러스터링 페이지 구성을 도시한 도면,
도 2는 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치의 구성을 도시한 블록도,
도 3은 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법에 의해 클러스터링된 페이지 구성을 도시한 도면, 그리고,
도 4는 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법에 의해 클러스터링된 페이지에 패리티 비트가 저장되는 방식을 도시한 도면이다.
1 is a diagram showing a clustering page structure of a conventional solid state device (SSD)
FIG. 2 is a block diagram showing the configuration of a page-by-unit clustering apparatus of a multi-level cell flash memory according to the present invention;
3 is a diagram showing a page configuration clustered by a page unit clustering method of a multi-level cell flash memory according to the present invention,
4 is a diagram illustrating a method of storing parity bits in a clustered page by a page unit clustering method of a multi-level cell flash memory according to the present invention.

이하에서 첨부의 도면들을 참조하여 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout.

SSD(Solid State Device)는 데이터를 처리할 때 기존의 낸드 플래시 메모리의 페이지를 클러스터한 클러스터링 페이지(clustering page)를 기본 읽기/쓰기 동작의 단위로 사용한다. 따라서 도 1에 도시된 바와 같이 각 채널별로 같은 오프셋(offset)에 위치한 페이지를 묶어서 사용함으로써 다수의 채널을 이용한 병렬화를 통하여 동작의 속도를 증가시키고 관리하는 메타 데이타의 크기를 줄여 DRAM 및 낸드 플래시 메모리의 용량을 절약하는 효과를 갖게 된다. 또한, 신뢰성을 보장하기 위하여 ECC(Error Correction Code)를 사용하게 되는데 데이터가 저장되는 데이터 영역(data area)과는 별도로 스페어 영역(spare area)에 데이터를 인코딩한 후 발생하는 패리티 비트(parity bit)를 저장하여 관리하게 된다. 저장된 패리티 비트는 읽기 동작시 데이터와 같이 읽어 들여 디코딩 과정을 거쳐 에러를 찾아내고 수정하는데 사용된다. A solid state device (SSD) uses a clustering page, which is a cluster of pages of a conventional NAND flash memory, as a unit of basic read / write operation when processing data. Therefore, as shown in FIG. 1, by using the pages located at the same offset for each channel, the size of the meta data increases and manages the speed of operation through parallelization using a plurality of channels, thereby reducing the size of the DRAM and the NAND flash memory It is possible to save the capacity of the battery. In order to ensure reliability, an error correction code (ECC) is used. A parity bit is generated after data is encoded in a spare area separately from a data area where data is stored. And the like. The stored parity bit is used to read and decode the error in the read operation.

즉, 종래에는 도 1에 도시된 바와 같이 각 채널에 연결된 낸드 플래시 메모리에서 같은 오프셋의 블록 번호를 갖는 페이지들이 하나씩 클러스터링 된다. 이렇게 클러스터링된 페이지는 SSD 동작시 하나의 페이지로 인식되고 FTL(Flash Translation Layer)와 같은 소프트웨어 레벨과 매핑테이블 내의 정보에서도 한 페이지로 인식되어 동작하게 된다. 이렇게 여러 채널에 걸쳐서 구성된 클러스터링 페이지는 채널의 수만큼 병렬적(parallel)으로 동작할 수 있어 큰 데이터를 처리하는 동작 속도가 향상된다. 또한 클러스터링 하지 않았을 경우 모든 페이지의 주소 및 상태를 매핑 테이블에 유지해야 하는 반면, 클러스터링 하게 되면 클러스터링 페이지의 수만큼 반비례하게 유지되는 주소의 개수가 줄어들게 된다. 따라서 클러스터링을 통해 읽기/쓰기 동작 속도가 향상되고, 관리하여야 하는 메타데이타의 크기가 줄어드는 효과를 얻을 수 있다. That is, conventionally, as shown in FIG. 1, pages having block numbers of the same offset in the NAND flash memory connected to each channel are clustered one by one. Such a clustered page is recognized as one page in the SSD operation and is recognized as a page in the software level such as FTL (Flash Translation Layer) and the information in the mapping table. Clustering pages constructed over several channels can operate in parallel as many as the number of channels, thereby improving the operation speed of processing large data. In addition, if you do not cluster, you must keep the address and state of all pages in the mapping table, whereas clustering will reduce the number of addresses that are kept in inverse proportion to the number of clustering pages. Therefore, clustering improves the speed of read / write operations and reduces the size of the metadata to be managed.

ECC 인코딩 과정에서 기존의 데이터 이외에 패리티 비트가 발생하게 된다. 이는 에러 정정 능력에 비례하여 그 크기가 증가하게 된다. 이 패리티 비트는 낸드 플래시 메모리 페이지의 스페어 영역에 해당 페이지의 섹터 혹은 ECC 블록 순으로 저장하게된다. 디코딩시 데이터 영역의 데이터와 스페어 영역의 패리티 비트를 동시에 읽어 오류를 찾아내게 되고, 오류가 발견된 경우 정정하여 원래의 데이터를 복구해 호스트에 전달하고 필요하다면 다시 낸드 플래시 메모리에 정정된 데이터를 저장하게 된다. In the ECC encoding process, parity bits are generated in addition to the existing data. Which increases in proportion to the error correction capability. This parity bit is stored in the spare area of the NAND flash memory page in the order of the sector of the page or the ECC block. In case of decoding, the data area and the parity bit of the spare area are simultaneously read to find the error. If an error is detected, the original data is recovered and transmitted to the host. If necessary, the corrected data is stored again in the NAND flash memory .

그러나 MLC 낸드 플래시에서 MSB 페이지와 LSB 페이지의 데이터는 비트를 읽는 센싱 과정이 서로 다르고 MSB 페이지의 센싱 과정이 LSB 페이지의 센싱 과정보다 복잡하기 때문에 MSB 페이지에서 에러 발생 빈도가 높게 나타난다. 따라서 LSB 페이지 수준의 수명을 보장하기 위해서는 MSB 페이지는 LSB 페이지보다 더 강력한 ECC의 사용이 요구되고, 이 경우 패리티 비트를 저장하기 위한 공간이 더 많이 필요하게 된다. 패리티 비트는 각 페이지의 스페어 영역에 저장되고 스페어 영역의 제한이 낸드 플래시 메모리의 수명에 결정적인 영향을 주게 된다. However, in the MLC NAND flash, the data of the MSB page and the LSB page are different in the sensing process of reading the bits, and the sensing process of the MSB page is more complicated than the sensing process of the LSB page. Therefore, in order to guarantee the life of the LSB page level, the MSB page requires more powerful ECC than the LSB page, and more space is needed to store the parity bits. The parity bit is stored in the spare area of each page, and the limitation of the spare area has a decisive influence on the life of the NAND flash memory.

따라서 본 발명에서는 도 1에 도시된 바와 같이 기존의 MSB 페이지는 MSB 페이지끼리, LSB 페이지는 LSB 페이지끼리 클러스터링 하는 방법 대신 MSB 페이지와 LSB 페이지를 같이 클러스터링하여 MSB 페이지와 LSB 페이지에 각각 서로 다른 ECC를 적용하여 MSB 페이지의 패리티 비트를 LSB 페이지의 스페어 영역에 저장함으로써 MSB 페이지에 더 좋은 성능의 ECC를 사용하여 MSB 페이지의 신뢰성을 향상시키도록 한다. Therefore, in the present invention, as shown in FIG. 1, instead of clustering MSB pages between MSB pages and LSB pages by LSB pages, MSB pages and LSB pages are clustered together so that different ECCs And stores the parity bits of the MSB page in the spare area of the LSB page to improve the reliability of the MSB page by using a better performance ECC on the MSB page.

도 2는 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치(200)의 구성을 도시한 블록도이다. 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치(200)는 클러스터링부(210), ECC부(220) 및 제어부(230)를 포함할 수 있다.2 is a block diagram showing the configuration of an apparatus 200 for page-by-page clustering of a multi-level cell flash memory according to the present invention. The page-level clustering apparatus 200 of the multi-level cell flash memory according to the present invention may include a clustering unit 210, an ECC unit 220, and a control unit 230.

MLC 낸드 플래시 메모리는 한 블록 내에 LSB 페이지와 MSB 페이지가 교차하여 이루어져 있다. 따라서 인접한 두 개의 페이지를 클러스터링 하게 되면 MSB 페이지와 LSB 페이지를 동시에 한 클러스터링 페이지 내에 포함시킬 수 있으며, 페이지 번호 순차대로 쓰기 동작이 이루어져야 하는 낸드 플래시 메모리의 특성 또한 지킬 수 있다. The MLC NAND flash memory consists of an LSB page and an MSB page in one block. Therefore, if two adjacent pages are clustered, the MSB page and the LSB page can be included in one clustering page at the same time, and the characteristics of the NAND flash memory in which the write operation must be performed sequentially in the page number can be maintained.

더욱 구체적으로 도 3을 참조하여 살펴보면, 클러스터링부(210)는 제1채널 내에서 제1MSB 페이지와 제1LSB 페이지를 함께 묶어 제1클러스터링 페이지를 구성한다. 나아가, 제1채널과 상이한 제2채널 내에서 제2MSB 페이지와 제2LSB 페이지를 함께 묶어 생성된 제2클러스터링 페이지와 제1클러스터링 페이지를 함께 묶어 제3클러스터링 페이지를 구성할 수 있다. More specifically, referring to FIG. 3, the clustering unit 210 forms a first clustering page by grouping the first MSB page and the first LSB page together in the first channel. Furthermore, a third clustering page may be formed by grouping the second clustering page and the first clustering page, which are generated by grouping the second MSB page and the second LSB page together in a second channel different from the first channel.

ECC부(220)는 제1MSB 페이지와 제1LSB 페이지에 서로 다른 ECC(Error Correction Code)를 적용한다. 상술한 바와 같이, MSB 페이지는 LSB 페이지보다 낸드 플래시 메모리의 물리적인 특성 때문에 에러 발생 빈도가 훨씬 크다. 따라서 한 클러스터링 페이지 내에서도 MSB 페이지가 LSB 페이지보다 더 좋은 성능의 ECC를 사용하는 것이 바람직하다. 따라서 MSB 페이지는 LSB 페이지보다 더 좋은 성능의 ECC를 사용함으로써 MSB 페이지의 수명을 LSB 페이지만큼 보장받을 수 있도록 한다. 즉, ECC부(220)는 제1MSB 페이지와 제2MSB 페이지에 각각 제1LSB 페이지와 제2LSB 페이지보다 에러 정정 성능이 더 좋은 ECC를 적용한다. The ECC unit 220 applies a different ECC (Error Correction Code) to the first MSB page and the first LSB page. As described above, the MSB page is much more error-prone due to the physical characteristics of the NAND flash memory than the LSB page. Therefore, even within one clustering page, it is desirable that the MSB page use better ECC than the LSB page. Therefore, the MSB page uses a better performance ECC than the LSB page, so that the lifetime of the MSB page can be guaranteed by the LSB page. That is, the ECC unit 220 applies ECC having better error correction performance to the first MSB page and the second MSB page than the first LSB page and the second LSB page, respectively.

그러나 페이지마다 스페어 영역의 크기는 정해져 있기 때문에 MSB 페이지에서 발생한 패리티 비트를 저장할 공간이 부족하게 된다. 따라서 도 4에 도시된 바와 같이 한 클러스터링 페이지 내의 MSB 페이지의 패리티 비트 중에서 MSB 페이지의 스페어 영역에 저장하지 못하는 부분을 LSB 페이지의 스페어 영역에 저장하게 되면 MSB 페이지에 보다 좋은 성능의 ECC를 사용하는 것이 가능해진다. 또한, 읽기 동작 및 쓰기 동작시에 같은 블록 내 페이지를 2회 읽고 쓰는 오버헤드를 감수하면, SSD 전체의 신뢰성이 향상되어 수명이 연장되는 효과를 가져온다. However, since the size of the spare area is determined for each page, there is not enough space to store the parity bits generated in the MSB page. Therefore, if a portion of the parity bits of the MSB page in one clustering page that can not be stored in the spare area of the MSB page is stored in the spare area of the LSB page as shown in FIG. 4, the better performance ECC is used for the MSB page It becomes possible. In addition, when the overhead of reading and writing the page in the same block twice during the read operation and the write operation is taken, the reliability of the entire SSD is improved and the service life is prolonged.

더욱 구체적으로 살펴보면, 도 4의 (a)를 참조하면, 제어부(230)는 제1클러스터링 페이지 내의 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제2패리티 비트(parity bit)는 제1클러스터링 페이지 내의 제1LSB 페이지의 제2데이터 영역(data area)을 제외한 제2스페어 영역(spare area)에 저장한다. More specifically, referring to FIG. 4A, the control unit 230 determines whether or not the first MSB page of the first MSB page among the first parity bits generated after the data is encoded in the first MSB page in the first clustering page The second parity bit exceeding the first spare area excluding the first data area is a parity bit of the second cluster area excluding the second data area of the first LSB page in the first clustering page. It is stored in the spare area.

나아가, 도 4의 (b)를 참조하면, 제1클러스터링 페이지 내의 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제4패리티 비트(parity bit)는 제2클러스터링 페이지 내의 제2LSB 페이지의 제4데이터 영역(data area)을 제외한 제4스페어 영역(spare area)에 저장한다. 또한, 제2클러스터링 페이지 내의 제2MSB 페이지에서 데이터를 인코딩한 후 발생하는 제3패리티 비트(parity bit) 중 제2MSB 페이지의 제3데이터 영역(data area)을 제외한 제3스페어 영역(spare area)을 초과하는 제3패리티 비트(parity bit)는 제1클러스터링 페이지 내의 제1LSB 페이지의 제2데이터 영역(data area)을 제외한 제2스페어 영역(spare area)에 저장한다. 4B, a first data area of the first MSB page among the first parity bits generated after data is encoded in the first MSB page in the first clustering page, The fourth parity bit exceeding the first spare area is stored in the fourth spare area excluding the fourth data area of the second LSB page in the second clustering page do. In addition, a third spare area excluding the third data area of the second MSB page among the third parity bits generated after the data is encoded in the second MSB page in the second clustering page is referred to as a " spare area " The exceeding third parity bit is stored in the second spare area excluding the second data area of the first LSB page in the first clustering page.

즉, 도 4의 (a)는 동일 채널 내에서 LSB 페이지의 스페어 영역을 이용하여 MSB 페이지의 패리티 비트가 저장되는 방식을 도시한 도면이고, 도 4의 (b)는 상이한 채널의 LSB 페이지의 스페어 영역을 이용하여 MSB 페이지의 패리티 비트가 저장되는 방식을 도시한 도면이다. That is, FIG. 4A illustrates a method of storing parity bits of an MSB page using a spare area of an LSB page in the same channel, and FIG. 4B illustrates a method of storing spare bits of LSB pages of different channels Lt; RTI ID = 0.0 > MSB < / RTI >

도 4의 (a) 방식은 동일 MSB 페이지의 패리티 비트 중 스페어 영역을 초과하는 크기의 패리티 비트를 동일 채널 내 같은 클러스터링 페이지에 속한 LSB 페이지의 스페어 영역에 저장하는 방식이다. 즉, MSB 페이지에 속하는 8개의 섹터(sectors) 중에 5개 섹터(sector)의 패리티 정보가 MSB 페이지의 스페어 영역에 저장되고, 나머지 세 개의 섹터(sector)에 해당하는 패리티 비트 정보는 동일 채널의 LSB 페이지의 스페어 영역에 저장되게 된다. 4A, a parity bit having a size exceeding a spare area among parity bits of the same MSB page is stored in a spare area of an LSB page belonging to the same clustering page in the same channel. That is, parity information of five sectors among eight sectors belonging to the MSB page is stored in the spare area of the MSB page, and parity bit information corresponding to the remaining three sectors is stored in the LSB of the same channel And stored in the spare area of the page.

도 4의 (b) 방식은 부분 읽기(partial read)시, MSB 페이지를 읽을 때 병렬성(parallel)을 확보하기 위해 MSB 페이지의 패리티 비트를 동일 채널의 LSB 페이지가 아닌 다른 채널의 LSB 페이지의 스페어 영역에 저장하는 방식이다. 이 경우, 다른 채널의 LSB 페이지의 스페어 영역에 저장할 경우 제1채널의 MSB 페이지를 접근하는 경우 (a)의 방식은 한 채널 내에서 LSB 페이지와 MSB 페이지가 각각 1회씩, 총 2회 읽기(read) 동작이 발생한다. 따라서 읽기(read) 동작시 걸리는 속도는 2배로 늘어나게 된다. 그러나 (b) 방식의 경우는 MSB 페이지를 읽을 때 제1채널과 제2채널에 동시에 한 페이지씩 읽기(read) 동작이 일어나게 되어 걸리는 속도는 한 페이지를 읽을 때와 같은 속도가 걸리는 장점이 있다. 4B, in order to ensure parallelism when reading the MSB page, the parity bit of the MSB page is set to the spare area of the LSB page of the channel other than the LSB page of the same channel, . In this case, when the MSB page of the first channel is accessed in the case of storing in the spare area of the LSB page of another channel, the method of (a) is such that the LSB page and the MSB page are once read in one channel, ) Operation occurs. Therefore, the speed of read operation is doubled. However, in the case of the (b) method, when the MSB page is read, one page at a time is simultaneously read to the first channel and the second channel, and the speed at which the page is read is the same as when reading one page.

본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법을 실제 구현한 실시예를 살펴본다. 아래 표 1은 4 Gbyte MLC를 기준으로 작성한 것으로 그 specification은 다음과 같다. An embodiment in which a page unit clustering method of a multi-level cell flash memory according to the present invention is actually implemented will be described. Table 1 below is based on 4 Gbyte MLC and its specification is as follows.

1 page 크기1 page size 8 Kbyte8 Kbytes spare 크기spare size 640 byte640 byte page/blockpage / block 256 개256 chip / blockchip / block 2048 개2048

또한, 2 Kbyte 단위로 오류 정정을 수행하는 ECC의 일종인 BCH Code의 specification은 다음 표 2와 같다. The specification of the BCH code, which is a type of ECC that performs error correction in 2 Kbyte units, is shown in Table 2 below.

(n, k, t) BCH Codes(n, k, t) BCH Codes Latency (㎲)Latency (㎲) parity bits (bits per 2K)parity bits (bits per 2K) 1One (16459, 16384,5)(16459, 16384, 5) 20.720.7 7575 22 (17914,16384,102)(17914, 16384, 102) 40.240.2 15301530

즉, 기존 방법으로 클러스터링하는 경우를 살펴보면, 표 1의 4 Gbyte MLC 낸드 4개를 이용하여 4채널 1웨이 SSD를 구성한다고 가정하면, 한 채널당 한 개의 낸드가 구성된다. 각 채널에서 같은 오프셋을 갖는 페이지들이 하나의 클러스터링 페이지를 구성한다. 따라서 이 경우 도 1에 도시된 바와 같이 클러스터링 페이지가 구성되며 하나의 클러스터링 페이지는 34KB의 크기를 갖는다. That is, assuming that four 4-Gbyte MLC NANDs in Table 1 are used to form a 4-channel 1-way SSD, one NAND is formed per one channel. Pages with the same offset in each channel constitute one clustering page. Therefore, in this case, a clustering page is constructed as shown in FIG. 1, and one clustering page has a size of 34 KB.

그러나 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법은 도 3에 도시된 바와 같이, 기존 방법과는 달리 한 채널 내에서 MSB 페이지 하나와 LSB 페이지 하나가 같이 클러스터링 되어 기존의 4개 채널에서 각각 하나씩 4개의 페이지를 클러스터링하는 방법과는 다르게, 두 개의 채널에서 한 채널당 MSB 페이지와 LSB 페이지 하나씩 클러스터링하여 4개의 페이지를 하나의 클러스터링 페이지로 만든다. However, as shown in FIG. 3, in the page level clustering method of the multi-level cell flash memory according to the present invention, unlike the conventional method, one MSB page and one LSB page are clustered in one channel, Unlike clustering four pages one by one, clustering one MSB page and one LSB page per channel in two channels makes four pages into one clustering page.

이때 표 1의 1번 BCH를 LSB 페이지에 적용하고, 2번 BCH를 MSB 페이지에 적용한다. LSB 페이지에 적용할 경우 발생하는 패리티 비트의 수는 300 bit로 스페어 영역에 저장하기에 충분한 크기이다. 그러나 MSB 페이지의 경우 875 Bytes의 패리티 비트가 발생하며, 이는 스페어 영역 전체를 사용하여도 부족한 크기이다. 따라서 도 4와 같이 패리티 비트의 일부를 LSB 페이지의 스페어 영역의 남는 부분에 저장한다. In this case, we apply the 1st BCH in Table 1 to the LSB page and apply the 2nd BCH to the MSB page. When applied to an LSB page, the number of parity bits generated is 300 bits, which is large enough to be stored in the spare area. However, the MSB page generates 875 Bytes of parity bits, which is insufficient even using the entire spare area. Therefore, as shown in FIG. 4, a part of the parity bit is stored in the remaining part of the spare area of the LSB page.

이를 통해 본 발명에 따른 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법은 클러스터링 페이지의 구조를 기존과 달리 변경함으로써 MSB 페이지와 LSB 페이지 사이에 존재했던 에러 불균형 현상을 해소하고, MSB 페이지의 수명을 연장시킴으로써 SSD 전체의 신뢰성을 향상시키는 효과를 낼 수 있다. Accordingly, the page-by-page clustering method of the multi-level cell flash memory according to the present invention can solve the error imbalance phenomenon existing between the MSB and LSB pages by changing the structure of the clustering page, The reliability of the entire SSD can be improved.

이상의 설명에서 '제1', '제2' 등의 용어는 다양한 구성요소들을 설명하기 위해 사용되었지만, 각각의 구성요소들은 이러한 용어들에 의해 한정되어서는 안 된다. 즉, '제1', '제2' 등의 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 목적으로 사용되었다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다. 또한, '및/또는'이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함하는 의미로 사용되었다. In the above description, terms such as 'first', 'second', and the like are used to describe various components, but each component should not be limited by these terms. That is, the terms 'first', 'second', and the like are used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a 'first component' may be referred to as a 'second component', and similarly, a 'second component' may also be referred to as a 'first component' . Also, the term " and / or " is used in the sense of including any combination of a plurality of related listed items or any of the plurality of related listed items.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 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 a carrier wave (transmission via the Internet). In addition, the computer-readable recording medium may be distributed to a computer system connected to a wired / wireless communication network, and a computer-readable code may 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.

200 : 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치
210 : 클러스터링부
220 : ECC부
230 : 제어부
200: Per-page clustering device of multi-level cell flash memory
210: clustering unit
220: ECC Department
230:

Claims (12)

한 셀(cell) 당 두 비트(bit)를 저장하고 상기 두 비트 중 상위 비트는 MSB(Most Significant Bit) 페이지를 이루고 하위 비트는 LSB(Least Significant Bit) 페이지를 이루는 멀티 레벨 셀 플래시 메모리에서 페이지 단위로 클러스터링하는 클러스터링 장치에 있어서,
제1채널 내에서 제1MSB 페이지와 제1LSB 페이지를 함께 묶어 제1클러스터링 페이지(clustering page)를 구성하는 클러스터링부;
상기 제1MSB 페이지와 상기 제1LSB 페이지에 서로 다른 ECC(Error Correction Code)를 적용하는 ECC부; 및
상기 제1클러스터링 페이지 내의 상기 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 상기 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제2패리티 비트(parity bit)는 상기 제1클러스터링 페이지 내의 상기 제1LSB 페이지의 제2데이터 영역(data area)을 제외한 제2스페어 영역(spare area)에 저장하는 제어부;를 포함하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치.
And the lower bit of the multi-level cell flash memory constitutes a least significant bit (LSB) page. In the multi-level cell flash memory, CLAIMS 1. A clustering apparatus for clustering a plurality of clusters
A clustering unit for grouping a first MSB page and a first LSB page in a first channel to form a first clustering page;
An ECC unit applying different ECC (Error Correction Code) to the first MSB page and the first LSB page; And
A first spare area excluding a first data area of the first MSB page among first parity bits generated after data is encoded in the first MSB page in the first clustering page, And a second parity bit that is greater than the first parity bit in the second clustering page is stored in a second spare area excluding a second data area of the first LSB page in the first clustering page Wherein said page level clustering device is a multi-level cell flash memory.
제 1항에 있어서,
상기 클러스터링부는 상기 제1채널과 상이한 제2채널 내에서 제2MSB 페이지와 제2LSB 페이지를 함께 묶어 생성된 제2클러스터링 페이지와 상기 제1클러스터링 페이지를 함께 묶어 제3클러스터링 페이지를 구성하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치.
The method according to claim 1,
Wherein the clustering unit forms a third clustering page by grouping the second clustering page generated by grouping the second MSB page and the second LSB page together in the second channel different from the first channel together with the first clustering page A page - level clustering device for multi - level cell flash memory.
제 1항 또는 제 2항에 있어서,
상기 ECC부는 상기 제1MSB 페이지와 상기 제2MSB 페이지에 각각 상기 제1LSB 페이지와 상기 제2LSB 페이지보다 에러 정정 성능이 더 좋은 ECC를 적용하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치.
3. The method according to claim 1 or 2,
Wherein the ECC unit applies an ECC having better error correction performance to the first MSB page and the second MSB page than the first LSB page and the second LSB page, respectively.
제 2항에 있어서,
상기 제어부는 상기 제1클러스터링 페이지 내의 상기 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 상기 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제4패리티 비트(parity bit)는 상기 제2클러스터링 페이지 내의 상기 제2LSB 페이지의 제4데이터 영역(data area)을 제외한 제4스페어 영역(spare area)에 저장하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치.
3. The method of claim 2,
Wherein the control unit includes a first data area of the first MSB page excluding a first data area of the first MSB page among first parity bits generated after data is encoded in the first MSB page in the first clustering page and a fourth parity bit exceeding a spare area is stored in a fourth spare area excluding a fourth data area of the second LSB page in the second clustering page A page-level clustering device of a multi-level cell flash memory.
제 4항에 있어서,
상기 제어부는 제2클러스터링 페이지 내의 상기 제2MSB 페이지에서 데이터를 인코딩한 후 발생하는 제3패리티 비트(parity bit) 중 상기 제2MSB 페이지의 제3데이터 영역(data area)을 제외한 제3스페어 영역(spare area)을 초과하는 제3패리티 비트(parity bit)는 상기 제1클러스터링 페이지 내의 상기 제1LSB 페이지의 제2데이터 영역(data area)을 제외한 제2스페어 영역(spare area)에 저장하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치.
5. The method of claim 4,
The controller may further include a third spare area (spare) excluding a third data area of the second MSB page among a third parity bit generated after the data is encoded in the second MSB page in the second clustering page. area in the first clustering page is stored in a second spare area excluding a second data area of the first LSB page in the first clustering page A page - level clustering device for multi - level cell flash memory.
한 셀(cell) 당 두 비트(bit)를 저장하고 상기 두 비트 중 상위 비트는 MSB(Most Significant Bit) 페이지를 이루고 하위 비트는 LSB(Least Significant Bit) 페이지를 이루는 멀티 레벨 셀 플래시 메모리에서 페이지 단위로 클러스터링하는 클러스터링 장치에 의해 수행되는 클러스터링 방법에 있어서,
(a) 제1채널 내에서 제1MSB 페이지와 제1LSB 페이지를 함께 묶어 제1클러스터링 페이지(clustering page)를 구성하는 단계;
(b) 상기 제1MSB 페이지와 상기 제1LSB 페이지에 서로 다른 ECC(Error Correction Code)를 적용하는 단계; 및
(c) 상기 제1클러스터링 페이지 내의 상기 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 상기 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제2패리티 비트(parity bit)는 상기 제1클러스터링 페이지 내의 상기 제1LSB 페이지의 제2데이터 영역(data area)을 제외한 제2스페어 영역(spare area)에 저장하는 단계;를 포함하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법.
And the lower bit of the multi-level cell flash memory constitutes a least significant bit (LSB) page. In the multi-level cell flash memory, CLAIMS 1. A method for clustering,
(a) grouping a first MSB page and a first LSB page together in a first channel to form a first clustering page;
(b) applying a different ECC (Error Correction Code) to the first MSB page and the first LSB page; And
(c) a first spare area, excluding a first data area of the first MSB page, among first parity bits generated after data is encoded in the first MSB page in the first clustering page storing a second parity bit exceeding a spare area in a second spare area excluding a second data area of the first LSB page in the first clustering page; Level cell flash memory in a page-by-page clustering manner.
제 6항에 있어서,
상기 (a) 단계는 상기 제1채널과 상이한 제2채널 내에서 제2MSB 페이지와 제2LSB 페이지를 함께 묶어 생성된 제2클러스터링 페이지와 상기 제1클러스터링 페이지를 함께 묶어 제3클러스터링 페이지를 구성하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법.
The method according to claim 6,
In the step (a), a second clustering page generated by grouping a second MSB page and a second LSB page in a second channel different from the first channel and the first clustering page are grouped together to form a third clustering page A method for clustering pages in a multi-level cell flash memory.
제 7항에 있어서,
상기 (b) 단계는 상기 제2MSB 페이지에 상기 제2LSB 페이지보다 에러 정정 성능이 더 좋은 ECC를 적용하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법.
8. The method of claim 7,
Wherein the step (b) applies an ECC having a better error correction performance to the second MSB page than the second LSB page.
제 6항에 있어서,
상기 (b) 단계는 상기 제1MSB 페이지에 상기 제1LSB 페이지보다 에러 정정 성능이 더 좋은 ECC를 적용하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법.
The method according to claim 6,
And the step (b) applies an ECC having a better error correction performance to the first MSB page than the first LSB page.
제 7항에 있어서,
상기 제1클러스터링 페이지 내의 상기 제1MSB 페이지에서 데이터를 인코딩한 후 발생하는 제1패리티 비트(parity bit) 중 상기 제1MSB 페이지의 제1데이터 영역(data area)을 제외한 제1스페어 영역(spare area)을 초과하는 제4패리티 비트(parity bit)는 상기 제2클러스터링 페이지 내의 상기 제2LSB 페이지의 제4데이터 영역(data area)을 제외한 제4스페어 영역(spare area)에 저장하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법.
8. The method of claim 7,
A first spare area excluding a first data area of the first MSB page among first parity bits generated after data is encoded in the first MSB page in the first clustering page, And a fourth parity bit exceeding the first data area is stored in a fourth spare area excluding the fourth data area of the second LSB page in the second clustering page. A method for page - by - page clustering of cell flash memory.
제 10항에 있어서,
상기 제2클러스터링 페이지 내의 상기 제2MSB 페이지에서 데이터를 인코딩한 후 발생하는 제3패리티 비트(parity bit) 중 상기 제2MSB 페이지의 제3데이터 영역(data area)을 제외한 제3스페어 영역(spare area)을 초과하는 제3패리티 비트(parity bit)는 상기 제1클러스터링 페이지 내의 상기 제1LSB 페이지의 제2데이터 영역(data area)을 제외한 제2스페어 영역(spare area)에 저장하는 것을 특징으로 하는 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법.
11. The method of claim 10,
A third spare area excluding a third data area of the second MSB page among a third parity bit generated after data is encoded in the second MSB page in the second clustering page, And a third parity bit that is greater than the first parity bit is stored in a second spare area excluding a second data area of the first LSB page in the first clustering page. A method for page - by - page clustering of cell flash memory.
제 6항 내지 제 11항 중 어느 한 항에 기재된 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. A computer-readable recording medium having recorded thereon a program for causing a computer to execute a page unit clustering method of the multi-level cell flash memory according to any one of claims 6 to 11.
KR1020120133790A 2012-11-23 2012-11-23 Apparatus and method for page unit clustering of multi level cell flash memory KR101419335B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120133790A KR101419335B1 (en) 2012-11-23 2012-11-23 Apparatus and method for page unit clustering of multi level cell flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120133790A KR101419335B1 (en) 2012-11-23 2012-11-23 Apparatus and method for page unit clustering of multi level cell flash memory

Publications (2)

Publication Number Publication Date
KR20140066498A KR20140066498A (en) 2014-06-02
KR101419335B1 true KR101419335B1 (en) 2014-07-16

Family

ID=51123208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120133790A KR101419335B1 (en) 2012-11-23 2012-11-23 Apparatus and method for page unit clustering of multi level cell flash memory

Country Status (1)

Country Link
KR (1) KR101419335B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100002731A (en) * 2008-06-30 2010-01-07 한국산업기술대학교산학협력단 Clustering device for flash memory and method thereof
KR20100046178A (en) * 2007-07-09 2010-05-06 마이크론 테크놀로지, 인크. Error correction for memory
US20100262804A1 (en) 2009-04-10 2010-10-14 International Business Machines Corporation Effective Memory Clustering to Minimize Page Fault and Optimize Memory Utilization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100046178A (en) * 2007-07-09 2010-05-06 마이크론 테크놀로지, 인크. Error correction for memory
KR20100002731A (en) * 2008-06-30 2010-01-07 한국산업기술대학교산학협력단 Clustering device for flash memory and method thereof
US20100262804A1 (en) 2009-04-10 2010-10-14 International Business Machines Corporation Effective Memory Clustering to Minimize Page Fault and Optimize Memory Utilization

Also Published As

Publication number Publication date
KR20140066498A (en) 2014-06-02

Similar Documents

Publication Publication Date Title
JP5944941B2 (en) Method and apparatus for storing data in a multi-level cell flash memory device using cross-page sector, multi-page encoding and per-page encoding
JP5749860B2 (en) Memory device and configuration method for memory device
US9037951B2 (en) Data management in solid state storage systems
US7559004B1 (en) Dynamic redundant area configuration in a non-volatile memory system
US9465552B2 (en) Selection of redundant storage configuration based on available memory space
US20230275601A1 (en) Memory controller, memory system, and memory control method
TWI768763B (en) Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server
CN1499531A (en) Method and device for management of data integrity in non-volatile memory system
US9424178B2 (en) Optimized flash memory without dedicated parity area and with reduced array size
US9063869B2 (en) Method and system for storing and rebuilding data
TWI591643B (en) Data protecting method, memory control circuit unit and memory storage device
EP2218003A1 (en) Correction of errors in a memory array
US11048580B2 (en) Data duplication in a non-volatile memory
US20170154656A1 (en) Data programming method and memory storage device
US8463982B2 (en) Method of storing and accessing error correcting code in NAND flash
CN109872764B (en) ECC multi-code rate coding and decoding system and method for multi-level storage unit flash memory
US20200371871A1 (en) Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
JP2017504920A (en) Method, system and computer program for operating a data storage system including a non-volatile memory array
KR101417827B1 (en) Apparatus and method for controlling flash memory for storing error correction code
US11934264B2 (en) ECC parity biasing for Key-Value data storage devices
KR101419335B1 (en) Apparatus and method for page unit clustering of multi level cell flash memory
CN114203250A (en) Data storage method and data reading method of solid-state memory and solid-state memory
US20200264953A1 (en) Error correction in data storage devices
CN107239224B (en) Data protection method, memory control circuit unit and memory storage device
US9436547B2 (en) Data storing method, memory control circuit unit and memory storage device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180702

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 6