KR101308616B1 - Non-volatile memory system - Google Patents

Non-volatile memory system Download PDF

Info

Publication number
KR101308616B1
KR101308616B1 KR1020110134573A KR20110134573A KR101308616B1 KR 101308616 B1 KR101308616 B1 KR 101308616B1 KR 1020110134573 A KR1020110134573 A KR 1020110134573A KR 20110134573 A KR20110134573 A KR 20110134573A KR 101308616 B1 KR101308616 B1 KR 101308616B1
Authority
KR
South Korea
Prior art keywords
page data
memory device
nonvolatile memory
nand flash
read
Prior art date
Application number
KR1020110134573A
Other languages
Korean (ko)
Other versions
KR20130067721A (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 KR1020110134573A priority Critical patent/KR101308616B1/en
Publication of KR20130067721A publication Critical patent/KR20130067721A/en
Application granted granted Critical
Publication of KR101308616B1 publication Critical patent/KR101308616B1/en

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes

Abstract

비휘발성 메모리 시스템은 적어도 하나 이상의 낸드 플래시 메모리 장치, 낸드 플래시 메모리 장치에 저장된 페이지 데이터들 각각에 대한 이전 정정 비트 정보를 저장하는 비휘발성 메모리 장치, 및 독출 명령 신호에 응답하여 낸드 플래시 메모리 장치로부터 페이지 데이터를 독출하고, 이전 정정 비트 정보를 기초로 독출된 페이지 데이터의 비트들을 정정하여 비트 정정된 페이지 데이터를 생성하며, 비트 정정된 페이지 데이터에 대하여 이씨씨 디코딩을 수행하여 에러 정정된 페이지 데이터를 생성하고, 에러 정정된 페이지 데이터를 호스트에 독출 데이터로서 출력하며, 새로운 정정 비트 정보를 비휘발성 메모리 장치에 저장시켜 이전 정정 비트 정보를 갱신하는 컨트롤러를 포함할 수 있다. 이에, 비휘발성 메모리 시스템은 이씨씨의 정정 능력을 향상시키지 않고서도 에러 체크 및 정정 기능을 향상시킬 수 있다.The nonvolatile memory system includes at least one NAND flash memory device, a nonvolatile memory device storing previous correction bit information for each of page data stored in the NAND flash memory device, and a page from the NAND flash memory device in response to a read command signal. Reads the data, corrects the bits of the page data read based on the previous correction bit information to generate bit corrected page data, and performs BC correction on the bit corrected page data to generate error corrected page data And a controller for outputting error corrected page data as read data to the host, and storing new correction bit information in a nonvolatile memory device to update previous correction bit information. Thus, the nonvolatile memory system can improve the error checking and correction function without improving the correction capability of the IC.

Description

비휘발성 메모리 시스템 {NON-VOLATILE MEMORY SYSTEM}Nonvolatile Memory System {NON-VOLATILE MEMORY SYSTEM}

본 발명은 반도체 메모리 시스템에 관한 것으로, 보다 상세하게는 에러 체크 및 정정(error check and correction) 기능을 제공하는 비휘발성 메모리 시스템에 관한 것이다.TECHNICAL FIELD The present invention relates to a semiconductor memory system, and more particularly, to a nonvolatile memory system that provides an error check and correction function.

반도체 메모리 장치는 전원이 공급되지 않는 상태에서 데이터를 보존할 수 있는지에 따라 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분될 수 있다. 최근에는, 비휘발성 메모리 장치 중에서 멀티 레벨 셀(Multi Level Cell; MLC)들을 구비하는 낸드 플래시 메모리 장치(NAND flash memory device)가 소형화 및 대용량화에 적합하여 널리 사용되고 있다. 일반적으로, 낸드 플래시 메모리 장치는 페이지 단위로 데이터(이하, 페이지 데이터)에 대한 기입 동작(write operation) 및 독출 동작(read operation)을 수행하는데, 멀티 레벨 셀(Multi Level Cell; MLC)들을 구비하는 낸드 플래시 메모리 장치가 소형화 및 대용량화됨에 따라, 페이지 데이터에 대한 독출 동작시 문턱 전압 산포에 있어 충분한 마진(margin)을 확보하지 못하여, 그에 따른 에러가 발생할 수 있다.The semiconductor memory device may be classified into a volatile memory device and a nonvolatile memory device according to whether data can be stored in a state where power is not supplied. Recently, a NAND flash memory device having Multi Level Cells (MLCs) among nonvolatile memory devices has been widely used for miniaturization and large capacity. In general, a NAND flash memory device performs a write operation and a read operation on data (hereinafter, page data) in units of pages, and includes multi level cells (MLCs). As NAND flash memory devices are miniaturized and large in capacity, sufficient margins may not be secured in the threshold voltage distribution during a read operation on page data, and thus an error may occur.

이에, 낸드 플래시 메모리 장치를 구비하는 비휘발성 메모리 시스템은 컨트롤러에 이씨씨(Error Correction Code; ECC) 유닛(즉, 이씨씨 엔진)을 구비함으로써 에러 체크 및 정정 기능을 제공할 수 있다. 그러나, 이씨씨의 정정 능력에는 한계가 있기 때문에, 하나의 페이지 데이터에 대하여 에러 체크 및 정정이 수행될 때, 상기 페이지 데이터에 대한 에러(error)들이 증가함에 따라 이씨씨의 정정 능력을 넘어서면, 낸드 플래시 메모리 장치는 상기 페이지 데이터를 다른 블록에 기입하고 상기 페이지 데이터가 기입되어 있던 블록을 이레이즈하는 이레이즈 리프레쉬 동작(erase refresh operation)을 수행해야 한다. 그 결과, 상기 이레이즈 리프레쉬 동작이 자주 수행되어 비휘발성 메모리 시스템의 전반적인 성능 및 수명은 크게 저하된다는 문제점이 있다.Accordingly, a nonvolatile memory system including a NAND flash memory device may provide an error check and correction function by including an Error Correction Code (ECC) unit (that is, an ECC engine) in a controller. However, since Mr. Lee's correction capability is limited, when error checking and correction is performed on one page data, if the error for the page data increases, the correction capability of Mr. Lee exceeds, The NAND flash memory device should perform an erase refresh operation for writing the page data to another block and erasing the block in which the page data is written. As a result, the erase refresh operation is frequently performed, and thus, the overall performance and lifespan of the nonvolatile memory system are greatly reduced.

본 발명의 일 목적은 적어도 하나 이상의 낸드 플래시 메모리 장치를 위하여 에러 체크 및 정정 기능을 제공함에 있어서, 이씨씨(Error Correction Code; ECC)의 정정 능력을 향상시키지 않고서도, 에러 체크 및 정정 기능을 향상시킬 수 있는 비휘발성 메모리 시스템을 제공하는 것이다. 다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.SUMMARY OF THE INVENTION An object of the present invention is to provide an error check and correction function for at least one NAND flash memory device, thereby improving error checking and correction without improving the error correction capability of an ECC. To provide a nonvolatile memory system that can be. It should be understood, however, that the present invention is not limited to the above-described embodiments, but may be variously modified without departing from the spirit and scope of the invention.

본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 적어도 하나 이상의 낸드 플래시 메모리 장치, 상기 낸드 플래시 메모리 장치에 저장된 페이지 데이터들 각각에 대한 이전(previous) 정정 비트 정보를 저장하는 비휘발성 메모리 장치, 및 독출 명령 신호에 응답하여 상기 낸드 플래시 메모리 장치로부터 페이지 데이터를 독출하고, 상기 이전 정정 비트 정보를 기초로 상기 독출된 페이지 데이터의 비트(bit)들을 정정하여 비트 정정된 페이지 데이터를 생성하며, 상기 비트 정정된 페이지 데이터에 대하여 이씨씨(Error Correction Code; ECC) 디코딩(decoding)을 수행하여 에러 정정된 페이지 데이터를 생성하고, 상기 에러 정정된 페이지 데이터를 호스트(host)에 독출 데이터로서 출력하며, 새로운 정정 비트 정보를 상기 비휘발성 메모리 장치에 저장시켜 상기 이전 정정 비트 정보를 갱신하는 컨트롤러를 포함할 수 있다.In order to achieve the object of the present invention, the nonvolatile memory system according to the embodiments of the present invention is at least one NAND flash memory device, prior correction bit for each of the page data stored in the NAND flash memory device A non-volatile memory device storing information, and reading page data from the NAND flash memory device in response to a read command signal, and correcting bits of the read page data based on the previous correction bit information. Generates corrected page data, generates error corrected page data by performing Error Correction Code (ECC) decoding on the bit corrected page data, and hosts the error corrected page data. output as read data to the host), and the new correction bit information is Was stored in a speech memory device may include a controller that updates the previous correction bit information.

일 실시예에 의하면, 상기 이전 정정 비트 정보는 에러가 발생한 위치에 대한 정보 및 상기 에러가 발생한 위치에서의 비트 값에 대한 정보를 포함할 수 있다.According to an embodiment, the previous correction bit information may include information about a location where an error occurs and information about a bit value at the location where the error occurs.

일 실시예에 의하면, 상기 컨트롤러는 상기 에러가 발생한 위치에 대한 정보 및 상기 에러가 발생한 위치에서의 비트 값에 대한 정보에 기초하여 상기 독출된 페이지 데이터의 비트들을 정정할 수 있다.According to an embodiment, the controller may correct the bits of the read page data based on the information on the location of the error and the information on the bit value at the location of the error.

일 실시예에 의하면, 상기 컨트롤러는 상기 에러가 발생한 위치의 개수가 기 설정된 값 이상인 경우, 상기 낸드 플래시 메모리 장치로 하여금 이레이즈 리프레쉬 동작(erase refresh operation)을 수행하게 할 수 있다.In example embodiments, the controller may cause the NAND flash memory device to perform an erasure refresh operation when the number of locations where the error occurs is equal to or greater than a preset value.

일 실시예에 의하면, 상기 컨트롤러는 상기 독출된 페이지 데이터에 대한 상기 이전 정정 비트 정보가 상기 비휘발성 메모리 장치에 저장되어 있지 않은 경우, 상기 독출된 페이지 데이터에 대하여 이씨씨 디코딩을 수행하여 상기 에러 정정된 페이지 데이터를 생성할 수 있다.According to an embodiment, when the previous correction bit information for the read page data is not stored in the nonvolatile memory device, the controller performs the BC decoding on the read page data to correct the error. Generated page data.

일 실시예에 의하면, 상기 컨트롤러는 기입 명령 신호에 응답하여 상기 호스트로부터 기입 데이터를 입력받고, 상기 기입 데이터에 대하여 페이지 단위로 이씨씨 인코딩(encoding)을 수행하여 상기 페이지 데이터를 생성하며, 상기 페이지 데이터를 상기 낸드 플래시 메모리 장치에 저장시킬 수 있다.According to an embodiment, the controller receives write data from the host in response to a write command signal, generates the page data by performing BC encoding on the write data in units of pages, and generates the page data. Data may be stored in the NAND flash memory device.

일 실시예에 의하면, 상기 컨트롤러는 상기 기입 명령 신호에 응답하여 상기 페이지 데이터에 대한 플래그 셀(flag cell) 정보를 상기 비휘발성 메모리 장치에 저장시킬 수 있다.In example embodiments, the controller may store flag cell information regarding the page data in the nonvolatile memory device in response to the write command signal.

일 실시예에 의하면, 상기 컨트롤러는 상기 독출 명령 신호에 응답하여 상기 비휘발성 메모리 장치에 저장된 상기 플래그 셀 정보를 기초로 상기 낸드 플래시 메모리 장치로부터 상기 페이지 데이터를 독출할 수 있다.In example embodiments, the controller may read the page data from the NAND flash memory device based on the flag cell information stored in the nonvolatile memory device in response to the read command signal.

일 실시예에 의하면, 상기 비휘발성 메모리 장치는 덮어쓰기 동작(overwrite operation)을 수행할 수 있는 피램(Phase-change Random Access Memory; PRAM) 장치일 수 있다.In example embodiments, the nonvolatile memory device may be a phase-change random access memory (PRAM) device capable of performing an overwrite operation.

일 실시예에 의하면, 상기 비휘발성 메모리 시스템은 임베디드 멀티미디어 카드(Embedded Multi Media Card; EMMC)로 제조될 수 있다.According to an embodiment, the nonvolatile memory system may be manufactured as an embedded multimedia card (EMMC).

본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 적어도 하나 이상의 낸드 플래시 메모리 장치를 구비하고, 상기 낸드 플래시 메모리 장치를 위하여 에러 체크 및 정정 기능을 제공함에 있어서, 상기 낸드 플래시 메모리 장치에 저장된 페이지 데이터들 각각에 대한 이전 정정 비트 정보를 비휘발성 메모리 장치에 저장하고, 상기 낸드 플래시 메모리 장치로부터 페이지 데이터를 독출할 때, 상기 페이지 데이터에 대한 이전 정정 비트 정보를 이용하여 상기 페이지 데이터의 비트들을 정정함으로써, 이씨씨(Error Correction Code; ECC)의 정정 능력을 향상시키지 않고서도, 에러 체크 및 정정 기능을 향상시킬 수 있다. 그 결과, 비휘발성 메모리 시스템의 전반적인 성능 및 수명의 저하가 방지될 수 있다. 다만, 본 발명의 효과는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.A nonvolatile memory system according to embodiments of the present invention includes at least one NAND flash memory device, and in providing an error check and correction function for the NAND flash memory device, the page data stored in the NAND flash memory device. Storing previous correction bit information for each of them in a nonvolatile memory device, and when reading page data from the NAND flash memory device, correcting the bits of the page data using the previous correction bit information for the page data. It is possible to improve the error checking and correction function without improving the error correction capability of ECC. As a result, deterioration of the overall performance and lifespan of the nonvolatile memory system can be prevented. However, the effects of the present invention are not limited thereto, and various modifications may be made without departing from the spirit and scope of the present invention.

도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치에 페이지 데이터가 기입되는 일 예를 나타내는 순서도이다.
도 3은 도 1의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치에 페이지 데이터가 기입되는 일 예를 나타내는 도면이다.
도 4a 내지 도 4c는 도 1의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치로부터 페이지 데이터가 독출되는 일 예를 나타내는 순서도들이다.
도 5는 도 1의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치로부터 페이지 데이터가 독출되는 일 예를 나타내는 도면이다.
도 6은 본 발명의 다른 실시예에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.
도 7은 도 6의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치에 페이지 데이터가 기입되는 일 예를 나타내는 순서도이다.
도 8은 도 6의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치로부터 페이지 데이터가 독출되는 일 예를 나타내는 순서도이다.
1 is a block diagram illustrating a nonvolatile memory system according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating an example in which page data is written to a NAND flash memory device in the nonvolatile memory system of FIG. 1.
3 is a diagram illustrating an example in which page data is written to a NAND flash memory device in the nonvolatile memory system of FIG. 1.
4A through 4C are flowcharts illustrating an example in which page data is read from a NAND flash memory device in the nonvolatile memory system of FIG. 1.
FIG. 5 is a diagram illustrating an example in which page data is read from a NAND flash memory device in the nonvolatile memory system of FIG. 1.
6 is a block diagram illustrating a nonvolatile memory system according to another exemplary embodiment of the present invention.
FIG. 7 is a flowchart illustrating an example in which page data is written to a NAND flash memory device in the nonvolatile memory system of FIG. 6.
FIG. 8 is a flowchart illustrating an example in which page data is read from a NAND flash memory device in the nonvolatile memory system of FIG. 6.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.For the embodiments of the invention disclosed herein, specific structural and functional descriptions are set forth for the purpose of describing an embodiment of the invention only, and it is to be understood that the embodiments of the invention may be practiced in various forms, The present invention should not be construed as limited to the embodiments described in Figs.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.As the inventive concept allows for various changes and numerous modifications, particular embodiments will be illustrated in the drawings and described in detail in the text. It is to be understood, however, that the invention is not intended to be limited to the particular forms disclosed, but on the contrary, is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, the terms "comprise", "having", and the like are intended to specify the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, , Steps, operations, components, parts, or combinations thereof, as a matter of principle.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be construed as meaning consistent with meaning in the context of the relevant art and are not to be construed as ideal or overly formal in meaning unless expressly defined in the present application .

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a nonvolatile memory system according to an embodiment of the present invention.

도 1을 참조하면, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120), 비휘발성 메모리 장치(140) 및 컨트롤러(160)를 포함할 수 있다. 도 1에서는 1개의 낸드 플래시 메모리 장치(120)와 1개의 비휘발성 메모리 장치(140)가 도시되었지만, 이것은 설명의 편의를 위한 것으로서, 비휘발성 메모리 시스템(100)은 적어도 하나 이상의 낸드 플래시 메모리 장치(120)와 적어도 하나 이상의 비휘발성 메모리 장치(140)를 포함하는 것으로 해석되어야 할 것이다.Referring to FIG. 1, the nonvolatile memory system 100 may include a NAND flash memory device 120, a nonvolatile memory device 140, and a controller 160. Although one NAND flash memory device 120 and one nonvolatile memory device 140 are illustrated in FIG. 1, this is for convenience of description, and the nonvolatile memory system 100 may include at least one NAND flash memory device ( 120 and at least one nonvolatile memory device 140.

낸드 플래시 메모리 장치(120)는 페이지(page) 단위로 데이터(이하, 페이지 데이터(PDAT))에 대한 기입 및 독출 동작을 수행할 수 있고, 블록(block) 단위로 이레이즈 동작을 수행할 수 있다. 도 1에 도시되지는 않았지만, 낸드 플래시 메모리 장치(120)는 싱글 레벨 셀(Single Level Cell; SLC)들 또는 멀티 레벨 셀(Multi Level Cell; MLC)들로 구성된 메모리 셀 어레이(memory cell array) 및 페이지 버퍼(page buffer)를 포함할 수 있고, 낸드 인터페이스 프로토콜(NAND interface protocol)에 기초하여 컨트롤러(160)와 인터액션(interaction)할 수 있다. 비휘발성 메모리 장치(140)는 컨트롤러(160)에 이전 정정 비트 정보(OCBI)를 제공할 수 있고, 컨트롤러(160)로부터 새로운 정정 비트 정보(NCBI)를 제공받아 이전 정정 비트 정보(OCBI)를 갱신(update)할 수 있다. 구체적으로, 비휘발성 메모리 장치(140)에는 낸드 플래시 메모리 장치(120)에 저장된 페이지 데이터(PDAT)들 각각에 대한 이전 정정 비트 정보(OCBI)가 저장되어 있다. 이 때, 비휘발성 메모리 장치(140)는 낸드 플래시 메모리 장치(120)에 저장된 페이지 데이터(PDAT)가 독출되면, 상기 독출된 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)를 컨트롤러(160)에 제공할 수 있다. 그 결과, 컨트롤러(160)는 상기 독출된 페이지 데이터(PDAT)의 비트(bit)들을 이전 정정 비트 정보(OCBI)에 기초하여 정정할 수 있다. 한편, 컨트롤러(160)가 상기 독출된 페이지 데이터(PDAT)에 대하여 이씨씨(Error Correction Code) 디코딩을 수행함으로써 에러 정정된 페이지 데이터를 생성할 때, 상기 독출된 페이지 데이터(PDAT)에 대한 새로운 정정 비트 정보(NCBI)가 얻어질 수 있다. 그러므로, 컨트롤러(160)는 상기 새로운 정정 비트 정보(NCBI)를 비휘발성 메모리 장치(140)에 저장시킴으로써, 상기 독출된 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)를 갱신할 수 있다. 일 실시예에서, 비휘발성 메모리 장치(140)는 낸드 플래시 메모리 장치(120)에 비하여 고속으로 동작할 필요가 있으므로, 덮어쓰기 동작(overwrite operation)을 수행할 수 있는 피램(Phase-change Random Access Memory; PRAM) 장치로 선택될 수 있다. 그러나, 이것은 하나의 예시로서 비휘발성 메모리 장치(140)의 종류가 피램(PRAM) 장치로만 한정되는 것은 아니다. The NAND flash memory device 120 may perform write and read operations on data (hereinafter, page data PDAT) in units of pages, and perform erasure operations in units of blocks. . Although not shown in FIG. 1, the NAND flash memory device 120 may include a memory cell array composed of single level cells (SLCs) or multi level cells (MLCs); A page buffer may be included, and the controller 160 may interact with the controller 160 based on a NAND interface protocol. The nonvolatile memory device 140 may provide the previous correction bit information OCBI to the controller 160 and receive the new correction bit information NCBI from the controller 160 to update the previous correction bit information OCBI. (update) In detail, the non-volatile memory device 140 stores previous correction bit information OCBI for each of the page data PDAT stored in the NAND flash memory device 120. In this case, when the page data PDAT stored in the NAND flash memory device 120 is read, the non-volatile memory device 140 may output the previous correction bit information OCBI for the read page data PDAT. ) Can be provided. As a result, the controller 160 may correct the bits of the read page data PDAT based on previous correction bit information OCBI. On the other hand, when the controller 160 generates error corrected page data by performing Error Correction Code decoding on the read page data PDAT, a new correction on the read page data PDAT. Bit information NCBI can be obtained. Therefore, the controller 160 may update the previous correction bit information OCBI with respect to the read page data PDAT by storing the new correction bit information NCBI in the nonvolatile memory device 140. In one embodiment, since the nonvolatile memory device 140 needs to operate at a higher speed than the NAND flash memory device 120, a phase-change random access memory capable of performing an overwrite operation may be used. PRAM) device. However, this is only one example, and the type of the nonvolatile memory device 140 is not limited to only a PRAM device.

컨트롤러(160)는 기입 명령 신호(write command signal)(WCMD)에 기초하여 호스트(미도시)로부터 기입 데이터(WDAT)를 입력받을 수 있고, 독출 명령 신호(read command signal)(RCMD)에 기초하여 호스트에 독출 데이터(RDAT)를 출력할 수 있다. 도 1에는 도시되지 않았지만, 컨트롤러(160)는 호스트와 범용직렬버스(USB), 멀티미디어 카드(MMC), 피씨아이(PCI), 피씨아이-익스프레스(PCI-Express), 에이티에이(ATA), 직렬-에이티에이(S-ATA), 병렬-에이티에이(P-ATA), 스카시(SCSI), 이에스디아이(ESDI), 에스에이에스(SAS) 및 아이디이(IDE) 등과 같은 표준 프로토콜에 기초하여 호스트와 인터액션할 수 있다. 구체적으로, 컨트롤러(160)는 낸드 플래시 메모리 장치(120)에 페이지 데이터(PDAT)를 기입할 때, 기입 명령 신호(WCMD)에 응답하여 호스트로부터 기입 데이터(WDAT)를 입력받고, 상기 기입 데이터(WDAT)에 대하여 페이지 단위로 이씨씨 인코딩을 수행하여 상기 페이지 데이터(PDAT)를 생성하며, 상기 페이지 데이터(PDAT)를 낸드 플래시 메모리 장치(120)에 저장시킬 수 있다. 즉, 비휘발성 메모리 시스템(100)의 기입 동작은 종래의 비휘발성 메모리 시스템의 기입 동작과 실질적으로 동일할 수 있다. 반면에, 컨트롤러(160)는 호스트에 독출 데이터(RDAT)를 출력함에 있어서, 독출 명령 신호(RCMD)에 응답하여 낸드 플래시 메모리 장치(120)로부터 페이지 데이터(PDAT)를 독출하고, 비휘발성 메모리 장치(140)로부터 제공되는 이전 정정 비트 정보(OCBI)를 기초로 상기 독출된 페이지 데이터(PDAT)의 비트들을 정정하여 비트 정정된 페이지 데이터를 생성할 수 있다. 이후, 컨트롤러(160)는 상기 비트 정정된 페이지 데이터에 대하여 이씨씨 디코딩을 수행하여 에러 정정된 페이지 데이터를 생성하고, 상기 에러 정정된 페이지 데이터를 호스트에 독출 데이터(RDAT)로서 출력할 수 있다. 이 때, 컨트롤러(160)는 상기 에러 정정된 페이지 데이터가 생성될 때 상기 독출된 페이지 데이터(PDAT)에 대한 새로운 정정 비트 정보(NCBI)가 얻어질 수 있으므로, 상기 새로운 정정 비트 정보(NCBI)를 비휘발성 메모리 장치(140)에 저장시킴으로써, 상기 독출된 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)를 갱신할 수 있다.The controller 160 may receive the write data WDAT from a host (not shown) based on the write command signal WCMD, and based on the read command signal RCMD. Read data RDAT can be output to the host. Although not shown in FIG. 1, the controller 160 includes a host, a universal serial bus (USB), a multimedia card (MMC), a PCI (PCI), a PC-Express (PCI-Express), an ATA, and a serial device. Interact with the host based on standard protocols such as S-ATA, Parallel-A-P, SCSI, SCSI, ESDI, SAS and IDE can do. Specifically, the controller 160 receives the write data WDAT from the host in response to the write command signal WCMD when writing the page data PDAT to the NAND flash memory device 120. The page data PDAT may be generated by performing the IC encoding on a page basis for the WDAT, and the page data PDAT may be stored in the NAND flash memory device 120. That is, the write operation of the nonvolatile memory system 100 may be substantially the same as the write operation of the conventional nonvolatile memory system. On the other hand, in outputting the read data RDT to the host, the controller 160 reads the page data PDAT from the NAND flash memory device 120 in response to the read command signal RCMD, and generates a nonvolatile memory device. Bit-corrected page data may be generated by correcting bits of the read page data PDAT based on previous correction bit information OCBI provided from 140. Thereafter, the controller 160 may perform error correction on the bit corrected page data to generate error corrected page data, and output the error corrected page data as read data (RDAT) to a host. At this time, when the error corrected page data is generated, the controller 160 obtains the new correction bit information NCBI for the read page data PDAT. By storing in the nonvolatile memory device 140, the previous correction bit information OCBI with respect to the read page data PDAT may be updated.

일 실시예에서, 컨트롤러(160)는 비휘발성 메모리 시스템(100)의 독출 동작시 낸드 플래시 메모리 장치(120)로부터 독출되는 페이지 데이터(PDAT)의 비트들을 정정함으로써 비트 정정된 페이지 데이터를 생성하는 비트 정정 유닛, 및 비휘발성 메모리 시스템(100)의 기입 동작시 호스트로부터 입력되는 기입 데이터(WDAT)에 대하여 페이지 단위로 이씨씨 인코딩을 수행함으로써 페이지 데이터(PDAT)를 생성하고, 비휘발성 메모리 시스템(100)의 독출 동작시 상기 비트 정정된 페이지 데이터에 대하여 이씨씨 디코딩을 수행함으로써 에러 정정된 페이지 데이터를 생성하는 이씨씨 유닛(즉, 이씨씨 엔진)을 포함할 수 있다. 이 때, 상기 비트 정정 유닛과 상기 이씨씨 유닛은 하드웨어적으로 구현될 수도 있고, 소프트웨어적으로 구현될 수도 있으나, 비휘발성 메모리 시스템(100)이 고속으로 동작할 수 있도록 하드웨어적으로 구현되는 것이 바람직하다. 나아가, 이씨씨 유닛이 제공하는 이씨씨(ECC)로는 LDPC(Low Density Parity Check) 코드, BCH(Bose Chaudhuri Hocquenghem) 코드, 해밍(hamming) 코드 등이 이용될 수 있으나 그에 한정되지는 않는다. 한편, 이전 정정 비트 정보(OCBI)는 에러가 발생한 위치에 대한 정보 및 에러가 발생한 위치에서의 비트 값에 대한 정보를 포함할 수 있는데, 컨트롤러(160)는 비휘발성 메모리 시스템(100)의 독출 동작시 비트 정정 유닛으로 하여금 상기 독출된 페이지 데이터(PDAT)의 비트들을 에러가 발생한 위치에 대한 정보 및 에러가 발생한 위치에서의 비트 값에 대한 정보에 기초하여 정정하게 할 수 있다. 그 결과, 컨트롤러(160)에 구비된 이씨씨 유닛은 비트 정정된 페이지 데이터에 대해서만 에러 체크 및 정정을 수행하면 되므로, 이씨씨 유닛이 제공하는 이씨씨(ECC)의 정정 능력에 비하여 더 많은 에러들에 대한 정정이 가능하게 된다. 예를 들어, 이씨씨 유닛이 40비트를 정정할 수 있는 이씨씨의 정정 능력을 제공하는 경우, 낸드 플래시 메모리 장치(120)로부터 독출된 페이지 데이터(PDAT)가 45비트의 에러들을 가지고 있다고 하더라도, 이전 비트 정정 정보(예를 들어, 35비트의 에러들에 대한 정보라고 가정)를 기초로 상기 독출된 페이지 데이터(PDAT)의 에러들이 정정되므로, 이씨씨 유닛은 10비트의 에러들만 가지고 있는 비트 정정된 페이지 데이터에 대하여 에러 체크 및 정정을 수행할 수 있다. 이에, 비휘발성 메모리 시스템(100)은 40비트를 정정할 수 있는 이씨씨의 정정 능력을 제공하는 이씨씨 유닛으로 45비트의 에러들을 가진 페이지 데이터(PDAT)에 대해 에러 체크 및 정정을 가능하게 할 수 있다.In one embodiment, the controller 160 generates the bit-corrected page data by correcting the bits of the page data PDAT read from the NAND flash memory device 120 during a read operation of the nonvolatile memory system 100. The page unit PDAT is generated by performing BC encoding on a page basis for the correction unit and the write data WDAT input from the host during a write operation of the nonvolatile memory system 100, and generates the nonvolatile memory system 100. ) May include an IC unit (ie, an IC engine) that generates error-corrected page data by performing IC decoding on the bit-corrected page data during a read operation. At this time, the bit correction unit and the BC unit may be implemented in hardware, or may be implemented in software, it is preferable that the non-volatile memory system 100 is implemented in hardware to operate at high speed. Do. Furthermore, as the ECC provided by the CC unit, a Low Density Parity Check (LDPC) code, a Bose Chaudhuri Hocquenghem (BCH) code, a hamming code, or the like may be used, but is not limited thereto. Meanwhile, the previous correction bit information OCBI may include information about a location where an error occurs and information about a bit value at a location where an error occurs, and the controller 160 reads an operation of the nonvolatile memory system 100. The time bit correction unit may cause the bits of the read page data PDAT to be corrected based on information on a location where an error occurs and information on a bit value at a location where an error occurs. As a result, since the IC unit provided in the controller 160 only needs to perform error check and correction on the bit corrected page data, more errors are compared with the ECC's correction capability provided by the IC unit. Correction is possible. For example, in the case where the BC unit provides the correction capability of the IC which can correct 40 bits, even if the page data PDAT read from the NAND flash memory device 120 has errors of 45 bits, The errors in the read page data PDAT are corrected based on previous bit correction information (eg, information about 35 bits of error), so the BCC unit has only 10 bits of error correction. Error check and correction may be performed on the page data. Accordingly, the nonvolatile memory system 100 is capable of error checking and correcting page data PDAT having 45 bits of errors with a BC unit providing a correcting capability of 40 bits that can correct 40 bits. Can be.

한편, 컨트롤러(160)는 비휘발성 메모리 시스템(100)의 독출 동작시, 낸드 플래시 메모리 장치(120)로부터 독출된 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)가 비휘발성 메모리 장치(140)에 저장되어 있지 않은 경우, 상기 독출된 페이지 데이터(PDAT)에 대하여 이씨씨 디코딩을 수행하여 에러 정정된 페이지 데이터를 직접 생성할 수 있다. 즉, 낸드 플래시 메모리 장치(120)로부터 독출된 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)가 다양한 원인에 의하여 유실(또는, 삭제)되거나, 또는 낸드 플래시 메모리 장치(120)에 기입된 이후 독출된 적이 없어 이전 정정 비트 정보(OCBI)가 존재하지 않는 경우에는, 컨트롤러(160)는 상기 독출된 페이지 데이터(PDAT)에 대하여 이씨씨 디코딩을 수행하여 에러 정정된 페이지 데이터를 직접 생성하고, 상기 에러 정정된 페이지 데이터를 호스트에 출력하는 것이다. 이 경우에도, 상기 에러 정정된 페이지 데이터가 생성될 때 상기 독출된 페이지 데이터(PDAT)에 대한 새로운 정정 비트 정보(NCBI)가 얻어지기 때문에, 상기 새로운 정정 비트 정보(NCBI)를 상기 독출된 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)로서 비휘발성 메모리 장치(140)에 저장시킬 수 있다. 나아가, 실시예에 따라, 컨트롤러(160)는 에러 정정된 페이지 데이터가 생성됨에 따라 얻어지는 새로운 정정 비트 정보(NCBI) 또는 비휘발성 메모리 장치(140)에 저장되어 있는 이전 정정 비트 정보(OCBI)를 확인(구체적으로, 이들에 포함되는 에러가 발생한 위치에 대한 정보를 확인)함으로써, 상기 페이지 데이터(PDAT)에 에러가 발생한 위치의 개수가 기 설정된 값 이상인 경우, 낸드 플래시 메모리 장치(120)로 하여금 이레이즈 리프레쉬 동작(erase refresh operation)을 인위적으로 수행하게 할 수 있다. 즉, 하나의 페이지 데이터(PDAT)에서 발생한 에러는 디스터번스(disturbance) 또는 리텐션(retention)으로 인해 계속적으로 증가하는 경향이 있으므로, 특정 조건 하에서는 이레이즈 리프레쉬 동작을 인위적으로 수행하게 함으로써 높은 동작 안정성을 확보하는 것이다. 이와 같이, 비휘발성 메모리 시스템(100)은 이레이즈 리프레쉬 동작을 최소화함으로써 전반적인 성능 및 수명을 향상시키는 것을 목적으로 하나, 상기 페이지 데이터(PDAT)에 에러가 발생한 위치의 개수가 기 설정된 값보다 많은 경우에는, 낸드 플래시 메모리 장치(120)로 하여금 이레이즈 리프레쉬 동작을 인위적으로 수행하게 할 수 있다.Meanwhile, in the read operation of the nonvolatile memory system 100, the controller 160 displays the previous correction bit information OCBI with respect to the page data PDAT read from the NAND flash memory device 120. If not stored in the CDMA, the error-corrected page data can be directly generated by performing the decoding of the BC data on the read page data PDAT. That is, the previous correction bit information OCBI for the page data PDAT read from the NAND flash memory device 120 is lost (or deleted) for various reasons, or written to the NAND flash memory device 120. If the previous correction bit information (OCBI) does not exist since it has not been read since, the controller 160 directly generates error-corrected page data by performing BC-C decoding on the read page data PDAT. The error corrected page data is output to the host. Even in this case, since the new correction bit information NCBI for the read page data PDAT is obtained when the error corrected page data is generated, the read page data is read in the new correction bit information NCBI. It may be stored in the nonvolatile memory device 140 as previous correction bit information (OCBI) for the PDAT. Further, according to an embodiment, the controller 160 checks the new correction bit information NCBI obtained as the error corrected page data is generated or the previous correction bit information OCBI stored in the nonvolatile memory device 140. Specifically, the NAND flash memory device 120 causes the NAND flash memory device 120 to determine if the number of locations in which the error occurs in the page data PDAT is greater than or equal to a preset value. It is possible to artificially perform an erase refresh operation. That is, since an error occurring in one page data PDAT tends to increase continuously due to disturbance or retention, a high operating stability can be achieved by artificially performing an erase refresh operation under a specific condition. To secure. As described above, the nonvolatile memory system 100 aims to improve overall performance and lifespan by minimizing an erase refresh operation. However, when the number of locations where an error occurs in the page data PDAT is larger than a preset value. The NAND flash memory device 120 may be caused to artificially perform an erase refresh operation.

상술한 바와 같이, 종래의 비휘발성 메모리 시스템은, 예를 들어, 이씨씨 엔진이 40비트를 정정할 수 있는 이씨씨의 정정 능력을 제공하는 경우, 낸드 플래시 메모리 장치(120)에 저장된 페이지 데이터(PDAT)에 38비트의 에러들이 발생하면, 짧은 시간 내에 40비트 이상의 에러들이 발생할 가능성이 있기 때문에, 낸드 플래시 메모리 장치(120)로 하여금 상기 페이지 데이터(PDAT)를 다른 블록에 기입하고, 상기 페이지 데이터(PDAT)가 기입되어 있던 블록을 이레이즈하는 이레이즈 리프레쉬 동작을 수행해야만 한다. 그러나, 낸드 플래시 메모리 장치(120)는 블록(block) 단위로 이레이즈 동작을 수행해야 하고, 상기 페이지 데이터(PDAT)를 다른 블록에 기입함에 있어서 병합 동작(merge operation)까지 수반하기 때문에, 상기 이레이즈 리프레쉬 동작은 비휘발성 메모리 시스템(100)의 전반적인 성능을 크게 저하시킬 수 있다. 뿐만 아니라, 낸드 플래시 메모리 장치(120)에 구비되는 셀들의 수명이 기입 동작과 이레이즈 동작을 반복함에 따라 줄어들기 때문에, 상기 이레이즈 리프레쉬 동작은 비휘발성 메모리 시스템(100)의 전반적인 수명도 크게 저하시킬 수 있다. 따라서, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)를 위하여 에러 체크 및 정정 기능을 제공함에 있어서, 낸드 플래시 메모리 장치(120)에 저장된 페이지 데이터(PDAT)들 각각에 대한 이전 정정 비트 정보(NCBI)를 비휘발성 메모리 장치(140)에 저장하고, 낸드 플래시 메모리 장치(120)로부터 페이지 데이터(PDAT)를 독출할 때, 상기 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(NCBI)를 이용하여 상기 페이지 데이터(PDAT)의 비트들을 정정함으로써, 이씨씨의 정정 능력을 향상시키지 않고서도, 에러 체크 및 정정 기능을 향상시킬 수 있다. 그 결과, 비휘발성 메모리 시스템(100)의 전반적인 성능 및 수명의 저하가 방지될 수 있을 뿐만 아니라, 종래의 비휘발성 메모리 시스템에 비하여 상대적으로 낮은 이씨씨의 정정 능력을 제공하는 이씨씨 유닛을 포함할 수 있으므로, 저비용 및 소형화로 제조될 수 있다. 이에, 비휘발성 메모리 시스템(100)은 다양한 형태로 제조될 수 있는데, 예를 들어, 임베디드 멀티미디어 카드(Embedded Multi-Media Card; EMMC), SD 카드(secure digital card), CF 카드(compact flash card), 메모리 스틱(memory stick), XD 픽쳐 카드(XD picture card) 등으로 제조될 수 있다.As described above, the conventional non-volatile memory system, for example, when the ECC engine provides the correction ability of the CCC that can correct 40 bits, the page data (stored in the NAND flash memory device 120 ( When 38 bits of errors occur in the PDAT, since 40 or more errors may occur within a short time, the NAND flash memory device 120 writes the page data PDAT into another block, and the page data. The erase refresh operation which erases the block in which (PDAT) has been written must be performed. However, since the NAND flash memory device 120 needs to perform an erase operation in units of blocks and writes the page data PDAT to another block, a merge operation may be performed. The ease refresh operation may significantly degrade the overall performance of the nonvolatile memory system 100. In addition, since the lifespan of the cells included in the NAND flash memory device 120 decreases as the write and erase operations are repeated, the erase refresh operation greatly reduces the overall lifetime of the nonvolatile memory system 100. You can. Accordingly, in the nonvolatile memory system 100 providing an error check and correction function for the NAND flash memory device 120, a previous correction bit for each of the page data PDATs stored in the NAND flash memory device 120 is provided. When the information NCBI is stored in the nonvolatile memory device 140 and the page data PDAT is read from the NAND flash memory device 120, the previous correction bit information NCBI for the page data PDAT is read. By using this to correct the bits of the page data PDAT, the error checking and correction function can be improved without improving the correction capability of the CC. As a result, the degradation of the overall performance and lifespan of the nonvolatile memory system 100 can be prevented, as well as including a CCC unit that provides a relatively low ICC correction capability compared to a conventional nonvolatile memory system. It can be produced at low cost and miniaturization. Thus, the nonvolatile memory system 100 may be manufactured in various forms, for example, an embedded multi-media card (EMMC), a secure digital card, a compact flash card (CF card). , A memory stick, an XD picture card, or the like.

도 2는 도 1의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치에 페이지 데이터가 기입되는 일 예를 나타내는 순서도이고, 도 3은 도 1의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치에 페이지 데이터가 기입되는 일 예를 나타내는 도면이다.2 is a flowchart illustrating an example in which page data is written to a NAND flash memory device in the nonvolatile memory system of FIG. 1, and FIG. 3 is an example of writing page data in a NAND flash memory device in the nonvolatile memory system of FIG. 1. It is a figure which shows an example.

도 2 및 도 3을 참조하면, 도 1의 비휘발성 메모리 시스템(100)은 호스트(미도시)로부터 기입 명령 신호(WCMD)를 수신(Step S120)하면, 호스트로부터 기입 데이터(WDAT)를 수신(Step S140)한 후, 상기 기입 데이터(WDAT)에 대하여 페이지 단위로 이씨씨(ECC) 인코딩을 수행(Step S160)하여 페이지 데이터(PDAT)를 생성할 수 있다. 이후, 도 1의 비휘발성 메모리 시스템(100)은 상기 페이지 데이터(PDAT)를 낸드 플래시 메모리 장치(120)에 저장(Step S180)할 수 있다. 즉, 비휘발성 메모리 시스템(100) 내부의 컨트롤러(160) 측면에서 살펴보면, 컨트롤러(160)는 이씨씨 유닛(164) 및 비트 정정 유닛(162)을 포함할 수 있는데, 도 1의 비휘발성 메모리 시스템(100)의 기입 동작은 종래의 비휘발성 메모리 시스템의 기입 동작과 실질적으로 동일할 수 있다. 즉, 이씨씨 유닛(164)은 도 1의 비휘발성 메모리 시스템(100)의 기입 동작시 호스트로부터 입력되는 기입 데이터(WDAT)에 대하여 페이지 단위로 이씨씨 인코딩을 수행함으로써 페이지 데이터(PDAT)를 생성하는 동작을 수행하나, 비트 정정 유닛(162)은 도 1의 비휘발성 메모리 시스템(100)의 기입 동작시 특정 동작을 수행하지 않는다. 상술한 바와 같이, 이씨씨 유닛(164)의 에러 정정 코드로는 LDPC(Low Density Parity Check) 코드, BCH(Bose Chaudhuri Hocquenghem) 코드, 해밍(hamming) 코드 등이 이용될 수 있으나, 그에 한정되지는 않는다. 한편, 실시예에 따라, 비휘발성 메모리 시스템(100)에서 낸드 플래시 메모리 장치(120)에 페이지 데이터(PDAT)가 저장됨에 있어서 인터리빙 동작(interleaving operation)이 수행될 수도 있다.2 and 3, when the nonvolatile memory system 100 of FIG. 1 receives the write command signal WCMD from a host (not shown) (Step S120), the nonvolatile memory system 100 receives the write data WDAT from the host ( After step S140, page data PDAT may be generated by performing ECC encoding on a page basis with respect to the write data WDAT. Thereafter, the nonvolatile memory system 100 of FIG. 1 may store the page data PDAT in the NAND flash memory device 120 (Step S180). That is, when looking at the side of the controller 160 in the nonvolatile memory system 100, the controller 160 may include an ICC unit 164 and a bit correction unit 162, which is illustrated in FIG. 1. The write operation of 100 may be substantially the same as the write operation of the conventional nonvolatile memory system. That is, the BC unit 164 generates page data PDAT by performing BC encoding on a page basis with respect to the write data WDAT input from the host during the write operation of the nonvolatile memory system 100 of FIG. 1. The bit correction unit 162 does not perform a specific operation during the write operation of the nonvolatile memory system 100 of FIG. 1. As described above, a low density parity check (LDPC) code, a Bose Chaudhuri Hocquenghem (BCH) code, a hamming code, and the like may be used as the error correction code of the BC unit 164, but is not limited thereto. Do not. In some embodiments, an interleaving operation may be performed when the page data PDAT is stored in the NAND flash memory device 120 in the nonvolatile memory system 100.

도 4a 내지 도 4c는 도 1의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치로부터 페이지 데이터가 독출되는 일 예를 나타내는 순서도들이고, 도 5는 도 1의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치로부터 페이지 데이터가 독출되는 일 예를 나타내는 도면이다.4A through 4C are flowcharts illustrating an example in which page data is read from a NAND flash memory device in the nonvolatile memory system of FIG. 1, and FIG. 5 is a diagram illustrating page data from a NAND flash memory device in the nonvolatile memory system of FIG. 1. It is a figure which shows an example to be read.

도 4a 내지 도 4c 및 도 5를 참조하면, 도 1의 비휘발성 메모리 시스템(100)은 호스트(미도시)로부터 독출 명령 신호(RCMD)를 수신(Step S210)하면, 낸드 플래시 메모리 장치(120)로부터 독출할 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)가 비휘발성 메모리 장치(140)에 저장되어 있는지 여부를 판단(Step S220)할 수 있다. 이 때, 낸드 플래시 메모리 장치(120)로부터 독출할 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)가 비휘발성 메모리 장치(140)에 저장되어 있는 경우에는, 낸드 플래시 메모리 장치(120)로부터 상기 페이지 데이터(PDAT)를 독출(Step S230)하고, 비휘발성 메모리 장치(140)로부터는 상기 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)를 독출(Step S240)할 수 있다. 이후, 도 1의 비휘발성 메모리 시스템(100)은 이전 정정 비트 정보(OCBI)에 기초하여 상기 페이지 데이터(PDAT)의 비트들을 정정(Step S250)함으로써 비트 정정된 페이지 데이터(CDAT)를 생성하고, 상기 비트 정정된 페이지 데이터(CDAT)에 대하여 이씨씨(ECC) 디코딩을 수행(Step S260)함으로써 에러 정정된 페이지 데이터를 생성할 수 있다. 상술한 바와 같이, 상기 비트 정정된 페이지 데이터(CDAT)에 대하여 이씨씨 디코딩이 수행됨으로써 상기 에러 정정된 페이지 데이터가 생성될 때, 상기 페이지 데이터(PDAT)에 대한 새로운 정정 비트 정보(NCBI)가 얻어질 수 있으므로, 도 1의 비휘발성 메모리 시스템(100)은 상기 새로운 정정 비트 정보(NCBI)를 비휘발성 메모리 장치(140)에 저장(Step S270)하여 이전 정정 비트 정보(OCBI)를 갱신할 수 있다. 한편, 도 1의 비휘발성 메모리 시스템(100)은 상기 에러 정정된 페이지 데이터를 독출 데이터(RDAT)로서 호스트에 출력(Step S280)할 수 있다.4A through 4C and 5, when the nonvolatile memory system 100 of FIG. 1 receives a read command signal RCMD from a host (not shown) (Step S210), the NAND flash memory device 120 may be used. In operation S220, it may be determined whether the previous correction bit information OCBI for the page data PDAT to be read from is stored in the nonvolatile memory device 140. At this time, when the previous correction bit information OCBI for the page data PDAT to be read from the NAND flash memory device 120 is stored in the nonvolatile memory device 140, the NAND flash memory device 120 is stored from the NAND flash memory device 120. The page data PDAT may be read (Step S230), and the previous correction bit information OCBI of the page data PDAT may be read from the nonvolatile memory device 140 (Step S240). Thereafter, the nonvolatile memory system 100 of FIG. 1 generates the bit-corrected page data CDAT by correcting the bits of the page data PDAT based on previous correction bit information OCBI (Step S250). Error corrected page data may be generated by performing ECC decoding on the bit corrected page data CDAT (Step S260). As described above, when BC error decoding is performed on the bit corrected page data CDAT, when the error corrected page data is generated, new correction bit information NCBI for the page data PDAT is obtained. Since the nonvolatile memory system 100 of FIG. 1 may store the new correction bit information NCBI in the nonvolatile memory device 140 (Step S270), the previous correction bit information OCBI may be updated. . The nonvolatile memory system 100 of FIG. 1 may output the error corrected page data to the host as read data RDTAT (Step S280).

반면에, 도 1의 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)로부터 독출할 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(OCBI)가 비휘발성 메모리 장치(140)에 저장되어 있지 않은 경우에는, 낸드 플래시 메모리 장치(120)로부터 상기 페이지 데이터(PDAT)를 독출(Step S290)한 후, 상기 페이지 데이터(PDAT)에 대하여 이씨씨 디코딩을 수행(Step S300)함으로써 에러 정정된 페이지 데이터를 생성할 수 있다. 상술한 바와 같이, 상기 페이지 데이터(PDAT)에 대하여 이씨씨 디코딩이 수행됨으로써 상기 에러 정정된 페이지 데이터가 생성될 때, 상기 페이지 데이터(PDAT)에 대한 새로운 정정 비트 정보(NCBI)가 얻어질 수 있으므로, 도 1의 비휘발성 메모리 시스템(100)은 상기 새로운 정정 비트 정보(NCBI)를 추후 사용될 이전 정정 비트 정보(OCBI)로서 비휘발성 메모리 장치(140)에 저장(Step S310)할 수 있다. 한편, 도 1의 비휘발성 메모리 시스템(100)은 상기 에러 정정된 페이지 데이터를 독출 데이터(RDAT)로서 호스트에 출력(Step S320)할 수 있다. 이와 같이, 도 1의 비휘발성 메모리 시스템(100)은 독출 동작시 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(NCBI)를 이용하여 상기 페이지 데이터(PDAT)의 비트들을 정정함으로써, 이씨씨의 정정 능력을 향상시키지 않고서도, 에러 체크 및 정정 기능을 향상시킬 수 있다. 나아가, 비트 정정된 페이지 데이터(CPAT)가 페이지 데이터(PDAT)에 비해 에러들을 적게 가지고 있으므로, 이씨씨 유닛(164)은 빠르고 정확하게 에러 체크 및 정정을 수행할 수 있다. 그 결과, 도 1의 비휘발성 메모리 시스템(100)의 동작 안정성(operation stability) 및 동작 신뢰성(operation reliability)도 크게 향상될 수 있다.On the other hand, in the nonvolatile memory system 100 of FIG. 1, the previous correction bit information OCBI for the page data PDAT to be read from the NAND flash memory device 120 is not stored in the nonvolatile memory device 140. If not, the page data corrected by reading the page data PDAT from the NAND flash memory device 120 (Step S290), and then performing the IC decoding on the page data PDAT (Step S300). Can be generated. As described above, when the error corrected page data is generated by performing the IC decoding on the page data PDAT, new correction bit information NCBI for the page data PDAT can be obtained. The nonvolatile memory system 100 of FIG. 1 may store the new correction bit information NCBI in the nonvolatile memory device 140 as the previous correction bit information OCBI to be used later (Step S310). Meanwhile, the nonvolatile memory system 100 of FIG. 1 may output the error corrected page data to the host as read data RDTAT (Step S320). As described above, the nonvolatile memory system 100 of FIG. 1 corrects bits of the page data PDAT by using the previous correction bit information NCBI for the page data PDAT in a read operation. It is possible to improve the error checking and correction function without improving the capability. Furthermore, since the bit corrected page data CPAT has fewer errors than the page data PDAT, the IC unit 164 can perform error check and correction quickly and accurately. As a result, operation stability and operation reliability of the nonvolatile memory system 100 of FIG. 1 may also be greatly improved.

도 6은 본 발명의 다른 실시예에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.6 is a block diagram illustrating a nonvolatile memory system according to another exemplary embodiment of the present invention.

도 6을 참조하면, 비휘발성 메모리 시스템(200)은 낸드 플래시 메모리 장치(220), 비휘발성 메모리 장치(240) 및 컨트롤러(260)를 포함할 수 있다. 도 6에서는 1개의 낸드 플래시 메모리 장치(220)와 1개의 비휘발성 메모리 장치(240)가 도시되었지만, 이것은 설명의 편의를 위한 것으로서, 비휘발성 메모리 시스템(200)은 적어도 하나 이상의 낸드 플래시 메모리 장치(220)와 적어도 하나 이상의 비휘발성 메모리 장치(240)를 포함하는 것으로 해석되어야 할 것이다. 한편, 비휘발성 메모리 시스템(200)에서, 낸드 플래시 메모리 장치(220)에서 페이지 데이터(PDAT)가 독출되면, 비휘발성 메모리 장치(240)에 저장되어 있는 이전 정정 비트 정보(OCBI)에 기초하여 상기 페이지 데이터(PDAT)의 비트들이 정정되는 내용에 대해서는 도 1에서 설명한 바 있으므로, 그에 대한 중복되는 설명은 생략하기로 한다. 이에, 도 6에서는 플래그 셀 정보(flag cell information)(FCI)가 비휘발성 메모리 장치(240)에 저장되는 내용을 중심으로 설명한다.Referring to FIG. 6, the nonvolatile memory system 200 may include a NAND flash memory device 220, a nonvolatile memory device 240, and a controller 260. Although one NAND flash memory device 220 and one nonvolatile memory device 240 are illustrated in FIG. 6, this is for convenience of description, and the nonvolatile memory system 200 may include at least one NAND flash memory device ( 220 and at least one non-volatile memory device 240 will be construed as including. In the nonvolatile memory system 200, when the page data PDAT is read from the NAND flash memory device 220, the page data PDAT is read based on the previous correction bit information OCBI stored in the nonvolatile memory device 240. Since the contents of the bits of the page data PDAT have been described with reference to FIG. 1, duplicate description thereof will be omitted. 6, the flag cell information FCI is stored in the nonvolatile memory device 240.

낸드 플래시 메모리 장치(220)는 페이지 단위로 데이터(이하, 페이지 데이터(PDAT))에 대한 기입 동작 및 독출 동작을 수행하고, 블록 단위로 이레이즈 동작을 수행할 수 있다. 도 6에 도시되지는 않았지만, 낸드 플래시 메모리 장치(220)는 멀티 레벨 셀(Multi Level Cell; MLC)들로 구성된 메모리 셀 어레이 및 페이지 버퍼를 포함할 수 있다. 일반적으로, 낸드 플래시 메모리 장치(220) 내부의 멀티 레벨 셀(MLC)들은 하위 비트(Least Significant Bit; LSB) 프로그램과 상위 비트(Most Significant Bit; MSB) 프로그램을 수행됨으로써 프로그램되기 때문에, 하나의 워드라인에 속한 멀티 레벨 셀(MLC)들은 복수의 상태(state)들 중에서 하나를 가질 수 있다. 예를 들어, 멀티 레벨 셀(MLC)들이 각각 2비트의 데이터를 저장할 수 있는 경우, 하나의 워드라인에 속한 멀티 레벨 셀(MLC)들 각각 제 1 상태, 제 2 상태, 제 3 상태 및 제 4 상태 중에서 하나의 상태로 각각 프로그램될 수 있고, 제 1 상태, 제 2 상태, 제 3 상태 및 제 4 상태는 각각 이진 "11", 이진 "01", 이진 "10" 및 이진 "00"에 상응할 수 있다. 이 때, 제 1 상태 내지 제 4 상태는 각각 소정의 검증 전압보다 높은 문턱 전압을 갖는 셀들의 문턱 전압 산포를 의미한다. 이 때, 각각의 워드라인(즉, 페이지)에 MSB가 프로그램되어 있는 멀티 레벨 셀(MLC)이 있는지 여부를 판단하기 위하여 플래그 셀이 구비될 수 있다. 즉, 플래그 셀의 비트(bit)에 기초하여 각각의 워드라인에 MSB가 프로그램되어 있는 멀티 레벨 셀(MLC)이 있는지 여부가 판단될 수 있다. 예를 들어, 플래그 셀의 비트가 이진 "1"인 경우 해당 워드라인에 MSB가 프로그램되어 있는 멀티 레벨 셀(MLC)이 없다고 판단될 수 있고, 플래그 셀의 비트가 이진 "0"인 경우 해당 워드라인에 MSB가 프로그램되어 있는 멀티 레벨 셀(MLC)이 있다고 판단될 수 있다.The NAND flash memory device 220 may perform a write operation and a read operation on data (hereinafter, page data PDAT) on a page basis and an erase operation on a block basis. Although not shown in FIG. 6, the NAND flash memory device 220 may include a memory cell array and a page buffer composed of multi level cells (MLCs). In general, since the multi-level cells (MLC) in the NAND flash memory device 220 are programmed by performing a Least Significant Bit (LSB) program and a Most Significant Bit (MSB) program, one word is used. Multi-level cells (MLC) belonging to the line may have one of a plurality of states. For example, when the multi-level cells (MLC) can each store two bits of data, each of the multi-level cells (MLC) belonging to one word line, the first state, the second state, the third state and the fourth Can be programmed to one of the states, respectively, and the first, second, third and fourth states correspond to binary "11", binary "01", binary "10" and binary "00", respectively. can do. In this case, the first to fourth states mean threshold voltage distributions of cells each having a threshold voltage higher than a predetermined verify voltage. In this case, a flag cell may be provided to determine whether there is a multi-level cell (MLC) in which an MSB is programmed in each word line (ie, page). That is, it may be determined whether there is a multi-level cell (MLC) in which the MSB is programmed in each word line based on the bit of the flag cell. For example, if the bit of the flag cell is binary "1", it may be determined that there is no multi-level cell (MLC) in which the MSB is programmed in the word line. If the bit of the flag cell is binary "0", the word It can be determined that there is a multi-level cell (MLC) in which the MSB is programmed in the line.

다만, 플래그 셀의 비트에 대한 정보 즉, 플래그 셀 정보(FCI)는 낸드 플래시 메모리 장치(220)에서만 참조되는 것으로서, 호스트(미도시)는 플래그 셀 정보(FCI)를 참조할 필요가 없다. 나아가, 플래그 셀에 에러가 발생하여 플래그 셀 정보(FCI)가 부정확해지는 경우에 잘못된 독출 동작이 수행되기 때문에, 각각의 워드라인을 위한 플래그 셀의 비트는 2비트 이상으로 설정될 수도 있다. 이와 같이, 비휘발성 메모리 시스템(200)은 플래그 셀 정보(FCI)에 기초하여 독출 성능을 향상시킬 수 있다. 예를 들어, 낸드 플래시 메모리 장치(220)에 구비되는 멀티 레벨 셀(MLC)들이 각각 2비트의 데이터를 저장할 수 있다고 가정하자. 이 때, 플래그 셀의 비트가 이진 "1"인 경우 해당 워드라인에 MSB가 프로그램되어 있는 멀티 레벨 셀(MLC)이 없다고 판단하여, 컨트롤러(260)는 해당 워드라인에 대한 독출 동작을 수행시 제 1 상태(예를 들어, 이레이즈 상태)와 나머지 제 2 상태 내지 제 4 상태를 구분하기 위한 1개의 검증 전압(verification voltage)에 기초하여 낸드 플래시 메모리 장치(220)에 대한 독출 동작을 완료할 수 있다. 반면에, 플래그 셀의 비트가 이진 "0"인 경우 해당 워드라인에 MSB가 프로그램되어 있는 멀티 레벨 셀(MLC)이 있다고 판단하여, 컨트롤러(260)는 해당 워드라인에 대한 독출 동작을 수행시 제 1 상태와 제 2 상태를 구분하고, 제 2 상태와 제 3 상태를 구분하며, 제 3 상태와 제 4 상태를 구분하기 위한 3개의 검증 전압들에 기초하여 낸드 플래시 메모리 장치(220)에 대한 독출 동작을 완료할 수 있다. 다만, 이것은 하나의 예시로서 요구되는 조건에 따라 다양하게 설계 변경될 수 있다.However, the information on the bits of the flag cell, that is, the flag cell information FCI is referred to only in the NAND flash memory device 220, and the host (not shown) does not need to refer to the flag cell information FCI. Furthermore, since an erroneous read operation is performed when an error occurs in the flag cell and the flag cell information FCI is incorrect, the bit of the flag cell for each word line may be set to two or more bits. As such, the nonvolatile memory system 200 may improve read performance based on the flag cell information FCI. For example, assume that multi-level cells (MLCs) included in the NAND flash memory device 220 can store two bits of data. At this time, if the bit of the flag cell is binary " 1 " A read operation of the NAND flash memory device 220 may be completed based on one verification voltage for distinguishing one state (eg, an erased state) from the remaining second to fourth states. have. On the other hand, if the bit of the flag cell is binary "0", it is determined that there is a multi-level cell (MLC) in which the MSB is programmed in the corresponding word line, and the controller 260 performs a read operation on the corresponding word line. Read to the NAND flash memory device 220 based on three verification voltages for distinguishing the first state from the second state, the second state from the third state, and the third state from the third state. The operation can be completed. However, this may be variously changed depending on the conditions required as an example.

비휘발성 메모리 시스템(200)에서, 비휘발성 메모리 장치(240)는 낸드 플래시 메모리 장치(220)에 기입되는 페이지 데이터(PDAT)에 대한 플래그 셀 정보(FCI)를 저장할 수 있다. 이에, 비휘발성 메모리 장치(240)에는 낸드 플래시 메모리 장치(220)에 저장된 페이지 데이터(PDAT)들 각각에 대한 플래그 셀 정보(FCI)가 저장되어 있다. 구체적으로, 컨트롤러(260)는 비휘발성 메모리 시스템(200)의 기입 동작시 페이지 데이터(PDAT)를 낸드 플래시 메모리 장치(220)에 저장하면서, 상기 페이지 데이터(PDAT)에 대한 플래그 셀 정보(FCI)를 비휘발성 메모리 장치(240)에 저장할 수 있다. 이후, 컨트롤러(260)는 비휘발성 메모리 시스템(200)의 독출 동작시 비휘발성 메모리 장치(240)에 저장되어 있는 플래그 셀 정보(FCI)에 기초하여 낸드 플래시 메모리 장치(220)로부터 페이지 데이터(PDAT)를 독출할 수 있다. 일 실시예에서, 비휘발성 메모리 장치(240)는 낸드 플래시 메모리 장치(220)에 비하여 고속으로 동작할 필요가 있으므로, 덮어쓰기 동작(overwrite operation)을 수행할 수 있는 피램(Phase-change Random Access Memory; PRAM) 장치로 선택될 수 있다. 그러나, 이것은 하나의 예시로서 비휘발성 메모리 장치(240)의 종류가 피램(PRAM) 장치로만 한정되는 것은 아니다. 이와 같이, 비휘발성 메모리 시스템(200)은 비휘발성 메모리 장치(240)에 저장되어 있는 플래그 셀 정보(FCI)에 기초하여 낸드 플래시 메모리 장치(220)에 대한 독출 동작을 수행함으로써, 낸드 플래시 메모리 장치(220)에 대한 독출 성능을 향상시킬 수 있고, 낸드 플래시 메모리 장치(220)의 플래그 셀 자체에 에러가 발생하더라도 독출 동작을 정확하게 수행할 수 있다. 나아가, 도 6에서는 설명을 생략하였지만, 비휘발성 메모리 시스템(200)은 낸드 플래시 메모리 장치(220)에 대한 독출 동작시, 페이지 데이터(PDAT)에 대한 이전 정정 비트 정보(NCBI)에 기초하여 페이지 데이터(PDAT)의 비트들을 정정함으로써, 이씨씨의 정정 능력을 향상시키지 않고서도, 에러 체크 및 정정 기능을 향상시킬 수 있다. In the nonvolatile memory system 200, the nonvolatile memory device 240 may store flag cell information FCI for page data PDAT written in the NAND flash memory device 220. Thus, the flag cell information FCI for each of the page data PDAT stored in the NAND flash memory device 220 is stored in the nonvolatile memory device 240. In detail, the controller 260 stores the page data PDAT in the NAND flash memory device 220 during a write operation of the nonvolatile memory system 200, while the flag cell information FCI for the page data PDAT is stored. May be stored in the nonvolatile memory device 240. Thereafter, the controller 260 reads the page data PDAT from the NAND flash memory device 220 based on the flag cell information FCI stored in the nonvolatile memory device 240 during a read operation of the nonvolatile memory system 200. ) Can be read. In one embodiment, since the nonvolatile memory device 240 needs to operate at a higher speed than the NAND flash memory device 220, a phase-change random access memory capable of performing an overwrite operation may be used. PRAM) device. However, this is only one example, and the type of the nonvolatile memory device 240 is not limited to a PRAM device. As described above, the nonvolatile memory system 200 performs a read operation on the NAND flash memory device 220 based on the flag cell information FCI stored in the nonvolatile memory device 240. The read performance of the NAND flash memory device may be improved, and even if an error occurs in the flag cell of the NAND flash memory device 220, the read operation may be accurately performed. In addition, although description is omitted in FIG. 6, in the read operation of the NAND flash memory device 220, the page data is based on the previous correction bit information NCBI for the page data PDAT. By correcting the bits of the (PDAT), it is possible to improve the error checking and correction function without improving the corrective ability of Mr. Lee.

도 7은 도 6의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치에 페이지 데이터가 기입되는 일 예를 나타내는 순서도이고, 도 8은 도 6의 비휘발성 메모리 시스템에서 낸드 플래시 메모리 장치로부터 페이지 데이터가 독출되는 일 예를 나타내는 순서도이다.FIG. 7 is a flowchart illustrating an example in which page data is written to a NAND flash memory device in the nonvolatile memory system of FIG. 6, and FIG. 8 is an example of reading page data from a NAND flash memory device in the nonvolatile memory system of FIG. 6. It is a flowchart showing an example.

도 7 및 도 8을 참조하면, 도 6의 비휘발성 메모리 시스템(200)은 호스트(미도시)로부터 기입 명령 신호(WCMD)를 수신(Step S420)하면, 호스트로부터 기입 데이터(WDAT)를 수신(Step S440)한 후, 상기 기입 데이터(WDAT)에 대한 플래그 셀 정보(FCI)들을 비휘발성 메모리 장치(240)에 저장(Step S460)시키고, 상기 기입 데이터(WDAT)를 페이지 단위로 하여 낸드 플래시 메모리 장치(220)에 페이지 데이터(PDAT)를 저장(Step S480)시키는 방식으로 기입 동작을 수행할 수 있다. 다만, 설명의 편의를 위하여, 도 7에는 도 6의 비휘발성 메모리 시스템(200)이 기입 동작시 기입 데이터(WDAT)에 대하여 페이지 단위로 이씨씨 인코딩을 수행하는 내용이 생략되어 있으나, 도 6의 비휘발성 메모리 시스템(200)에서도 기입 데이터(WDAT)에 대하여 페이지 단위로 이씨씨 인코딩을 수행하는 것이다. 이후, 도 6의 비휘발성 메모리 시스템(200)은 호스트로부터 독출 명령 신호(RCMD)를 수신(Step S520)하면, 비휘발성 메모리 장치(240)로부터 페이지 데이터(PDAT)에 대한 플래그 셀 정보(FCI)를 독출(Step S540)하고, 상기 플래그 셀 정보(FCI)에 기초하여 낸드 플래시 메모리 장치(220)로부터 상기 페이지 데이터(PDAT)를 독출(Step S560)한 후, 상기 페이지 데이터(PDAT)에 상응하는 독출 데이터(RDAT)를 호스트에 출력(Step S580)하는 방식으로 독출 동작을 수행할 수 있다. 마찬가지로, 설명의 편의를 위하여, 도 8에는 도 6의 비휘발성 메모리 시스템(200)이 독출 동작시 페이지 데이터(PDAT)에 대하여 이씨씨 디코딩을 수행하는 내용이 생략되어 있으나, 도 6의 비휘발성 메모리 시스템(200)은 상기 페이지 데이터(PDAT)에 대하여 이씨씨 디코딩을 수행하며, 이씨씨 디코딩을 수행하기 전에 이전 정정 비트 정보(OCBI)에 기초하여 상기 페이지 데이터(PDAT)의 비트들을 정정하는 것이다. 이상, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템에 대하여 도면을 참조하여 설명하였지만, 상기 설명은 예시적인 것으로서 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 수정 및 변경될 수 있을 것이다. 7 and 8, when the nonvolatile memory system 200 of FIG. 6 receives the write command signal WCMD from the host (not shown) (Step S420), the nonvolatile memory system 200 receives the write data WDAT from the host ( After the step S440, the flag cell information FCI for the write data WDD is stored in the nonvolatile memory device 240 (Step S460), and the NAND flash memory is written in units of pages. The write operation may be performed by storing the page data PDAT in the device 220 (Step S480). For convenience of description, in FIG. 7, the non-volatile memory system 200 of FIG. 6 omits the BC encoding of the write data WDD in the page unit during the write operation. In the nonvolatile memory system 200, the BC data encoding is performed on a page basis for the write data WDAT. Subsequently, when the nonvolatile memory system 200 of FIG. 6 receives the read command signal RCMD from the host (Step S520), the flag cell information FCI for the page data PDAT is transmitted from the nonvolatile memory device 240. Read (Step S540), read the page data (PDAT) from the NAND flash memory device 220 based on the flag cell information (FCI) (Step S560), and corresponds to the page data (PDAT) The read operation may be performed by outputting the read data RDAT to the host (Step S580). Similarly, for convenience of description, although the description of performing the IC decoding on the page data PDAT in the read operation of the nonvolatile memory system 200 of FIG. 6 is omitted, the nonvolatile memory of FIG. 6 is omitted. The system 200 performs ICC decoding on the page data PDAT, and corrects the bits of the page data PDAT based on previous correction bit information OCBI before performing the BCC decoding. As mentioned above, although the nonvolatile memory system according to the embodiments of the present invention has been described with reference to the drawings, the above description is illustrative and should be provided to those skilled in the art without departing from the spirit of the present invention. It may be modified and changed by.

본 발명은 이씨씨(ECC) 기능을 제공하는 비휘발성 메모리 시스템에 적용될 수 있다. 따라서, 본 발명은 멀티미디어 카드(multi media card), 임베디드 멀티미디어 카드(embedded multi media card), SD 카드(secure digital card), CF 카드(compact flash card), 메모리 스틱(memory stick), XD 픽쳐 카드(XD picture card) 등에 적용될 수 있다.The present invention can be applied to a nonvolatile memory system that provides an ECC function. Accordingly, the present invention provides a multimedia card, an embedded multimedia card, a secure digital card, a CF card, a memory stick, a memory stick, an XD picture card. XD picture card).

이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the following claims. It can be understood that it is possible.

100: 비휘발성 메모리 시스템 120: 낸드 플래시 메모리 장치
140: 비휘발성 메모리 장치 160: 컨트롤러
162: 비트 정정 유닛 164: 이씨씨(ECC) 유닛
100: nonvolatile memory system 120: NAND flash memory device
140: nonvolatile memory device 160: controller
162: bit correction unit 164: ECC unit

Claims (10)

적어도 하나 이상의 낸드 플래시 메모리 장치;
상기 낸드 플래시 메모리 장치에 저장된 페이지 데이터들 각각에 대한 이전(previous) 정정 비트 정보를 저장하는 비휘발성 메모리 장치; 및
독출 명령 신호에 응답하여 상기 낸드 플래시 메모리 장치로부터 페이지 데이터를 독출하고, 상기 이전 정정 비트 정보를 기초로 상기 독출된 페이지 데이터의 비트(bit)들을 정정하여 비트 정정된 페이지 데이터를 생성하며, 상기 비트 정정된 페이지 데이터에 대하여 이씨씨(Error Correction Code; ECC) 디코딩(decoding)을 수행하여 에러 정정된 페이지 데이터를 생성하고, 상기 에러 정정된 페이지 데이터를 호스트(host)에 독출 데이터로서 출력하며, 새로운 정정 비트 정보를 상기 비휘발성 메모리 장치에 저장시켜 상기 이전 정정 비트 정보를 갱신하는 컨트롤러를 포함하는 비휘발성 메모리 시스템.
At least one NAND flash memory device;
A nonvolatile memory device storing previous correction bit information for each of page data stored in the NAND flash memory device; And
Read page data from the NAND flash memory device in response to a read command signal, generate bits corrected page data by correcting bits of the read page data based on the previous correction bit information, and Error Correction Code (ECC) decoding is performed on the corrected page data to generate error corrected page data, and the error corrected page data is output to the host as read data. And a controller for storing correction bit information in the nonvolatile memory device to update the previous correction bit information.
제 1 항에 있어서, 상기 이전 정정 비트 정보는 에러가 발생한 위치에 대한 정보 및 상기 에러가 발생한 위치에서의 비트 값에 대한 정보를 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.The non-volatile memory system of claim 1, wherein the previous correction bit information includes information about a location where an error occurs and information about a bit value at the location where the error occurs. 제 2 항에 있어서, 상기 컨트롤러는 상기 에러가 발생한 위치에 대한 정보 및 상기 에러가 발생한 위치에서의 비트 값에 대한 정보에 기초하여 상기 독출된 페이지 데이터의 비트들을 정정하는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory as claimed in claim 2, wherein the controller corrects the bits of the read page data based on the information on the location of the error and the information on the bit value at the location of the error. system. 제 3 항에 있어서, 상기 컨트롤러는 상기 에러가 발생한 위치의 개수가 기 설정된 값 이상인 경우, 상기 낸드 플래시 메모리 장치로 하여금 이레이즈 리프레쉬 동작(erase refresh operation)을 수행하게 하는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory of claim 3, wherein the controller causes the NAND flash memory device to perform an erase refresh operation when the number of locations where the error occurs is equal to or larger than a preset value. system. 제 1 항에 있어서, 상기 컨트롤러는 상기 독출된 페이지 데이터에 대한 상기 이전 정정 비트 정보가 상기 비휘발성 메모리 장치에 저장되어 있지 않은 경우, 상기 독출된 페이지 데이터에 대하여 이씨씨 디코딩을 수행하여 상기 에러 정정된 페이지 데이터를 생성하는 것을 특징으로 하는 비휘발성 메모리 시스템.The error correction method of claim 1, wherein the controller is further configured to perform the IC decoding on the read page data when the previous correction bit information of the read page data is not stored in the nonvolatile memory device. Nonvolatile memory system, characterized in that it generates generated page data. 제 1 항에 있어서, 상기 컨트롤러는 기입 명령 신호에 응답하여 상기 호스트로부터 기입 데이터를 입력받고, 상기 기입 데이터에 대하여 페이지 단위로 이씨씨 인코딩(encoding)을 수행하여 상기 페이지 데이터를 생성하며, 상기 페이지 데이터를 상기 낸드 플래시 메모리 장치에 저장시키는 것을 특징으로 하는 비휘발성 메모리 시스템.The apparatus of claim 1, wherein the controller receives write data from the host in response to a write command signal, generates the page data by performing BC encoding on the write data on a page basis, and generates the page data. And storing data in the NAND flash memory device. 제 6 항에 있어서, 상기 컨트롤러는 상기 기입 명령 신호에 응답하여 상기 페이지 데이터에 대한 플래그 셀(flag cell) 정보를 상기 비휘발성 메모리 장치에 저장시키는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory system of claim 6, wherein the controller stores flag cell information for the page data in the nonvolatile memory device in response to the write command signal. 제 7 항에 있어서, 상기 컨트롤러는 상기 독출 명령 신호에 응답하여 상기 비휘발성 메모리 장치에 저장된 상기 플래그 셀 정보를 기초로 상기 낸드 플래시 메모리 장치로부터 상기 페이지 데이터를 독출하는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory of claim 7, wherein the controller reads the page data from the NAND flash memory device based on the flag cell information stored in the nonvolatile memory device in response to the read command signal. system. 제 1 항에 있어서, 상기 비휘발성 메모리 장치는 덮어쓰기 동작(overwrite operation)을 수행할 수 있는 피램(Phase-change Random Access Memory; PRAM) 장치인 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory system of claim 1, wherein the nonvolatile memory device is a phase-change random access memory (PRAM) device capable of performing an overwrite operation. 제 9 항에 있어서, 임베디드 멀티미디어 카드(Embedded Multi Media Card; EMMC)로 제조되는 것을 특징으로 하는 비휘발성 메모리 시스템.10. The non- volatile memory system of claim 9, wherein the non-volatile memory system is made of an embedded multimedia card (EMMC).
KR1020110134573A 2011-12-14 2011-12-14 Non-volatile memory system KR101308616B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110134573A KR101308616B1 (en) 2011-12-14 2011-12-14 Non-volatile memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110134573A KR101308616B1 (en) 2011-12-14 2011-12-14 Non-volatile memory system

Publications (2)

Publication Number Publication Date
KR20130067721A KR20130067721A (en) 2013-06-25
KR101308616B1 true KR101308616B1 (en) 2013-09-23

Family

ID=48863491

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110134573A KR101308616B1 (en) 2011-12-14 2011-12-14 Non-volatile memory system

Country Status (1)

Country Link
KR (1) KR101308616B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220045343A (en) * 2020-10-05 2022-04-12 에스케이하이닉스 주식회사 Apparatus and method for correcting an error in data transmission of a data processing system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980078238A (en) * 1997-04-25 1998-11-16 문정환 Error Handling Device in Flash Memory
KR100842680B1 (en) * 2007-01-08 2008-07-01 삼성전자주식회사 Ecc controller for use in flash memory device and memory system including the same
KR20080075710A (en) * 2007-02-13 2008-08-19 삼성전자주식회사 The method of correcting fault data caused by charge loss in the non-volatile memory device
KR20100102925A (en) * 2009-03-12 2010-09-27 삼성전자주식회사 Non-volatile memory device and memory system generating read reclaim signal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980078238A (en) * 1997-04-25 1998-11-16 문정환 Error Handling Device in Flash Memory
KR100842680B1 (en) * 2007-01-08 2008-07-01 삼성전자주식회사 Ecc controller for use in flash memory device and memory system including the same
KR20080075710A (en) * 2007-02-13 2008-08-19 삼성전자주식회사 The method of correcting fault data caused by charge loss in the non-volatile memory device
KR20100102925A (en) * 2009-03-12 2010-09-27 삼성전자주식회사 Non-volatile memory device and memory system generating read reclaim signal

Also Published As

Publication number Publication date
KR20130067721A (en) 2013-06-25

Similar Documents

Publication Publication Date Title
US11334413B2 (en) Estimating an error rate associated with memory
KR101576102B1 (en) Method for reading data from block of flash memory and associated memory device
KR100842680B1 (en) Ecc controller for use in flash memory device and memory system including the same
US8832526B2 (en) Data reading method, memory controller, and memory storage device
KR101616100B1 (en) Memory system and operation method thereof
KR101405741B1 (en) Stripe-based non-volatile multilevel memory operation
KR101736792B1 (en) Flash memory and self interleaving method thereof
US8112689B2 (en) ECC controller for use in flash memory device and memory system including the same
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
US8732553B2 (en) Memory system and control method thereof
CN107845405B (en) Error correction code unit for flash memory device, self-test method and controller
KR101990971B1 (en) Memory, memory system, and error checking/correction method for memory
KR102571747B1 (en) Data storage device and operating method thereof
KR102252379B1 (en) Memory System and Reading Method of the same
US20160350179A1 (en) Decoding method, memory storage device and memory control circuit unit
CN109671459B (en) Memory system and method of operating the same
WO2014092966A1 (en) System and method to update read voltages in a non-volatile memory in response to tracking data
US9507658B2 (en) Data reading method, memory storage device and memory controlling circuit unit
US9105359B2 (en) Nonvolatile memory device and error correction methods thereof
TW201526014A (en) Data storage device and error correction method thereof
US10223198B2 (en) Error rate reduction
KR101308616B1 (en) Non-volatile memory system
US10922025B2 (en) Nonvolatile memory bad row management
US11914468B1 (en) NVMe boot partition error correction code enhancement
US11556417B1 (en) Reduction of errors in data retrieved from a memory device to apply an error correction code of a predetermined code rate

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: 20160908

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170726

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190801

Year of fee payment: 7