KR101308616B1 - Non-volatile memory system - Google Patents
Non-volatile memory system Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/403—Error 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
본 발명은 반도체 메모리 시스템에 관한 것으로, 보다 상세하게는 에러 체크 및 정정(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
낸드 플래시 메모리 장치(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
컨트롤러(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
일 실시예에서, 컨트롤러(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
한편, 컨트롤러(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
상술한 바와 같이, 종래의 비휘발성 메모리 시스템은, 예를 들어, 이씨씨 엔진이 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
도 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
도 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
반면에, 도 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
도 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
낸드 플래시 메모리 장치(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
다만, 플래그 셀의 비트에 대한 정보 즉, 플래그 셀 정보(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
비휘발성 메모리 시스템(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
도 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
본 발명은 이씨씨(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.
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)
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)
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 |
-
2011
- 2011-12-14 KR KR1020110134573A patent/KR101308616B1/en active IP Right Grant
Patent Citations (4)
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 |