KR20210065022A - Operating method of memory system including memory controller and nonvolatile memory device - Google Patents

Operating method of memory system including memory controller and nonvolatile memory device Download PDF

Info

Publication number
KR20210065022A
KR20210065022A KR1020200068602A KR20200068602A KR20210065022A KR 20210065022 A KR20210065022 A KR 20210065022A KR 1020200068602 A KR1020200068602 A KR 1020200068602A KR 20200068602 A KR20200068602 A KR 20200068602A KR 20210065022 A KR20210065022 A KR 20210065022A
Authority
KR
South Korea
Prior art keywords
page data
read
data
memory
memory cells
Prior art date
Application number
KR1020200068602A
Other languages
Korean (ko)
Inventor
장준석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US17/077,200 priority Critical patent/US11309032B2/en
Priority to CN202011293965.6A priority patent/CN112951301A/en
Priority to EP20209855.4A priority patent/EP3832468A1/en
Publication of KR20210065022A publication Critical patent/KR20210065022A/en
Priority to US17/698,056 priority patent/US11915763B2/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/148Details of power up or power down circuits, standby circuits or recovery circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies

Abstract

The present invention provides an operating method of a memory system including a memory controller and a nonvolatile memory device to efficiently back up data when sudden power-off (SPO) occurs during a program operation, and efficiently perform the program operation after power restoration. According to one embodiment of the present invention, the operating method of a memory system including a memory controller and a nonvolatile memory device comprises: a step of preprogramming multi-page data of the memory controller in memory cells of the nonvolatile memory device; a step of generating a state group code having fewer bits than the bits of the multi-page data based on the multi-page data; a step of backing up the state group code in the nonvolatile memory device if sudden power-off occurs after the memory cells are preprogrammed; a step of reading the multi-page data from the preprogrammed memory cells based on the backed-up state group code after power restoration from the sudden power-off; a step of reprogramming the multi-page data in the memory cells based on the read multi-page data; and a step of reprogramming the multi-page data in the memory cells based on the multi-page data of the memory controller if the sudden power-off does not occur after the memory cells are preprogrammed.

Description

메모리 컨트롤러 및 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법{OPERATING METHOD OF MEMORY SYSTEM INCLUDING MEMORY CONTROLLER AND NONVOLATILE MEMORY DEVICE}An operating method of a memory system including a memory controller and a nonvolatile memory device

본 발명은 반도체 장치에 관한 것으로써, 좀 더 상세하게는 불휘발성 메모리 장치에 데이터를 프로그램하는 동안 SPO(Sudden Power off) 발생 시, 프로그램 동작을 효율적으로 완료하기 위한 메모리 시스템의 동작 방법에 관한 것이다.The present invention relates to a semiconductor device, and more particularly, to a method of operating a memory system for efficiently completing a program operation when a sudden power off (SPO) occurs while data is being programmed in a nonvolatile memory device. .

불휘발성 메모리 장치의 일 예로서, 플래시 메모리 장치는 프로그램 상태에 따라 각각 서로 다른 문턱 전압을 갖는 메모리 셀들을 포함한다. SLC(Single Level Cell) 모드에서, 메모리 셀은 소거 상태와 프로그램 상태 중 하나에 대응하는 문턱 전압을 갖도록 프로그램될 수 있다. 한편, MLC(Multi Level Cell) 모드에서, 메모리 셀은 소거 상태와 복수의 프로그램 상태들 중 하나에 대응하는 문턱 전압을 갖도록 프로그램될 수 있다.As an example of a nonvolatile memory device, a flash memory device includes memory cells each having different threshold voltages according to a program state. In a single level cell (SLC) mode, the memory cell may be programmed to have a threshold voltage corresponding to one of an erase state and a program state. Meanwhile, in a multi-level cell (MLC) mode, the memory cell may be programmed to have a threshold voltage corresponding to one of an erase state and a plurality of program states.

불휘발성 메모리 장치에 대한 SPO가 발생하는 경우, 프로그램 수행 중인 메모리 셀들에 대한 데이터 백업이 요구될 수 있다. 이 때, MLC 모드로 프로그램되는 메모리 셀들에 대해 백업해야 하는 데이터의 양이 SLC 모드로 프로그램되는 메모리 셀들에 비해 많고, 이로 인해 데이터 백업에 이용되는 보조 전원의 필요 용량이 증가하게 된다.When the SPO of the nonvolatile memory device occurs, data backup of memory cells in program execution may be required. In this case, the amount of data to be backed up for the memory cells programmed in the MLC mode is larger than that of the memory cells programmed in the SLC mode, and thus the required capacity of the auxiliary power used for data backup increases.

본 발명은 상술한 기술적 과제를 해결하기 위한 것으로, 프로그램 동작 중에 SPO 발생 시, 데이터를 효율적으로 백업하고, 전원 복구 후에 다시 효율적으로 프로그램 동작을 수행하기 위한 메모리 시스템의 동작 방법을 제공하는데 있다.An object of the present invention is to solve the above-described technical problem, and to provide an operating method of a memory system for efficiently backing up data when an SPO occurs during a program operation and efficiently performing a program operation again after power recovery.

본 발명의 하나의 실시 예에 따른 메모리 컨트롤러 및 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법은 상기 메모리 컨트롤러의 멀티 페이지 데이터를 상기 불휘발성 메모리 장치의 메모리 셀들에 프리 프로그램하는 단계, 상기 멀티 페이지 데이터에 기초하여 상기 멀티 페이지 데이터의 비트들보다 적은 비트들을 가지는 상태 그룹 코드를 생성하는 단계, 상기 메모리 셀들이 프리 프로그램된 이후에 서든 파워 오프가 발생하는 경우, 상기 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계, 상기 서든 파워 오프로부터의 전원 복구 후에, 상기 백업된 상태 그룹 코드에 기초하여 상기 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계, 상기 독출된 멀티 페이지 데이터를 기반으로 상기 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계, 및 상기 메모리 셀들이 프리 프로그램된 이후에 상기 서든 파워 오프가 발생하지 않은 경우, 상기 메모리 컨트롤러의 상기 멀티 페이지 데이터를 기반으로 상기 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계를 포함한다.According to an embodiment of the present invention, a method of operating a memory system including a memory controller and a nonvolatile memory device includes pre-programming multi-page data of the memory controller into memory cells of the non-volatile memory device; generating a state group code having fewer bits than bits of the multi-page data based on data; when a sudden power-off occurs after the memory cells are pre-programmed, converting the state group code into the nonvolatile memory Backing up the device to the device, after power recovery from the sudden power-off, reading the multi-page data from the pre-programmed memory cells based on the backed-up state group code, based on the read multi-page data reprogramming the multi-page data into the memory cells, and when the sudden power-off does not occur after the memory cells are pre-programmed, the memory cells are written to the memory cells based on the multi-page data of the memory controller. and reprogramming the multi-page data.

본 발명의 하나의 실시 예에 따른 메모리 컨트롤러 및 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법은 상기 메모리 컨트롤러의 멀티 페이지 데이터를 상기 불휘발성 메모리 장치의 메모리 셀들에 프리 프로그램하는 단계, 상기 멀티 페이지 데이터에 기초하여 상기 멀티 페이지 데이터의 비트들보다 적은 비트들을 가지는 상태 그룹 코드를 생성하는 단계, 상기 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계, 상기 상태 그룹 코드가 백업된 이후에 서든 파워 오프가 발생하는 경우, 전원 복구 후에 상기 백업된 상태 그룹 코드에 기초하여 상기 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계, 상기 독출된 멀티 페이지 데이터를 기반으로 상기 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계, 및 상기 상태 그룹 코드가 백업된 이후에 상기 서든 파워 오프가 발생하지 않은 경우, 상기 메모리 컨트롤러의 상기 멀티 페이지 데이터를 기반으로 상기 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계를 포함한다.According to an embodiment of the present invention, a method of operating a memory system including a memory controller and a nonvolatile memory device includes pre-programming multi-page data of the memory controller into memory cells of the non-volatile memory device; generating a status group code having fewer bits than bits of the multi-page data based on data, backing up the status group code to the nonvolatile memory device, and sudden power after the status group code is backed up reading the multi-page data from the pre-programmed memory cells based on the backed-up state group code after power recovery when an off occurs, and applying the multi-page data to the memory cells based on the read multi-page data reprogramming the page data; and if the sudden power-off does not occur after the state group code is backed up, reprogramming the multi-page data in the memory cells based on the multi-page data of the memory controller including the steps of

본 발명의 하나의 실시 예에 따른 메모리 컨트롤러 및 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법은 상기 메모리 컨트롤러의 멀티 페이지 데이터를 상기 불휘발성 메모리 장치의 제1 메모리 셀들에 프리 프로그램하는 단계, 상기 멀티 페이지 데이터에 기초하여 상기 멀티 페이지 데이터의 비트들보다 적은 비트들을 가지는 상태 그룹 코드를 생성하는 단계, 상기 제1 메모리 셀들이 프리 프로그램된 이후에 서든 파워 오프가 발생하는 경우, 상기 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계, 상기 서든 파워 오프로부터의 전원 복구 후에, 상기 백업된 상태 그룹 코드에 기초하여 상기 프리 프로그램된 제1 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계, 상기 독출된 멀티 페이지 데이터를 기반으로 상기 불휘발성 메모리 장치의 제2 메모리 셀들에 상기 멀티 페이지 데이터를 프리 프로그램하는 단계, 상기 제2 메모리 셀들에 상기 멀티 페이지 데이터를 프리 프로그램한 이후에 상기 독출된 멀티 페이지 데이터를 기반으로 상기 제2 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계, 및 상기 제1 메모리 셀들이 프리 프로그램된 이후에 상기 서든 파워 오프가 발생하지 않은 경우, 상기 메모리 컨트롤러의 상기 멀티 페이지 데이터를 기반으로 상기 제1 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계를 포함한다.According to an embodiment of the present invention, a method of operating a memory system including a memory controller and a nonvolatile memory device includes the steps of preprogramming multi-page data of the memory controller into first memory cells of the nonvolatile memory device; generating a status group code having fewer bits than bits of the multi-page data based on the multi-page data; when a sudden power-off occurs after the first memory cells are pre-programmed, generating the status group code backing up to the nonvolatile memory device, reading the multi-page data from the preprogrammed first memory cells based on the backed-up state group code after power recovery from the sudden power-off; pre-programming the multi-page data in second memory cells of the nonvolatile memory device based on the multi-page data, and the read multi-page data after pre-programming the multi-page data in the second memory cells reprogramming the multi-page data in the second memory cells based on and reprogramming the multi-page data in the first memory cells based on the data.

본 발명의 하나의 실시 예에 따른 메모리 컨트롤러 및 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법은 상기 메모리 컨트롤러의 멀티 페이지 데이터를 상기 불휘발성 메모리 장치의 메모리 셀들에 제1 프리 프로그램하는 단계, 상기 멀티 페이지 데이터에 기초하여 상기 멀티 페이지 데이터의 비트들보다 적은 비트들을 가지는 제1 상태 그룹 코드를 생성하는 단계, 상기 메모리 셀들이 제1 프리 프로그램된 이후에 서든 파워 오프가 발생하는 경우, 상기 제1 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계, 상기 서든 파워 오프로부터의 전원 복구 후에, 상기 백업된 제1 상태 그룹 코드에 기초하여 상기 제1 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계, 상기 독출된 멀티 페이지 데이터를 기반으로 상기 제1 프리 프로그램된 메모리 셀들에 상기 멀티 페이지 데이터를 제2 프리 프로그램하는 단계, 상기 독출된 멀티 페이지 데이터에 기초하여 상기 멀티 페이지 데이터의 비트들보다 적은 비트들을 가지는 제2 상태 그룹 코드를 생성하는 단계, 상기 메모리 셀들이 제2 프리 프로그램된 이후에 서든 파워 오프가 발생하는 경우, 상기 제2 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계, 상기 서든 파워 오프로부터의 전원 복구 후에, 상기 백업된 제2 상태 그룹 코드에 기초하여 상기 제2 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계, 및 상기 제2 프리 프로그램된 메모리 셀들로부터 독출된 상기 멀티 페이지 데이터를 기반으로 상기 제2 프리 프로그램된 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계를 포함한다.According to an embodiment of the present invention, a method of operating a memory system including a memory controller and a nonvolatile memory device includes: first preprogramming multi-page data of the memory controller into memory cells of the nonvolatile memory device; generating a first state group code having fewer bits than bits of the multi-page data based on the multi-page data; when a sudden power-off occurs after the memory cells are first pre-programmed, the first Backing up the state group code to the nonvolatile memory device and after power recovery from the sudden power-off, reading the multi-page data from the first pre-programmed memory cells based on the backed-up first state group code outputting the multi-page data, second pre-programming the multi-page data into the first pre-programmed memory cells based on the read multi-page data, and bits of the multi-page data based on the read multi-page data generating a second state group code having fewer bits; backing up the second state group code to the nonvolatile memory device when a sudden power-off occurs after the memory cells are second preprogrammed; , reading the multi-page data from the second pre-programmed memory cells based on the backed-up second state group code after power recovery from the sudden power-off, and the second pre-programmed memory cells and reprogramming the multi-page data in the second pre-programmed memory cells based on the multi-page data read from the memory cell.

본 발명의 실시 예에 따른 메모리 시스템은 멀티 비트 데이터에 대한 프로그램 동작 중에 SPO 발생 시, 멀티 비트 데이터의 양보다 적은 양의 데이터를 백업하고, 전원 복구 후에 백업된 데이터를 기반으로 멀티 비트 데이터를 복구할 수 있다. 이에 따라, 데이터 백업에 이용되는 보조 전원 및 메모리 용량이 감소될 수 있고, 보조 전원에 연결되는 회로 또는 PCB(Printed Circuit Board) 비용이 감소될 수 있다.When an SPO occurs during a program operation for multi-bit data, the memory system according to an embodiment of the present invention backs up an amount of data less than the amount of multi-bit data, and recovers multi-bit data based on the backed up data after power recovery can do. Accordingly, auxiliary power and memory capacity used for data backup may be reduced, and the cost of a circuit or printed circuit board (PCB) connected to the auxiliary power may be reduced.

도 1은 본 발명의 하나의 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 SPO 발생 상황에서 도 1의 메모리 시스템의 예시적인 프로그램 동작을 보여주는 도면이다.
도 3은 본 발명의 하나의 실시 예에 따른 불휘발성 메모리 장치의 문턱 전압 분포를 나타내는 그래프들이다.
도 4는 도 1의 메모리 컨트롤러의 예시적인 블록도이다.
도 5는 도 1의 불휘발성 메모리 장치의 예시적인 블록도이다.
도 6은 본 발명의 하나의 실시 예에 따른 메모리 블록을 예시적으로 나타내는 회로도이다.
도 7은 본 발명의 하나의 실시 예에 따른 상태 그룹 코드 생성 예시를 보여준다.
도 8은 본 발명의 하나의 실시 예에 따른 도 1의 메모리 시스템의 동작 방법을 나타내는 순서도이다.
도 9는 본 발명의 하나의 실시 예에 따른 SPO 발생 시 메모리 컨트롤러와 불휘발성 메모리 장치 사이의 동작들을 나타내는 순서도이다.
도 10은 본 발명의 하나의 실시 예에 따른 SPO 발생 시 메모리 컨트롤러와 불휘발성 메모리 장치 사이의 동작들을 나타내는 순서도이다.
도 11은 본 발명의 하나의 실시 예에 따른 SPO로부터 전원 복구 시 메모리 컨트롤러와 불휘발성 메모리 장치 사이의 동작들을 나타내는 순서도이다.
도 12는 도 5의 불휘발성 메모리 장치의 독출 동작을 설명하기 위한 도면이다.
도 13은 본 발명의 실시 예에 따른 페이지 버퍼를 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 일반 독출 모드 및 복구 독출 모드에서의 독출 전압들의 예시를 나타내는 그래프이다.
도 15는 본 발명의 실시 예에 따른 일반 독출 모드에서 독출 전압들의 예시를 보여주는 테이블이다.
도 16은 본 발명의 실시 예에 따른 복구 독출 모드에서 독출 전압들의 예시를 보여주는 테이블이다.
도 17a 및 도 17b는 본 발명의 실시 예들에 따라 복구 독출 전압을 조절하는 예시를 나타낸다.
도 18은 본 발명의 하나의 실시 예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다.
도 19은 본 발명의 하나의 실시 예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다.
도 20은 본 발명의 하나의 실시 예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다.
도 21은 본 발명의 실시 예들에 따른 메모리 시스템을 SSD 시스템에 적용한 예시를 나타내는 블록도이다.
도 22는 본 발명의 하나의 실시 예에 따른 메모리 시스템이 적용된 네트워크 시스템을 나타내는 블록도이다.
1 is a block diagram illustrating a memory system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating an exemplary program operation of the memory system of FIG. 1 in an SPO occurrence situation.
3 is a graph illustrating a threshold voltage distribution of a nonvolatile memory device according to an embodiment of the present invention.
FIG. 4 is an exemplary block diagram of the memory controller of FIG. 1 .
FIG. 5 is an exemplary block diagram of the nonvolatile memory device of FIG. 1 .
6 is a circuit diagram exemplarily illustrating a memory block according to an embodiment of the present invention.
7 shows an example of generating a status group code according to an embodiment of the present invention.
8 is a flowchart illustrating a method of operating the memory system of FIG. 1 according to an embodiment of the present invention.
9 is a flowchart illustrating operations between a memory controller and a nonvolatile memory device when an SPO occurs according to an embodiment of the present invention.
10 is a flowchart illustrating operations between a memory controller and a nonvolatile memory device when an SPO occurs according to an embodiment of the present invention.
11 is a flowchart illustrating operations between a memory controller and a nonvolatile memory device when power is restored from an SPO according to an embodiment of the present invention.
FIG. 12 is a diagram for explaining a read operation of the nonvolatile memory device of FIG. 5 .
13 is a block diagram illustrating a page buffer according to an embodiment of the present invention.
14 is a graph illustrating examples of read voltages in a normal read mode and a recovery read mode according to an embodiment of the present invention.
15 is a table showing examples of read voltages in a normal read mode according to an embodiment of the present invention.
16 is a table showing examples of read voltages in a recovery read mode according to an embodiment of the present invention.
17A and 17B show examples of adjusting a recovery read voltage according to embodiments of the present invention.
18 is a flowchart illustrating a method of operating a memory system according to an embodiment of the present invention.
19 is a flowchart illustrating a method of operating a memory system according to an embodiment of the present invention.
20 is a flowchart illustrating a method of operating a memory system according to an embodiment of the present invention.
21 is a block diagram illustrating an example in which a memory system according to embodiments of the present invention is applied to an SSD system.
22 is a block diagram illustrating a network system to which a memory system according to an embodiment of the present invention is applied.

이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 강도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail to the strength that a person of ordinary skill in the art can easily practice the present invention.

도 1은 본 발명의 하나의 실시 예에 따른 메모리 시스템을 나타내는 블록도이다. 도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(100) 및 불휘발성 메모리 장치(Non-Volatile Memory, NVM)(200)를 포함할 수 있다. 예를 들어, 메모리 시스템(10)은 SSD(Solid State Drive)와 같은 스토리지 장치로 구현될 수 있다.1 is a block diagram illustrating a memory system according to an embodiment of the present invention. Referring to FIG. 1 , a memory system 10 may include a memory controller 100 and a non-volatile memory (NVM) 200 . For example, the memory system 10 may be implemented as a storage device such as a solid state drive (SSD).

메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)의 전반적인 동작을 제어할 수 있다. 구체적으로, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)를 제공하여 불휘발성 메모리 장치(200)를 제어할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(100)는 외부의 호스트 장치로부터의 요청에 응답하여 불휘발성 메모리 장치(200)에 데이터(DATA)를 프로그램하도록 또는 불휘발성 메모리 장치(200)로부터 데이터(DATA)를 독출하도록 불휘발성 메모리 장치(200)를 제어할 수 있다.The memory controller 100 may control the overall operation of the nonvolatile memory device 200 . Specifically, the memory controller 100 may control the nonvolatile memory device 200 by providing a control signal CTRL, a command CMD, and/or an address ADDR to the nonvolatile memory device 200 . . In an exemplary embodiment, the memory controller 100 programs data DATA in the nonvolatile memory device 200 or data DATA from the nonvolatile memory device 200 in response to a request from an external host device. The nonvolatile memory device 200 may be controlled to read

예시적인 실시 예에서, 커맨드(CMD) 및 어드레스(ADDR)는 데이터(DATA)와 동일한 입출력 채널을 이용하여 메모리 컨트롤러(100)로부터 불휘발성 메모리 장치(200)로 송신될 수 있다. 다른 예시적인 실시 예에서, 커맨드(CMD) 및 어드레스(ADDR)는 제1 입출력 채널을 이용하여 메모리 컨트롤러(100)로부터 불휘발성 메모리 장치(200)로 송신되고, 데이터(DATA)는 제2 입출력 채널을 이용하여 메모리 컨트롤러(100)로부터 불휘발성 메모리 장치(200)로 송신될 수 있다.In an exemplary embodiment, the command CMD and the address ADDR may be transmitted from the memory controller 100 to the nonvolatile memory device 200 using the same input/output channel as the data DATA. In another exemplary embodiment, the command CMD and the address ADDR are transmitted from the memory controller 100 to the nonvolatile memory device 200 using the first input/output channel, and the data DATA is transmitted through the second input/output channel. may be transmitted from the memory controller 100 to the nonvolatile memory device 200 using

메모리 컨트롤러(100)는 파워 감지기(110), 프로그램 매니저(120), 및 버퍼 메모리(130)를 포함할 수 있다. 파워 감지기(110)는 메모리 컨트롤러(100)의 파워 상태를 감지할 수 있다. 예를 들어, 파워 감지기(110)는 메모리 컨트롤러(100)로 제공되는 전압으로부터 예기치 않게 발생되는 SPO를 감지하고, SPO로부터의 전원 복구를 감지할 수 있다. 파워 감지기(110)는 메모리 컨트롤러(100)로 제공되는 전압이 기준 전압 미만이 되는 경우, SPO가 발생된 것으로 판별할 수 있다. 파워 감지기(110)는 메모리 컨트롤러(100)로 제공되는 전압이 기준 전압을 초과하는 경우, 전원 복구가 이루어진 것으로 판별할 수 있다.The memory controller 100 may include a power sensor 110 , a program manager 120 , and a buffer memory 130 . The power detector 110 may detect a power state of the memory controller 100 . For example, the power detector 110 may detect an SPO unexpectedly generated from a voltage provided to the memory controller 100 , and detect power recovery from the SPO. When the voltage provided to the memory controller 100 is less than the reference voltage, the power detector 110 may determine that the SPO has occurred. When the voltage provided to the memory controller 100 exceeds the reference voltage, the power detector 110 may determine that the power is restored.

프로그램 매니저(120)는 불휘발성 메모리 장치(200)의 프로그램 동작을 관리할 수 있다. 프로그램 매니저(120)는 프로그램 동작을 위해 미리 정해진 스케줄에 따라 제어 신호(CTRL), 커맨드(CMD), 어드레스(ADDR), 및/또는 데이터(DATA)를 불휘발성 메모리 장치(200)로 제공할 수 있다. 예시적인 실시 예에서, 프로그램 동작 중에 SPO가 발생하는 경우, 프로그램 매니저(120)는 프로그램 동작이 정상적으로 완료될 수 있도록 미리 정해진 스케줄에 따라 제어 신호(CTRL), 커맨드(CMD), 어드레스(ADDR), 및/또는 데이터(DATA)를 불휘발성 메모리 장치(200)로 제공할 수 있다.The program manager 120 may manage a program operation of the nonvolatile memory device 200 . The program manager 120 may provide a control signal CTRL, a command CMD, an address ADDR, and/or data DATA to the nonvolatile memory device 200 according to a predetermined schedule for a program operation. have. In an exemplary embodiment, when an SPO occurs during a program operation, the program manager 120 performs a control signal CTRL, a command CMD, an address ADDR, a control signal CTRL, a command CMD, an address ADDR, and a control signal according to a predetermined schedule so that the program operation can be normally completed. and/or the data DATA may be provided to the nonvolatile memory device 200 .

버퍼 메모리(130)는 데이터를 일시적으로 저장할 수 있다. 예시적인 실시 예에서, 버퍼 메모리(130)는 프로그램 동작에서 불휘발성 메모리 장치(200)로 제공될 데이터(DATA)를 일시적으로 저장하거나, 또는 독출 동작에서 불휘발성 메모리 장치(200)로부터 제공된 데이터(DATA)를 일시적으로 저장할 수 있다.The buffer memory 130 may temporarily store data. In an exemplary embodiment, the buffer memory 130 temporarily stores data DATA to be provided to the nonvolatile memory device 200 in a program operation, or data (DATA) provided from the nonvolatile memory device 200 in a read operation. DATA) can be temporarily stored.

불휘발성 메모리 장치(200)는 메모리 컨트롤러(100)의 제어에 따라 동작할 수 있다. 예시적인 실시 예에서, 불휘발성 메모리 장치(200)는 메모리 컨트롤러(100)의 제어에 따라 저장된 데이터(DATA)를 출력하거나, 또는 메모리 컨트롤러(100)로부터 제공된 데이터(DATA)를 저장할 수 있다.The nonvolatile memory device 200 may operate under the control of the memory controller 100 . In an exemplary embodiment, the nonvolatile memory device 200 may output stored data DATA under the control of the memory controller 100 or store data DATA provided from the memory controller 100 .

불휘발성 메모리 장치(200)는 메모리 셀 어레이(210)를 포함할 수 있다. 메모리 셀 어레이(210)는 복수의 메모리 셀들을 포함할 수 있다. 예를 들어, 복수의 메모리 셀들은 플래시 메모리 셀들일 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 메모리 셀들은 RRAM(Resistive Random Access Memory) 셀, FRAM(Ferroelectric Random Access Memory) 셀, PRAM(Phase Change Random Access Memory) 셀, TRAM(Thyristor Random Access Memory) 셀, MRAM(Magnetic Random Access Memory) 셀들일 수 있다. 이하에서는, 메모리 셀들이 낸드(NAND) 플래시 메모리 셀들인 실시 예를 중심으로 본 발명의 실시 예들이 설명될 것이다.The nonvolatile memory device 200 may include a memory cell array 210 . The memory cell array 210 may include a plurality of memory cells. For example, the plurality of memory cells may be flash memory cells. However, the present invention is not limited thereto, and the memory cells include a resistive random access memory (RRAM) cell, a ferroelectric random access memory (FRAM) cell, a phase change random access memory (PRAM) cell, a thyristor random access memory (TRAM) cell, They may be Magnetic Random Access Memory (MRAM) cells. Hereinafter, embodiments of the present invention will be described focusing on an embodiment in which the memory cells are NAND flash memory cells.

예시적인 실시 예에서, 메모리 셀 어레이(210)에 포함된 복수의 메모리 셀들은 각각 N 비트 데이터를 저장할 수 있다(N은 양의 정수). N이 2 이상인 경우, 메모리 셀은 MLC(Multi Level Cell)라고 지칭될 수 있고, N 비트 데이터는 멀티 비트 데이터라고 지칭될 수 있다. 예를 들어, N이 3인 경우, 메모리 셀은 TLC(Triple Level Cell)라고 지칭될 수 있다. 예를 들어, N이 4인 경우, 메모리 셀은 QLC(Quadruple Level Cell)라고 지칭될 수 있다. 그러나, 이하에서는 N이 2 이상인 모든 경우에 대해, N 비트 데이터는 모두 “멀티 비트 데이터”로 지칭하기로 한다.In an exemplary embodiment, each of the plurality of memory cells included in the memory cell array 210 may store N-bit data (N is a positive integer). When N is 2 or more, the memory cell may be referred to as a multi-level cell (MLC), and N-bit data may be referred to as multi-bit data. For example, when N is 3, the memory cell may be referred to as a triple level cell (TLC). For example, when N is 4, the memory cell may be referred to as a quadruple level cell (QLC). However, hereinafter, in all cases where N is 2 or more, all N-bit data will be referred to as “multi-bit data”.

본 발명의 실시 예들에 따르면, 메모리 시스템(10)은 멀티 비트 데이터에 대한 프로그램 동작 중에 SPO가 발생하는 경우, 멀티 비트 데이터의 양보다 적은 양의 데이터를 백업하고, 전원 복구 후에 백업된 데이터를 기반으로 멀티 비트 데이터를 복구할 수 있다. 이에 따라, 데이터 백업에 이용되는 보조 전원 및 메모리 용량이 감소될 수 있다. 이하에서는, 멀티 비트 데이터에 대한 프로그램 동작 중에 SPO가 발생하는 경우, 효율적으로 프로그램을 완료하기 위한 본 발명의 실시 예들이 자세하게 설명될 것이다.According to embodiments of the present invention, when an SPO occurs during a program operation for multi-bit data, the memory system 10 backs up an amount of data smaller than the amount of multi-bit data, and based on the backed-up data after power recovery can recover multi-bit data. Accordingly, auxiliary power and memory capacity used for data backup may be reduced. Hereinafter, embodiments of the present invention for efficiently completing a program when an SPO occurs during a program operation for multi-bit data will be described in detail.

도 2는 SPO 발생 상황에서 도 1의 메모리 시스템의 예시적인 프로그램 동작을 보여주는 도면이다. 도 3은 본 발명의 하나의 실시 예에 따른 불휘발성 메모리 장치의 문턱 전압 분포를 나타내는 그래프들이다.FIG. 2 is a diagram illustrating an exemplary program operation of the memory system of FIG. 1 in an SPO occurrence situation. 3 is a graph illustrating a threshold voltage distribution of a nonvolatile memory device according to an embodiment of the present invention.

도 2 및 도 3을 참조하면, 프로그램이 시작되면 메모리 시스템(10)은 멀티 비트 데이터를 불휘발성 메모리 장치(200)의 메모리 셀에 프리 프로그램(또는, 코스 프로그램(coarse-program))할 수 있다. 예를 들어, 멀티 비트 데이터가 4 비트 데이터인 경우, 도 3에 도시된 바와 같이, 프리 프로그램된 메모리 셀은 16개의 문턱 전압 분포들(즉, 상태들)(E, P1 내지 P15) 중 어느 하나의 분포(즉, 상태)에 대응하는 문턱 전압을 가질 수 있다. 16개의 문턱 전압 분포들은 멀티 비트 데이터가 가질 수 있는 16개의 값들에 각각 대응할 수 있다. 즉, 프리 프로그램된 메모리 셀은 멀티 비트 데이터 값에 따라 16개의 문턱 전압 분포들 중 하나에 대응할 수 있다. 이 경우, 인접한 메모리 셀들 사이의 커패시티브 커플링에 의해 메모리 셀들의 문턱 전압들이 변동될 수 있고, 이러한 문턱 전압 변동에 의해 각 문턱 전압 분포의 폭이 넓어질 수 있다. 이에 따라, 인접한 문턱 전압 분포들이 중첩될 수 있다.2 and 3 , when a program is started, the memory system 10 may pre-program (or coarse-program) multi-bit data into memory cells of the nonvolatile memory device 200 . . For example, when the multi-bit data is 4-bit data, as shown in FIG. 3 , the pre-programmed memory cell may have any one of 16 threshold voltage distributions (ie, states) (E, P1 to P15). It may have a threshold voltage corresponding to the distribution (ie, state) of . The 16 threshold voltage distributions may respectively correspond to 16 values that multi-bit data may have. That is, the preprogrammed memory cell may correspond to one of 16 threshold voltage distributions according to a multi-bit data value. In this case, threshold voltages of the memory cells may be changed due to capacitive coupling between adjacent memory cells, and the width of each threshold voltage distribution may be widened by the threshold voltage fluctuation. Accordingly, adjacent threshold voltage distributions may overlap.

프리 프로그램된 메모리 셀들의 문턱 전압 분포들은 복수의 상태 그룹들로 분할될 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 소거 상태(E) 및 제1 내지 제15 프로그램 상태들(P1 내지 P15)에 대응하는 문턱 전압 분포들은 제1 상태 그룹(GROUP1) 및 제2 상태 그룹(GROUP2)으로 분할될 수 있다. 예시적인 실시 예에서, 상태 그룹들 각각은 서로 다른 문턱 전압 분포들을 포함할 수 있고, 상태 그룹들 각각의 문턱 전압 분포들은 서로 중첩되지 않을 수 있다. 예를 들어, 제1 상태 그룹(GROUP1)은 소거 상태(E), 제2 프로그램 상태(P2), 제4 프로그램 상태(P4), 제6 프로그램 상태(P6), 제8 프로그램 상태(P8), 제10 프로그램 상태(P10), 제12 프로그램 상태(P12), 및 제14 프로그램 상태(P14)에 대응하는 문턱 전압 분포들을 포함하고, 제2 상태 그룹(GROUP2)은 제1 프로그램 상태(P1), 제3 프로그램 상태(P3), 제5 프로그램 상태(P5), 제7 프로그램 상태(P7), 제9 프로그램 상태(P9), 제11 프로그램 상태(P11), 제13 프로그램 상태(P13), 및 제15 프로그램 상태(P15)에 대응하는 문턱 전압 분포들을 포함할 수 있다.Threshold voltage distributions of preprogrammed memory cells may be divided into a plurality of state groups. For example, as shown in FIG. 3 , threshold voltage distributions corresponding to the erase state E and the first to fifteenth program states P1 to P15 are the first state group GROUP1 and the second state group. (GROUP2). In an exemplary embodiment, each of the state groups may include different threshold voltage distributions, and the threshold voltage distributions of each of the state groups may not overlap each other. For example, the first state group GROUP1 includes an erase state E, a second program state P2, a fourth program state P4, a sixth program state P6, an eighth program state P8, threshold voltage distributions corresponding to the tenth program state P10, the twelfth program state P12, and the fourteenth program state P14, and the second state group GROUP2 includes the first program state P1; A third program state P3, a fifth program state P5, a seventh program state P7, a ninth program state P9, an eleventh program state P11, a thirteenth program state P13, and a 15 , threshold voltage distributions corresponding to the program state P15 may be included.

상태 그룹들 각각은 상태 그룹 데이터에 의해 표시될 수 있다. 예를 들어, 제1 상태 그룹(GROUP1) 및 제2 상태 그룹(GROUP2)은 1 비트의 상태 그룹 데이터에 의해 표시될 수 있다. 예를 들어, 제1 상태 그룹(GROUP1)을 나타내는 상태 그룹 데이터는 “0”으로, 제2 상태 그룹(GROUP2)을 나타내는 상태 그룹 데이터는 “1”로 표시할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 상태 그룹 데이터의 비트 개수는 상태 그룹들의 개수에 따라 달라질 수 있다. 예를 들어, 문턱 전압 분포들이 4개의 상태 그룹들로 분할되는 경우, 상태 그룹 데이터는 2 비트 데이터일 수 있다. 이 경우, 상태 그룹 데이터의 비트 개수는 멀티 비트 데이터의 비트 개수보다 작을 수 있으며, 멀티 비트 데이터가 N 비트인 경우, 상태 그룹 데이터는 (N-1) 비트일 수 있다.Each of the state groups may be indicated by state group data. For example, the first state group GROUP1 and the second state group GROUP2 may be indicated by 1-bit state group data. For example, state group data indicating the first state group GROUP1 may be indicated by “0”, and state group data indicating the second state group GROUP2 may be indicated by “1”. However, the present invention is not limited thereto, and the number of bits of the state group data may vary according to the number of state groups. For example, when the threshold voltage distributions are divided into four state groups, the state group data may be 2-bit data. In this case, the number of bits of the state group data may be smaller than the number of bits of the multi-bit data, and when the multi-bit data is N bits, the state group data may be (N-1) bits.

프리 프로그램된 멀티 비트 데이터는 데이터 값에 따라 복수의 상태 그룹들 중 어느 하나를 나타내는 상태 그룹 데이터에 대응할 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 소거 상태(E)에 대응하는 멀티 비트 데이터는 제1 상태 그룹(GROUP1)을 나타내는 상태 그룹 데이터에 대응하고, 제1 프로그램 상태(P1)에 대응하는 멀티 비트 데이터는 제2 상태 그룹(GROUP2)을 나타내는 상태 그룹 데이터에 대응할 수 있다.The pre-programmed multi-bit data may correspond to state group data representing any one of a plurality of state groups according to a data value. For example, as shown in FIG. 3 , the multi-bit data corresponding to the erase state E corresponds to state group data indicating the first state group GROUP1 and corresponding to the first program state P1. The multi-bit data may correspond to state group data representing the second state group GROUP2.

프리 프로그램이 완료된 이후 SPO가 발생하는 경우, 메모리 시스템(10)은 불휘발성 메모리 장치(200)에 프리 프로그램된 메모리 셀에 대응하는 상태 그룹 데이터를 백업할 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 제1 프로그램 상태(P1)에 대응하는 멀티 비트 데이터가 프리 프로그램된 경우, 메모리 시스템(10)은 프리 프로그램된 메모리 셀에 대응하여 불휘발성 메모리 장치(200)에 제2 상태 그룹(GROUP2)을 나타내는 상태 그룹 데이터를 백업할 수 있다.When the SPO occurs after the pre-programming is completed, the memory system 10 may back up state group data corresponding to the pre-programmed memory cell in the nonvolatile memory device 200 . For example, as shown in FIG. 3 , when multi-bit data corresponding to the first program state P1 is pre-programmed, the memory system 10 stores the nonvolatile memory device ( 200), the state group data indicating the second state group GROUP2 may be backed up.

SPO로부터 전원이 복구되는 경우, 메모리 시스템(10)은 백업된 상태 그룹 데이터에 기초하여 멀티 비트 데이터를 복구할 수 있다. 예를 들어, 메모리 시스템(10)은 상태 그룹 데이터에 기초하여 프리 프로그램된 메모리 셀로부터 멀티 비트 데이터를 독출할 수 있다. 도 3에 도시된 바와 같이, 프리 프로그램된 메모리 셀들의 문턱 전압 분포들에 중첩된 영역이 존재하더라도 상태 그룹 데이터에 기초하여 상태 그룹 별로 독출 동작이 수행되는 경우, 중첩된 영역이 어느 문턱 전압 분포에 속하는지 구분될 수 있다. 이에 따라, 복구된 멀티 비트 데이터의 신뢰성이 향상될 수 있다.When power is restored from the SPO, the memory system 10 may restore multi-bit data based on the backed-up state group data. For example, the memory system 10 may read multi-bit data from a preprogrammed memory cell based on the state group data. As shown in FIG. 3 , even if an overlapping region exists in threshold voltage distributions of preprogrammed memory cells, when a read operation is performed for each state group based on state group data, the overlapped region corresponds to a certain threshold voltage distribution. belonging can be distinguished. Accordingly, the reliability of the recovered multi-bit data may be improved.

메모리 시스템(10)은 복구된 멀티 비트 데이터를 기반으로 멀티 비트 데이터를 메모리 셀에 재 프로그램(또는, 파인 프로그램(fine-program))할 수 있다. 재 프로그램 동작에 따라 멀티 비트 데이터에 대한 프로그램 동작이 완료될 수 있다. 도 3에 도시된 바와 같이, 재 프로그램 동작이 수행됨으로써 메모리 셀들의 문턱 전압 분포의 폭이 좁혀질 수 있다. 재 프로그램에 따른 메모리 셀의 문턱 전압 상승이 프리 프로그램에 따른 문턱 전압 상승에 비하여 작으므로, 재 프로그램에 따른 문턱 전압 분포는 커플링의 영향을 적게 받을 수 있다. 따라서, 재 프로그램 동작에 따라 메모리 셀들은 좁은 문턱 전압 분포들을 가질 수 있고, 문턱 전압 분포들의 중첩된 영역이 감소될 수 있다. 이에 따라, 재 프로그램된 메모리 셀로부터 멀티 비트 데이터가 독출되는 경우, 멀티 비트 데이터의 신뢰성이 향상될 수 있다.The memory system 10 may reprogram (or fine-program) the multi-bit data into the memory cell based on the recovered multi-bit data. According to the reprogram operation, a program operation on multi-bit data may be completed. As shown in FIG. 3 , the width of the threshold voltage distribution of the memory cells may be narrowed by performing the reprogramming operation. Since the threshold voltage rise of the memory cell due to the reprogramming is smaller than the threshold voltage rise due to the preprogramming, the threshold voltage distribution according to the reprogramming may be less affected by the coupling. Accordingly, according to the reprogramming operation, the memory cells may have narrow threshold voltage distributions, and an overlapping area of the threshold voltage distributions may be reduced. Accordingly, when multi-bit data is read from the reprogrammed memory cell, reliability of the multi-bit data may be improved.

예시적인 실시 예에서, 멀티 비트 데이터를 재 프로그램하기 위한 재 프로그램 검증 전압은 멀티 비트 데이터를 프리 프로그램하기 위한 프리 프로그램 검증 전압보다 높을 수 있다. 예를 들어, 원하는 문턱 전압보다 낮은 문턱 전압에 대응하는 프리 프로그램 검증 전압을 이용하여 프리 프로그램 동작이 수행되고, 재 프로그램 동작 시 프리 프로그램 검증 전압보다 높은 재 프로그램 검증 전압을 이용하여 메모리 셀이 원하는 문턱 전압으로 프로그램될 수 있다.In an exemplary embodiment, the reprogram verification voltage for reprogramming the multi-bit data may be higher than the pre-program verification voltage for preprogramming the multi-bit data. For example, a pre-program operation is performed using a pre-program verification voltage corresponding to a threshold voltage lower than a desired threshold voltage, and during the re-program operation, the memory cell selects a desired threshold by using a re-program verification voltage higher than the pre-program verification voltage. It can be programmed with voltage.

메모리 시스템(10)은, 도 2를 참조하여 설명한 바와 같이, SPO가 발생한 이후에 상태 그룹 데이터를 백업할 수 있으나, 본 발명이 이에 한정되는 것은 아니다. 예를 들어, 메모리 시스템(10)은 SPO가 발생하기 전에 상태 그룹 데이터를 백업할 수 있다.As described with reference to FIG. 2 , the memory system 10 may back up the state group data after the SPO occurs, but the present invention is not limited thereto. For example, the memory system 10 may back up the state group data before the SPO occurs.

상술한 바와 같이, 메모리 시스템(10)은 SPO 상황에서 멀티 비트 데이터에 대응하는 상태 그룹 데이터를 백업하고, 백업된 상태 그룹 데이터에 기초하여 멀티 비트 데이터에 대한 프로그램 동작을 완료할 수 있다. 이 경우, 상태 그룹 데이터의 비트 개수가 멀티 비트 데이터의 비트 개수보다 작으므로, 멀티 비트 데이터를 직접 백업하는 동작과 비교하여 백업 동작에 요구되는 보조 전원과 메모리 용량이 감소될 수 있다.As described above, the memory system 10 may back up the state group data corresponding to the multi-bit data in the SPO situation, and complete the program operation on the multi-bit data based on the backed up state group data. In this case, since the number of bits of the state group data is smaller than the number of bits of the multi-bit data, the auxiliary power and memory capacity required for the backup operation may be reduced compared to the operation of directly backing up the multi-bit data.

이하에서는, 도 3에 도시된 바와 같이, 멀티 비트 데이터가 4 비트 데이터이고, 상태 그룹 데이터가 1 비트 데이터인 실시 예를 중심으로 본 발명의 실시 예들이 설명될 것이나, 본 발명이 이에 한정되는 것은 아니다.Hereinafter, as shown in FIG. 3 , embodiments of the present invention will be described focusing on an embodiment in which multi-bit data is 4-bit data and state group data is 1-bit data, but the present invention is not limited thereto. no.

도 4는 도 1의 메모리 컨트롤러의 예시적인 블록도이다. 도 4를 참조하면, 메모리 컨트롤러(100)는 파워 감지기(110), 프로그램 매니저(120), 버퍼 메모리(130), 프로세서(140), ECC(Error Correction Code) 회로(150), 호스트 인터페이스(160), 불휘발성 메모리 인터페이스(170), 및 버스(180)를 포함할 수 있다. 이하에서, 도 1을 참조하여 상술된 내용들 중 중복되는 내용은 생략될 수 있다.FIG. 4 is an exemplary block diagram of the memory controller of FIG. 1 . Referring to FIG. 4 , the memory controller 100 includes a power detector 110 , a program manager 120 , a buffer memory 130 , a processor 140 , an error correction code (ECC) circuit 150 , and a host interface 160 . ), a nonvolatile memory interface 170 , and a bus 180 . Hereinafter, duplicate contents among the contents described above with reference to FIG. 1 may be omitted.

파워 감지기(110)는 메모리 컨트롤러(100)로 제공되는 전압을 감지함으로써 SPO 발생을 감지하거나, 또는 SPO로부터의 전원 복구를 감지할 수 있다. 예를 들어, 파워 감지기(110)는 전압 센서로 구현될 수 있다.The power detector 110 may detect the occurrence of the SPO by sensing the voltage supplied to the memory controller 100 , or may detect power recovery from the SPO. For example, the power detector 110 may be implemented as a voltage sensor.

프로그램 매니저(120)는 멀티 비트 데이터에 대한 프로그램 동작을 관리할 수 있다. 예를 들어, 프로그램 매니저(120)는, 도 2를 참조하여 설명한 바와 같이, 프리 프로그램 및 재 프로그램을 통해 멀티 비트 데이터에 대한 프로그램 동작이 수행되도록 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)를 생성할 수 있다. 멀티 비트 데이터에 대한 프로그램 동작 중에 SPO가 감지되는 경우, 프로그램 매니저(120)는 미리 정해진 스케줄에 따라 멀티 비트 데이터에 대한 프로그램 동작이 완료되도록 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)를 생성할 수 있다.The program manager 120 may manage a program operation for multi-bit data. For example, as described with reference to FIG. 2 , the program manager 120 performs a control signal CTRL, a command CMD, and/or a program operation on multi-bit data through pre-programming and re-programming. Alternatively, an address ADDR may be generated. When the SPO is detected during a program operation on multi-bit data, the program manager 120 uses a control signal CTRL, a command CMD, and/or an address to complete the program operation for multi-bit data according to a predetermined schedule. (ADDR) can be created.

예시적인 실시 예에서, 프로그램 매니저(120)는 멀티 비트 데이터가 프로그램될 어드레스 정보 및 상태 그룹 데이터가 백업될 어드레스 정보를 관리할 수 있다. 어드레스 정보는 버퍼 메모리(130) 또는 메모리 컨트롤러(100) 내부의 별도의 메모리에 저장될 수 있다. SPO가 발생하는 경우, 이러한 어드레스 정보는 상태 그룹 데이터와 함께 불휘발성 메모리 장치(200)에 백업될 수 있다.In an exemplary embodiment, the program manager 120 may manage address information in which multi-bit data is to be programmed and address information in which state group data is to be backed up. The address information may be stored in the buffer memory 130 or a separate memory inside the memory controller 100 . When SPO occurs, such address information may be backed up in the nonvolatile memory device 200 together with state group data.

예시적인 실시 예에서, 프로그램 매니저(120)는 소프트웨어 또는 FTL(Flash Translation Layer)과 같은 펌웨어로 구현될 수 있다. 이 경우, 프로그램 매니저(120)는 메모리 컨트롤러(100) 내의 메모리(예를 들어, 버퍼 메모리(130) 또는 별도의 메모리)에 로딩되어 프로세서(140)에 의해 실행될 수 있다. 그러나 본 발명이 이에 한정되는 것은 아니며, 프로그램 매니저(120)는 하드웨어로 구현될 수 있다. In an exemplary embodiment, the program manager 120 may be implemented in software or firmware such as a Flash Translation Layer (FTL). In this case, the program manager 120 may be loaded into a memory (eg, the buffer memory 130 or a separate memory) in the memory controller 100 and executed by the processor 140 . However, the present invention is not limited thereto, and the program manager 120 may be implemented as hardware.

버퍼 메모리(130)는 호스트로부터 제공되거나, 메모리 컨트롤러(100) 내부에서 생성되거나, 또는 불휘발성 메모리 장치(200)로부터 제공되는 데이터를 일시적으로 저장할 수 있다. 예를 들어, 버퍼 메모리(130)는 프로그램을 수행하는 동안 불휘발성 메모리 장치(200)로 제공할 멀티 비트 데이터를 일시적으로 저장할 수 있다. 프로그램 동작 중에 SPO가 발생하는 경우, 버퍼 메모리(130)에 저장된 멀티 비트 데이터가 소실될 수 있다. SPO로부터 전원이 복구된 후에, 불휘발성 메모리 장치(200)로부터 독출된 멀티 비트 데이터가 버퍼 메모리(130)에 일시적으로 저장될 수 있다. 예를 들어, 버퍼 메모리(130)는 DRAM 또는 SRAM으로 구현될 수 있으나, 본 발명이 이에 한정되는 것은 아니다.The buffer memory 130 may temporarily store data provided from the host, generated inside the memory controller 100 , or provided from the nonvolatile memory device 200 . For example, the buffer memory 130 may temporarily store multi-bit data to be provided to the nonvolatile memory device 200 while a program is being executed. When SPO occurs during a program operation, multi-bit data stored in the buffer memory 130 may be lost. After power is restored from the SPO, multi-bit data read from the nonvolatile memory device 200 may be temporarily stored in the buffer memory 130 . For example, the buffer memory 130 may be implemented as DRAM or SRAM, but the present invention is not limited thereto.

프로세서(140)는 메모리 컨트롤러(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(140)는 프로그램 매니저(120)를 구동시킬 수 있다. 이에 따라, 멀티 비트 데이터에 대한 프로그램 동작이 수행될 수 있다.The processor 140 may control the overall operation of the memory controller 100 . For example, the processor 140 may drive the program manager 120 . Accordingly, a program operation on multi-bit data may be performed.

ECC 회로(150)는 불휘발성 메모리 장치(200)로부터 독출된 데이터의 에러를 정정할 수 있다. 예를 들어, ECC 회로(150)는 SPO로부터 전원이 복구되는 경우, 불휘발성 메모리 장치(200)로부터 독출된 멀티 비트 데이터의 에러를 정정할 수 있다. 에러 정정된 멀티 비트 데이터를 기반으로 재 프로그램이 수행되는 경우, 불휘발성 메모리 장치(200)에 프로그램된 멀티 비트 데이터에 대한 신뢰성이 향상될 수 있다.The ECC circuit 150 may correct an error in data read from the nonvolatile memory device 200 . For example, when power is restored from the SPO, the ECC circuit 150 may correct an error in the multi-bit data read from the nonvolatile memory device 200 . When reprogramming is performed based on the error-corrected multi-bit data, reliability of the multi-bit data programmed in the nonvolatile memory device 200 may be improved.

호스트 인터페이스(160)는 호스트와 메모리 컨트롤러(100)의 물리적 연결을 제공할 수 있다. 예를 들어, 호스트 인터페이스(160)는 ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함할 수 있다.The host interface 160 may provide a physical connection between the host and the memory controller 100 . For example, the host interface 160 may include an advanced technology attachment (ATA), serial ATA (SATA), external SATA (e-SATA), small computer small interface (SCSI), serial attached SCSI (SAS), peripheral component (PCI). interconnection), PCI-E (PCI express), IEEE 1394, USB (universal serial bus), SD (secure digital) card, MMC (multi-media card), eMMC (embedded multi-media card), CF (compact flash) It may include various interface methods such as a card interface and the like.

메모리 인터페이스(170)는 메모리 컨트롤러(100)와 불휘발성 메모리 장치(200) 사이의 물리적 연결을 제공할 수 있다. 예를 들어, 제어 신호(CTRL), 커맨드(CMD), 어드레스(ADDR), 및 데이터(DATA) 등이 메모리 인터페이스(170)를 통해 메모리 컨트롤러(100)와 불휘발성 메모리 장치(200) 사이에서 송수신될 수 있다. 버스(180)는 메모리 컨트롤러(100)의 구성 요소들 사이에 채널을 제공하도록 구성될 수 있다.The memory interface 170 may provide a physical connection between the memory controller 100 and the nonvolatile memory device 200 . For example, a control signal CTRL, a command CMD, an address ADDR, and data DATA are transmitted/received between the memory controller 100 and the nonvolatile memory device 200 through the memory interface 170 . can be The bus 180 may be configured to provide a channel between components of the memory controller 100 .

도 5는 도 1의 불휘발성 메모리 장치의 예시적인 블록도이다. 도 5를 참조하면, 불휘발성 메모리 장치(200)는 메모리 셀 어레이(210), 페이지 버퍼부(220), 제어 로직 회로(230), 전압 생성기(240), 및 로우 디코더(250)를 포함할 수 있다. 도 5에는 도시되지 않았으나, 불휘발성 메모리 장치(200)는 데이터 입출력 회로 또는 입출력 인터페이스 등을 더 포함할 수 있다. 또한, 불휘발성 메모리 장치(200)는 컬럼 로직, 프리-디코더, 온도 센서, 커맨드 디코더, 어드레스 디코더 등을 더 포함할 수 있다.FIG. 5 is an exemplary block diagram of the nonvolatile memory device of FIG. 1 . Referring to FIG. 5 , the nonvolatile memory device 200 may include a memory cell array 210 , a page buffer unit 220 , a control logic circuit 230 , a voltage generator 240 , and a row decoder 250 . can Although not shown in FIG. 5 , the nonvolatile memory device 200 may further include a data input/output circuit or an input/output interface. In addition, the nonvolatile memory device 200 may further include column logic, a pre-decoder, a temperature sensor, a command decoder, an address decoder, and the like.

메모리 셀 어레이(210)는 복수의 메모리 블록들(BLK1 내지 BLKz)을 포함할 수 있고(z는 양의 정수), 복수의 메모리 블록들(BLK1 내지 BLKz) 각각은 복수의 메모리 셀들을 포함할 수 있다. 메모리 블록들(BLK1 내지 BLKz)은 하나의 메모리 플레인(plane)에 포함될 수 있으나, 본 발명이 이에 한정되는 것은 아니다. 메모리 셀 어레이(210)는 비트 라인들(BL)을 통해 페이지 버퍼부(220)에 연결될 수 있고, 워드 라인들(WL), 스트링 선택 라인들(SSL), 및 그라운드 선택 라인들(GSL)을 통해 로우 디코더(250)에 연결될 수 있다.The memory cell array 210 may include a plurality of memory blocks BLK1 to BLKz (z is a positive integer), and each of the plurality of memory blocks BLK1 to BLKz may include a plurality of memory cells. have. The memory blocks BLK1 to BLKz may be included in one memory plane, but the present invention is not limited thereto. The memory cell array 210 may be connected to the page buffer unit 220 through bit lines BL, and connect the word lines WL, the string select lines SSL, and the ground select lines GSL. It may be connected to the row decoder 250 through the

예시적인 실시 예에서, 메모리 셀 어레이(210)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 복수의 낸드 스트링들을 포함할 수 있다. 각 낸드 스트링은 기판 위에 수직으로 적층된 워드 라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 이는 도 6을 참조하여 자세하게 설명될 것이다. 미국 특허공개공보 제7,679,133호, 미국 특허공개공보 제8,553,466호, 미국 특허공개공보 제8,654,587호, 미국 특허공개공보 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 본 명세서에 인용 형식으로 결합된다. 예시적인 실시 예에서, 메모리 셀 어레이(210)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 복수의 낸드 스트링들을 포함할 수 있다.In an exemplary embodiment, the memory cell array 210 may include a 3D memory cell array, and the 3D memory cell array may include a plurality of NAND strings. Each NAND string may include memory cells respectively connected to word lines stacked vertically on the substrate. This will be explained in detail with reference to FIG. 6 . U.S. Patent Publication No. 7,679,133, U.S. Patent Publication No. 8,553,466, U.S. Patent Publication No. 8,654,587, U.S. Patent Publication No. 8,559,235, and U.S. Patent Application Publication No. 2011/0233648 are incorporated herein by reference in their entirety. are combined In an exemplary embodiment, the memory cell array 210 may include a 2D memory cell array, and the 2D memory cell array may include a plurality of NAND strings disposed along row and column directions.

페이지 버퍼부(220)는 복수의 페이지 버퍼들(PB1 내지 PBn)을 포함할 수 있고(n은 3 이상의 정수), 복수의 페이지 버퍼들(PB1 내지 PBn)은 복수의 비트 라인들(BL)을 통해 메모리 셀들과 각각 연결될 수 있다. 페이지 버퍼부(220)는 컬럼 어드레스(Y-ADDR)에 응답하여 비트 라인들(BL) 중 적어도 하나의 비트 라인을 선택할 수 있다. 페이지 버퍼부(220)는 동작 모드에 따라 기입 드라이버 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 프로그램 동작 시, 페이지 버퍼부(220)는 선택된 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 인가할 수 있다. 독출 동작 시, 페이지 버퍼부(220)는 선택된 비트 라인의 전류 또는 전압을 감지하여 메모리 셀에 저장된 데이터를 감지할 수 있다. 페이지 버퍼들(PB1 내지 PBn) 각각에 대한 상세한 설명은 도 13을 참조하여 후술하기로 한다.The page buffer unit 220 may include a plurality of page buffers PB1 to PBn (n is an integer greater than or equal to 3), and the plurality of page buffers PB1 to PBn connect a plurality of bit lines BL. may be respectively connected to the memory cells through the The page buffer 220 may select at least one bit line from among the bit lines BL in response to the column address Y-ADDR. The page buffer 220 may operate as a write driver or a sense amplifier according to an operation mode. For example, during a program operation, the page buffer 220 may apply a bit line voltage corresponding to data to be programmed to a selected bit line. During a read operation, the page buffer 220 may sense data stored in the memory cell by sensing a current or voltage of the selected bit line. A detailed description of each of the page buffers PB1 to PBn will be described later with reference to FIG. 13 .

제어 로직 회로(230)는 불휘발성 메모리 장치(200) 내의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(230)는 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)에 응답하여 메모리 셀 어레이(210)에 데이터를 프로그램하거나, 메모리 셀 어레이(210)로부터 데이터를 독출하거나, 또는 메모리 셀 어레이(210)에 저장된 데이터를 소거하기 위한 각종 제어 신호들을 출력할 수 있다. 예를 들어, 제어 로직 회로(230)는 전압 제어 신호(CTRL_vol), 로우 어드레스(X-ADDR), 및 컬럼 어드레스(Y-ADDR)를 출력할 수 있다.The control logic circuit 230 may generally control various operations in the nonvolatile memory device 200 . The control logic circuit 230 programs data into or reads data from the memory cell array 210 in response to the control signal CTRL, the command CMD, and/or the address ADDR. Alternatively, various control signals for erasing data stored in the memory cell array 210 may be output. For example, the control logic circuit 230 may output a voltage control signal CTRL_vol, a row address X-ADDR, and a column address Y-ADDR.

예시적인 실시 예에서, 제어 로직 회로(230)는 수신되는 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)에 따라 멀티 비트 데이터를 프로그램하기 위한 제어 신호들을 출력할 수 있다. 예를 들어, 제어 로직 회로(230)는 프리 프로그램 및 재 프로그램을 위한 제어 신호들을 출력하거나, 상태 그룹 데이터를 백업하기 위한 제어 신호들을 출력하거나, 또는 프리 프로그램된 멀티 비트 데이터를 독출하기 위한 제어 신호들을 출력할 수 있다.In an exemplary embodiment, the control logic circuit 230 may output control signals for programming multi-bit data according to the received control signal CTRL, command CMD, and/or address ADDR. For example, the control logic circuit 230 outputs control signals for pre-programming and re-programming, outputting control signals for backing up state group data, or a control signal for reading pre-programmed multi-bit data. can be printed out.

전압 생성기(240)는 전압 제어 신호(CTRL_vol)를 기반으로 프로그램, 독출, 및 소거 동작들을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 예를 들어, 전압 생성기(240)는 워드 라인 전압(VWL)으로서 프로그램 전압, 독출 전압, 및 프로그램 검증 전압 등을 생성할 수 있다. 예를 들어, 프로그램 전압은 ISPP(Incremental Step Pulse Program) 방식으로 생성될 수 있다.The voltage generator 240 may generate various types of voltages for performing program, read, and erase operations based on the voltage control signal CTRL_vol. For example, the voltage generator 240 may generate a program voltage, a read voltage, and a program verify voltage as the word line voltage VWL. For example, the program voltage may be generated using an incremental step pulse program (ISPP) method.

멀티 비트 데이터에 대한 프로그램 동작에서, 전압 생성기(240)는 프리 프로그램을 위한 프리 프로그램 검증 전압을 생성하고, 재 프로그램을 위한 재 프로그램 검증 전압을 생성할 수 있다. 이 경우, 프리 프로그램 검증 전압은 재 프로그램 검증 전압보다 작을 수 있다.In a program operation for multi-bit data, the voltage generator 240 may generate a pre-program verification voltage for pre-programming and generate a re-program verification voltage for re-programming. In this case, the pre-program verification voltage may be smaller than the re-program verification voltage.

로우 디코더(250)는 로우 어드레스(X-ADDR)에 응답하여 복수의 워드 라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다. 예를 들어, 프로그램 동작 시, 로우 디코더(250)는 선택된 워드 라인으로 프로그램 전압 및 프로그램 검증 전압을 인가하고, 독출 동작 시, 선택된 워드 라인으로 독출 전압을 인가할 수 있다.The row decoder 250 may select one of the plurality of word lines WL and select one of the plurality of string selection lines SSL in response to the row address X-ADDR. For example, during a program operation, the row decoder 250 may apply a program voltage and a program verify voltage to a selected word line, and during a read operation, apply a read voltage to the selected word line.

도 6은 본 발명의 하나의 실시 예에 따른 메모리 블록을 예시적으로 나타내는 회로도이다. 도 6을 참조하면, 메모리 블록(BLK)은 도 5의 메모리 블록들(BLK1 내지 BLKz) 중 하나에 대응할 수 있다. 메모리 블록(BLK)은 낸드 스트링들(NS11 내지 NS33)을 포함하고, 각 낸드 스트링(예를 들면, NS11)은 직렬로 연결된 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MCs) 및 그라운드 선택 트랜지스터(GST)를 포함할 수 있다.6 is a circuit diagram exemplarily illustrating a memory block according to an embodiment of the present invention. Referring to FIG. 6 , the memory block BLK may correspond to one of the memory blocks BLK1 to BLKz of FIG. 5 . The memory block BLK includes NAND strings NS11 to NS33 , and each NAND string (eg, NS11 ) includes a string select transistor SST, a plurality of memory cells MCs, and a ground select transistor connected in series. (GST) may be included.

제1 비트 라인(BL1)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS11, NS21, NS31)이 위치하고, 제2 비트 라인(BL2)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS12, NS22, NS32)이 위치하고, 제3 비트 라인(BL3)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS13, NS23, NS33)이 위치할 수 있다. 스트링 선택 트랜지스터(SST)는 대응하는 스트링 선택 라인(SSL1 내지 SSL3)에 연결될 수 있다. 메모리 셀들(MCs)은 대응하는 워드 라인들(WL1 내지 WL8)에 각각 연결될 수 있다. 그라운드 선택 트랜지스터(GST)는 대응하는 그라운드 선택 라인(GSL1 내지 GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL1 내지 BL3)에 연결되고, 그라운드 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다. 여기서, 낸드 스트링들의 개수, 워드 라인들의 개수, 비트 라인들의 개수, 그라운드 선택 라인의 개수 및 스트링 선택 라인들의 개수는 실시 예에 따라 다양하게 변경될 수 있다.The NAND strings NS11 , NS21 , and NS31 are positioned between the first bit line BL1 and the common source line CSL, and the NAND strings NS12 are positioned between the second bit line BL2 and the common source line CSL. , NS22 and NS32 may be positioned, and NAND strings NS13 , NS23 , and NS33 may be positioned between the third bit line BL3 and the common source line CSL. The string select transistor SST may be connected to the corresponding string select lines SSL1 to SSL3 . The memory cells MCs may be respectively connected to the corresponding word lines WL1 to WL8. The ground select transistor GST may be connected to the corresponding ground select lines GSL1 to GSL3. The string select transistor SST may be connected to the corresponding bit lines BL1 to BL3 , and the ground select transistor GST may be connected to the common source line CSL. Here, the number of NAND strings, the number of word lines, the number of bit lines, the number of ground selection lines, and the number of string selection lines may be variously changed according to embodiments.

도 7은 본 발명의 하나의 실시 예에 따른 상태 그룹 코드 생성 예시를 보여준다. 도 7을 참조하면, 멀티 페이지 데이터는 하나의 워드 라인에 연결된 n개의 메모리 셀들에 프로그램될 제1 내지 제n 멀티 비트 데이터(MD1 내지 MDn)를 포함할 수 있다. 예를 들어, 멀티 비트 데이터가 4 비트 데이터인 경우, 멀티 페이지 데이터는 제1 내지 제4 페이지 데이터(PD1~PD4)를 포함할 수 있다.7 shows an example of generating a status group code according to an embodiment of the present invention. Referring to FIG. 7 , multi-page data may include first to n-th multi-bit data MD1 to MDn to be programmed in n memory cells connected to one word line. For example, when the multi-bit data is 4-bit data, the multi-page data may include first to fourth page data PD1 to PD4.

상태 그룹 코드는 제1 내지 제n 멀티 비트 데이터(MD1~MDn)에 기초하여 생성되는 제1 내지 제n 상태 그룹 데이터(SD1~SDn)를 포함할 수 있다. 예를 들어, 멀티 비트 데이터의 비트들 중 “1” 비트(또는 “0” 비트)의 개수에 기초하여 상태 그룹 데이터가 생성될 수 있다. 예를 들어, 비트 “1”의 개수가 홀수 개인 경우 상태 그룹 데이터는 1로 생성되고, 비트 “1”의 개수가 짝수 개인 경우 상태 그룹 데이터는 0으로 생성될 수 있다. 예를 들어, 멀티 비트 데이터에 기초하여 1 비트 상태 그룹 데이터가 생성되는 경우, 제1 상태 그룹 데이터(SD1) “0”은 제1 멀티 비트 데이터(MD1) '1001'에 기초하여 생성되고, 제2 상태 그룹 데이터(SD2) “1”은 제2 멀티 비트 데이터(MD2) '1000'에 기초하여 생성될 수 있다. 이에 따라, 멀티 페이지 데이터로부터 상태 그룹 코드가 생성될 수 있다.The state group code may include first to n-th state group data SD1 to SDn generated based on the first to n-th multi-bit data MD1 to MDn. For example, state group data may be generated based on the number of “1” bits (or “0” bits) among bits of multi-bit data. For example, when the number of bits “1” is odd, state group data may be generated as 1, and when the number of bits “1” is even, state group data may be generated as 0. For example, when 1-bit state group data is generated based on multi-bit data, first state group data SD1 “0” is generated based on first multi-bit data MD1 '1001', The two-state group data SD2 “1” may be generated based on the second multi-bit data MD2 '1000'. Accordingly, a status group code may be generated from the multi-page data.

생성된 상태 그룹 코드의 비트들은 멀티 페이지 데이터의 비트들보다 적을 수 있다. 예를 들어, 4 비트 멀티 데이터로부터 1 비트 상태 그룹 데이터가 생성되는 경우, 상태 그룹 코드의 비트들은 멀티 페이지 데이터의 비트들보다 1/4배로 감소될 수 있다.The bits of the generated status group code may be fewer than the bits of the multi-page data. For example, when 1-bit status group data is generated from 4-bit multi-data data, bits of the status group code may be reduced to 1/4 times that of bits of multi-page data.

이하에서는, 멀티 페이지 데이터 및 상태 그룹 코드를 기준으로 도 1의 메모리 시스템(10)의 상세한 동작들이 설명될 것이다.Hereinafter, detailed operations of the memory system 10 of FIG. 1 will be described based on multi-page data and state group codes.

도 8은 본 발명의 하나의 실시 예에 따른 도 1의 메모리 시스템의 동작 방법을 나타내는 순서도이다. 도 1 및 도 8을 참조하면, S110 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터를 메모리 셀들에 프리 프로그램할 수 있다. S120 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터에 기초하여 상태 그룹 코드를 생성할 수 있다. 상태 그룹 코드는 메모리 컨트롤러(100)에서 생성되거나 불휘발성 메모리 장치(200)에서 생성될 수 있다. 예를 들어, 상태 그룹 코드는 멀티 비트 데이터의 비트들에 대한 논리 연산을 통해 생성될 수 있다.8 is a flowchart illustrating a method of operating the memory system of FIG. 1 according to an embodiment of the present invention. 1 and 8 , in step S110 , the memory system 10 may preprogram multi-page data into memory cells. In operation S120 , the memory system 10 may generate a state group code based on the multi-page data. The state group code may be generated by the memory controller 100 or generated by the nonvolatile memory device 200 . For example, the state group code may be generated through a logical operation on bits of multi-bit data.

S130 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S140 단계에서, 메모리 시스템(10)은 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. 이 경우, 상태 그룹 코드는 멀티 페이지 데이터가 프리 프로그램된 메모리 플레인과 동일한 메모리 플레인에 백업될 수 있으나, 본 발명이 이에 한정되는 것은 아니다.In step S130 , the memory system 10 may determine whether an SPO has occurred. When SPO occurs, in step S140 , the memory system 10 may back up the state group code to the nonvolatile memory device 200 . In this case, the state group code may be backed up in the same memory plane as the memory plane in which the multi-page data is pre-programmed, but the present invention is not limited thereto.

S150 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 상태 그룹 코드에 기초하여 프리 프로그램된 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. 불휘발성 메모리 장치(200)는 상태 그룹 코드를 기반으로 독출 동작을 수행하기 위해 일반적인 독출 동작과 다른 방식으로 멀티 페이지 데이터를 독출할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 일반적인 독출 동작에서 이용되는 독출 전압 레벨과 다른 독출 전압 레벨을 이용하여 멀티 페이지 데이터를 독출할 수 있다.In operation S150 , the memory system 10 may read multi-page data from preprogrammed memory cells based on the backed-up state group code after power recovery. The nonvolatile memory device 200 may read multi-page data in a manner different from a general read operation to perform a read operation based on the state group code. For example, the nonvolatile memory device 200 may read multi-page data using a read voltage level different from a read voltage level used in a general read operation.

S160 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 이 경우, 재 프로그램된 메모리 셀들은 프리 프로그램된 메모리 셀들과 동일한 메모리 셀들일 수 있다.In operation S160 , the memory system 10 may reprogram the multi-page data in memory cells based on the read multi-page data. In this case, the reprogrammed memory cells may be the same memory cells as the preprogrammed memory cells.

프리 프로그램된 이후 SPO가 발생하지 않는 경우, S170 단계에서, 메모리 시스템(10)은 상태 그룹 코드를 백업하지 않고 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. SPO가 발생하지 않음에 따라 버퍼 메모리(130)의 멀티 페이지 데이터가 유지될 수 있으므로, 메모리 시스템(10)은 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 멀티 페이지 데이터를 재 프로그램할 수 있다.If SPO does not occur after preprogramming, in step S170 , the memory system 10 may reprogram the multipage data in the memory cells without backing up the state group code. Since the multi-page data of the buffer memory 130 may be maintained as the SPO does not occur, the memory system 10 performs multi-page data based on the multi-page data stored in the buffer memory 130 of the memory controller 100 . can be reprogrammed.

도 8에서는 멀티 페이지 데이터가 프리 프로그램된 이후에 상태 그룹 코드가 생성되는 실시 예가 설명되었으나, 본 발명이 이에 한정되는 것은 아니다. 예를 들어, 상태 그룹 코드는 프리 프로그램 동작 중에 생성되거나, 또는 프리 프로그램 동작 전에 생성될 수 있다.In FIG. 8, an embodiment in which a state group code is generated after multi-page data is pre-programmed has been described, but the present invention is not limited thereto. For example, the status group code may be generated during a pre-program operation or may be generated prior to a pre-program operation.

도 8의 실시 예에 따르면, 메모리 시스템(10)은 프로그램 동작 중에 SPO가 발생하는 경우, 멀티 페이지 데이터 대신에 상태 그룹 코드를 백업할 수 있다. 메모리 시스템(10)은 원본 멀티 페이지 데이터를 백업하지 않더라도, 백업된 상태 그룹 코드에 기초하여 프리 프로그램된 메모리 셀들로부터 멀티 페이지 데이터를 복구할 수 있다. 이에 따라, 데이터 백업에 필요한 보조 전원의 사이즈 및 용량이 감소될 수 있으므로, 메모리 시스템(10)의 제조 비용 및 사이즈가 감소될 수 있다.According to the embodiment of FIG. 8 , when an SPO occurs during a program operation, the memory system 10 may back up the state group code instead of the multi-page data. Even if the memory system 10 does not back up the original multi-page data, the memory system 10 may recover multi-page data from preprogrammed memory cells based on the backed-up state group code. Accordingly, since the size and capacity of the auxiliary power required for data backup may be reduced, the manufacturing cost and size of the memory system 10 may be reduced.

이하에서는, 도 9 내지 도 10을 참조하여, SPO 발생 시 메모리 시스템(10)의 동작 방법들이 자세하게 설명될 것이다.Hereinafter, operation methods of the memory system 10 when an SPO occurs will be described in detail with reference to FIGS. 9 to 10 .

도 9는 본 발명의 하나의 실시 예에 따른 SPO 발생 시 메모리 컨트롤러와 불휘발성 메모리 장치 사이의 동작들을 나타내는 순서도이다. 구체적으로, 도 9는 상태 그룹 코드가 불휘발성 메모리 장치(200)에서 생성되는 실시 예를 나타낸다.9 is a flowchart illustrating operations between a memory controller and a nonvolatile memory device when an SPO occurs according to an embodiment of the present invention. Specifically, FIG. 9 shows an embodiment in which a state group code is generated in the nonvolatile memory device 200 .

도 9를 참조하면, S210 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 멀티 페이지 데이터에 대한 프리 프로그램 명령을 전송할 수 있다. 메모리 컨트롤러(100)는 프리 프로그램 명령과 함께 멀티 페이지 데이터를 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 멀티 페이지 데이터가 4 페이지인 경우, 메모리 컨트롤러(100)는 멀티 페이지 데이터가 QLC 모드로 프리 프로그램되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다.Referring to FIG. 9 , in operation S210 , the memory controller 100 may transmit a pre-program command for multi-page data to the nonvolatile memory device 200 . The memory controller 100 may transmit multi-page data to the nonvolatile memory device 200 together with a pre-program command. For example, when the multi-page data is 4 pages, the memory controller 100 may transmit the command CMD and the address ADDR to the nonvolatile memory device 200 so that the multi-page data is pre-programmed in the QLC mode. .

S220 단계에서, 불휘발성 메모리 장치(200)는 프리 프로그램 명령에 응답하여 멀티 페이지 데이터를 프리 프로그램할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 프리 프로그램 검증 전압을 기반으로 어드레스(ADDR)가 가리키는 메모리 셀들에 멀티 페이지 데이터를 프리 프로그램할 수 있다.In operation S220 , the nonvolatile memory device 200 may preprogram the multi-page data in response to the preprogram command. For example, the nonvolatile memory device 200 may pre-program the multi-page data in memory cells indicated by the address ADDR based on the pre-program verification voltage.

S230 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 상태 그룹 코드 생성 명령을 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 상태 그룹 코드 생성을 위한 별도의 커맨드(CMD)를 불휘발성 메모리 장치(200)로 전송할 수 있다. S240 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 생성 명령에 응답하여 상태 그룹 코드를 생성할 수 있다. 불휘발성 메모리 장치(200)는 멀티 페이지 데이터를 기반으로 상태 그룹 코드를 생성할 수 있다.In operation S230 , the memory controller 100 may transmit a state group code generation command to the nonvolatile memory device 200 . For example, the memory controller 100 may transmit a separate command CMD for generating the status group code to the nonvolatile memory device 200 . In operation S240 , the nonvolatile memory device 200 may generate a state group code in response to a state group code generation command. The nonvolatile memory device 200 may generate a state group code based on multi-page data.

예시적인 실시 예에서, 불휘발성 메모리 장치(200)는 도 5의 페이지 버퍼부(220)에 로딩된 멀티 페이지 데이터의 각각의 멀티 비트 데이터에 기초하여 상태 그룹 데이터를 생성할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 멀티 비트 데이터의 비트들에 대한 논리 연산을 통해 상태 그룹 데이터를 생성할 수 있다. 생성된 상태 그룹 데이터는 페이지 버퍼부(220)에 일시적으로 저장될 수 있다.In an exemplary embodiment, the nonvolatile memory device 200 may generate state group data based on each multi-bit data of the multi-page data loaded into the page buffer unit 220 of FIG. 5 . For example, the nonvolatile memory device 200 may generate state group data through a logical operation on bits of multi-bit data. The generated state group data may be temporarily stored in the page buffer 220 .

S250 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 상태 그룹 코드 출력 명령을 전송할 수 있다. S260 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 출력 명령에 응답하여 상태 그룹 코드를 메모리 컨트롤러(100)로 전송할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 페이지 버퍼부(220)에 일시적으로 저장된 상태 그룹 코드를 출력할 수 있다. 불휘발성 메모리 장치(200)로부터 제공된 상태 그룹 코드는 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장될 수 있다. 실시 예에 따라, S250 단계는 생략될 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 상태 그룹 코드 생성 명령에 응답하여 상태 그룹 코드를 생성하고, 생성된 상태 그룹 코드를 메모리 컨트롤러(100)로 전송할 수 있다.In operation S250 , the memory controller 100 may transmit a state group code output command to the nonvolatile memory device 200 . In operation S260 , the nonvolatile memory device 200 may transmit the state group code to the memory controller 100 in response to the state group code output command. For example, the nonvolatile memory device 200 may output a state group code temporarily stored in the page buffer unit 220 . The state group code provided from the nonvolatile memory device 200 may be stored in the buffer memory 130 of the memory controller 100 . In some embodiments, step S250 may be omitted. For example, the nonvolatile memory device 200 may generate a state group code in response to a state group code generation command, and transmit the generated state group code to the memory controller 100 .

S270 단계에서, 메모리 컨트롤러(100)는 SPO를 감지할 수 있다. SPO 감지에 따라, S280 단계에서, 메모리 컨트롤러(100)는 상태 그룹 코드 백업 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 메모리 컨트롤러(100)는 상태 그룹 코드 백업 명령과 함께 상태 그룹 코드를 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 상태 그룹 코드가 SLC 모드로 프로그램되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다. 이 경우, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)가 SLC 모드로 변경되도록 불휘발성 메모리 장치(200)로 별도의 커맨드(CMD)를 전송할 수 있으나, 본 발명이 이에 한정되는 것은 아니다.In step S270 , the memory controller 100 may detect the SPO. According to the SPO detection, in step S280 , the memory controller 100 may transmit a state group code backup command to the nonvolatile memory device 200 . The memory controller 100 may transmit the state group code to the nonvolatile memory device 200 together with the state group code backup command. For example, the memory controller 100 may transmit the command CMD and the address ADDR to the nonvolatile memory device 200 so that the state group code is programmed in the SLC mode. In this case, the memory controller 100 may transmit a separate command CMD to the nonvolatile memory device 200 to change the nonvolatile memory device 200 to the SLC mode, but the present invention is not limited thereto.

S290 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 백업 명령에 응답하여 상태 그룹 코드를 백업할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 어드레스(ADDR)에 대응하는 메모리 셀들에 SLC 모드로 상태 그룹 코드를 프로그램할 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 불휘발성 메모리 장치(200)는 메모리 컨트롤러(100)로부터의 커맨드(CMD)에 응답하여 MLC 모드로 상태 그룹 코드를 프로그램할 수 있다.In operation S290 , the nonvolatile memory device 200 may back up the state group code in response to the state group code backup command. For example, the nonvolatile memory device 200 may program the state group code in the SLC mode in memory cells corresponding to the address ADDR. However, the present invention is not limited thereto, and the nonvolatile memory device 200 may program the state group code in the MLC mode in response to the command CMD from the memory controller 100 .

도 9에서는, 메모리 컨트롤러(100)의 명령에 의해 불휘발성 메모리 장치(200)로부터 상태 그룹 코드가 출력되는 S250 및 S260 단계들이 도시되나, S250 및 S260 단계들은 생략될 수 있다. 이 경우, 상태 그룹 코드는 메모리 컨트롤러(100)의 카피백(copyback) 명령에 따라 불휘발성 메모리 장치(200)에 백업될 수 있다.In FIG. 9 , steps S250 and S260 in which the state group code is output from the nonvolatile memory device 200 according to a command of the memory controller 100 are illustrated, but steps S250 and S260 may be omitted. In this case, the state group code may be backed up in the nonvolatile memory device 200 according to a copyback command of the memory controller 100 .

도 10은 본 발명의 하나의 실시 예에 따른 SPO 발생 시 메모리 컨트롤러와 불휘발성 메모리 장치 사이의 동작들을 나타내는 순서도이다. 구체적으로, 도 1은 상태 그룹 코드가 메모리 컨트롤러(100)에서 생성되는 실시 예를 나타낸다.10 is a flowchart illustrating operations between a memory controller and a nonvolatile memory device when an SPO occurs according to an embodiment of the present invention. Specifically, FIG. 1 shows an embodiment in which a state group code is generated by the memory controller 100 .

도 9를 참조하면, S310 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 멀티 페이지 데이터에 대한 프리 프로그램 명령을 전송할 수 있다. S320 단계에서, 불휘발성 메모리 장치(200)는 프리 프로그램 명령에 응답하여 메모리 셀들에 멀티 페이지 데이터를 프리 프로그램할 수 있다.Referring to FIG. 9 , in step S310 , the memory controller 100 may transmit a pre-program command for multi-page data to the nonvolatile memory device 200 . In operation S320 , the nonvolatile memory device 200 may preprogram the memory cells with multipage data in response to the preprogram command.

S330 단계에서, 메모리 컨트롤러(100)는 상태 그룹 코드를 생성할 수 있다. 메모리 컨트롤러(100)는 멀티 페이지 데이터를 기반으로 상태 그룹 코드를 생성할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(100)는 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 상태 그룹 코드를 생성할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 멀티 비트 데이터의 비트들에 대한 로직 연산을 통해 상태 그룹 데이터를 생성할 수 있다. 생성된 상태 그룹 데이터는 버퍼 메모리(130)에 일시적으로 저장될 수 있다.In operation S330 , the memory controller 100 may generate a state group code. The memory controller 100 may generate a state group code based on multi-page data. In an exemplary embodiment, the memory controller 100 may generate a state group code based on multi-page data stored in the buffer memory 130 . For example, the memory controller 100 may generate state group data through a logic operation on bits of multi-bit data. The generated state group data may be temporarily stored in the buffer memory 130 .

S340 단계에서, 메모리 컨트롤러(100)는 SPO를 감지할 수 있다. SPO 감지에 따라, S350 단계에서, 메모리 컨트롤러(100)는 상태 그룹 코드 백업 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 메모리 컨트롤러(100)는 상태 그룹 코드 백업 명령과 함께 생성된 상태 그룹 코드를 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 상태 그룹 코드가 SLC 모드로 프로그램되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다.In step S340 , the memory controller 100 may detect the SPO. According to the SPO detection, in step S350 , the memory controller 100 may transmit a state group code backup command to the nonvolatile memory device 200 . The memory controller 100 may transmit the generated state group code together with the state group code backup command to the nonvolatile memory device 200 . For example, the memory controller 100 may transmit the command CMD and the address ADDR to the nonvolatile memory device 200 so that the state group code is programmed in the SLC mode.

S360 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 백업 명령에 응답하여 상태 그룹 코드를 백업할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 어드레스(ADDR)에 대응하는 메모리 셀들에 SLC 모드로 상태 그룹 코드를 프로그램할 수 있다.In operation S360 , the nonvolatile memory device 200 may back up the state group code in response to the state group code backup command. For example, the nonvolatile memory device 200 may program the state group code in the SLC mode in memory cells corresponding to the address ADDR.

이하에서는, 도 11 내지 도 17b를 참조하여, SPO로부터 전원 복구 시 메모리 시스템(10)의 동작 방법들이 자세하게 설명될 것이다.Hereinafter, operating methods of the memory system 10 when power is restored from the SPO will be described in detail with reference to FIGS. 11 to 17B .

도 11은 본 발명의 하나의 실시 예에 따른 SPO로부터 전원 복구 시 메모리 컨트롤러와 불휘발성 메모리 장치 사이의 동작들을 나타내는 순서도이다. 도 11을 참조하면, S401 단계에서, 메모리 컨트롤러(100)는 파워-업을 감지할 수 있다. 메모리 컨트롤러(100)는 파워-업 감지에 따라 메모리 시스템(10)의 전원이 복구되었음을 판별할 수 있다.11 is a flowchart illustrating operations between a memory controller and a nonvolatile memory device when power is restored from an SPO according to an embodiment of the present invention. Referring to FIG. 11 , in step S401 , the memory controller 100 may detect power-up. The memory controller 100 may determine that the power of the memory system 10 is restored according to the power-up detection.

S402 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 상태 그룹 코드 독출 명령을 전송할 수 있다. 메모리 컨트롤러(100)는 프리 프로그램된 메모리 셀들에 대응하는 어드레스 정보를 기반으로 상태 그룹 코드 독출 명령을 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 상태 그룹 코드가 SLC 모드로 독출되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다. 이 경우, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)가 SLC 모드로 변경되도록 불휘발성 메모리 장치(200)로 별도의 커맨드(CMD)를 전송할 수 있다.In operation S402 , the memory controller 100 may transmit a state group code read command to the nonvolatile memory device 200 . The memory controller 100 may transmit a state group code read command based on address information corresponding to preprogrammed memory cells. For example, the memory controller 100 may transmit the command CMD and the address ADDR to the nonvolatile memory device 200 so that the state group code is read in the SLC mode. In this case, the memory controller 100 may transmit a separate command CMD to the nonvolatile memory device 200 to change the nonvolatile memory device 200 to the SLC mode.

S403 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 독출 명령에 응답하여 상태 그룹 코드를 독출할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 어드레스(ADDR)에 대응하는 메모리 셀들로부터 SLC 모드로 상태 그룹 코드를 독출할 수 있다. 독출된 상태 그룹 코드는 도 5의 페이지 버퍼부(220)에 저장될 수 있다.In operation S403 , the nonvolatile memory device 200 may read the state group code in response to the state group code read command. For example, the nonvolatile memory device 200 may read the state group code from memory cells corresponding to the address ADDR in the SLC mode. The read state group code may be stored in the page buffer 220 of FIG. 5 .

도 11에는 도시되지 않았으나, 상태 그룹 코드와 멀티 페이지 데이터가 서로 다른 메모리 플레인에 저장되었거나, 또는 상태 그룹 코드에 대한 에러 정정이 요구되는 경우, 독출된 상태 그룹 코드는 메모리 컨트롤러(100)의 출력 명령에 따라 메모리 컨트롤러(100)로 전송될 수 있다. 이 경우, 메모리 컨트롤러(100)로 제공된 상태 그룹 코드는 도 4의 ECC 회로(150)에 의해 에러 정정될 수 있으며, 다시 불휘발성 메모리 장치(200)로 전송될 수 있다.Although not shown in FIG. 11 , when the status group code and the multi-page data are stored in different memory planes or when an error correction for the status group code is required, the read status group code is an output command of the memory controller 100 . may be transmitted to the memory controller 100 . In this case, the state group code provided to the memory controller 100 may be error-corrected by the ECC circuit 150 of FIG. 4 and transmitted to the nonvolatile memory device 200 again.

S404 단계에서, 메모리 컨트롤러(100)는 복구 독출 모드 변경 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 제어 신호(CTRL) 또는 커맨드(CMD)를 통해 복구 독출 모드 변경 명령을 전송할 수 있다. S405 단계에서, 불휘발성 메모리 장치(200)는 복구 독출 모드 변경 명령에 응답하여 복구 독출 모드로 변경될 수 있다. 불휘발성 메모리 장치(200)는 복구 독출 모드에서 일반 독출 모드와 다른 방식으로 독출 동작을 수행할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 복구 독출 모드에서 일반 독출 모드의 독출 전압들과 다른 독출 전압들을 이용하여 독출 동작을 수행할 수 있다.In operation S404 , the memory controller 100 may transmit a recovery read mode change command to the nonvolatile memory device 200 . For example, the memory controller 100 may transmit a recovery read mode change command through the control signal CTRL or the command CMD. In operation S405 , the nonvolatile memory device 200 may change to the recovery read mode in response to the recovery read mode change command. The nonvolatile memory device 200 may perform a read operation in the recovery read mode differently from the normal read mode. For example, the nonvolatile memory device 200 may perform a read operation in the recovery read mode using read voltages different from the read voltages in the normal read mode.

S406 단계에서, 메모리 컨트롤러(100)는 멀티 페이지 데이터 독출 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 멀티 페이지 데이터가 QLC 모드로 독출되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다.In operation S406 , the memory controller 100 may transmit a multi-page data read command to the nonvolatile memory device 200 . For example, the memory controller 100 may transmit the command CMD and the address ADDR to the nonvolatile memory device 200 so that multi-page data is read in the QLC mode.

S407 단계에서, 불휘발성 메모리 장치(200)는 멀티 페이지 데이터 독출 명령에 응답하여 프리 프로그램된 멀티 페이지 데이터를 독출할 수 있다. 복구 독출 모드에서 불휘발성 메모리 장치(200)는 상태 그룹 코드에 기초하여 독출 동작을 수행할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 프리 프로그램된 메모리 셀들 각각에 대하여 상태 그룹 데이터에 대응하는 독출 전압들을 이용하여 프리 프로그램된 메모리 셀들 각각으로부터 멀티 비트 데이터를 독출할 수 있다. 예를 들어, 독출된 멀티 페이지 데이터는 도 5의 페이지 버퍼부(220)에 저장될 수 있다. 상태 그룹 코드에 기초한 독출 동작은 도 12 내지 도 17b를 참조하여 상세하게 설명될 것이다.In operation S407 , the nonvolatile memory device 200 may read preprogrammed multi-page data in response to a multi-page data read command. In the recovery read mode, the nonvolatile memory device 200 may perform a read operation based on the state group code. For example, the nonvolatile memory device 200 may read multi-bit data from each of the preprogrammed memory cells using read voltages corresponding to state group data for each of the preprogrammed memory cells. For example, the read multi-page data may be stored in the page buffer unit 220 of FIG. 5 . The read operation based on the state group code will be described in detail with reference to FIGS. 12 to 17B .

S408 단계에서, 메모리 컨트롤러(100)는 멀티 페이지 데이터 출력 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. S409 단계에서, 불휘발성 메모리 장치(200)는 멀티 페이지 데이터 출력 명령에 응답하여 독출된 멀티 페이지 데이터를 출력할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 페이지 버퍼부(220)에 저장된 멀티 페이지 데이터를 메모리 컨트롤러(100)로 전송할 수 있다. 실시 예에 따라, S408 단계는 생략될 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 멀티 페이지 데이터 독출 명령에 응답하여 독출 동작을 수행하고, 독출된 멀티 페이지 데이터를 메모리 컨트롤러(100)로 전송할 수 있다.In operation S408 , the memory controller 100 may transmit a multi-page data output command to the nonvolatile memory device 200 . In operation S409 , the nonvolatile memory device 200 may output the read multi-page data in response to the multi-page data output command. For example, the nonvolatile memory device 200 may transmit multi-page data stored in the page buffer unit 220 to the memory controller 100 . In some embodiments, step S408 may be omitted. For example, the nonvolatile memory device 200 may perform a read operation in response to a multi-page data read command and transmit the read multi-page data to the memory controller 100 .

S410 단계에서, 메모리 컨트롤러(100)는 멀티 페이지 데이터의 에러를 정정할 수 있다. 멀티 페이지 데이터에 에러가 존재하지 않는 경우, 메모리 컨트롤러(100)는 에러 정정 동작을 수행하지 않을 수 있다. 이에 따라, 멀티 페이지 데이터가 복구될 수 있고, 복구된 멀티 페이지 데이터의 신뢰성이 향상될 수 있다. 예시적인 실시 예에서, S410 단계의 에러 정정 동작은 생략될 수 있다.In operation S410 , the memory controller 100 may correct an error in the multi-page data. When there is no error in the multi-page data, the memory controller 100 may not perform an error correction operation. Accordingly, multi-page data may be recovered, and reliability of the recovered multi-page data may be improved. In an exemplary embodiment, the error correction operation of step S410 may be omitted.

예시적인 실시 예에서, 도 11의 S406 내지 S410 단계의 동작들은 페이지 별로 수행될 수 있다. 예를 들어, 메모리 컨트롤러(100)는 4 페이지들 각각에 대한 독출 명령을 불휘발성 메모리 장치(200)로 제공할 수 있고, 4 페이지들 각각에 대한 출력 명령을 불휘발성 메모리 장치(200)로 제공할 수 있다.In an exemplary embodiment, operations S406 to S410 of FIG. 11 may be performed for each page. For example, the memory controller 100 may provide a read command for each of the 4 pages to the nonvolatile memory device 200 , and provide an output command for each of the 4 pages to the nonvolatile memory device 200 . can do.

S411 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 일반 독출 모드 변경 명령을 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 제어 신호(CTRL) 또는 커맨드(CMD)를 통해 일반 독출 모드 변경 명령을 전송할 수 있다. S412 단계에서, 불휘발성 메모리 장치(200)는 일반 독출 모드 변경 명령에 응답하여 일반 독출 모드로 변경될 수 있다. 불휘발성 메모리 장치(200)는 일반 독출 모드에서 상태 그룹 코드와 관계없이 미리 설정된 독출 전압들을 이용하여 독출 동작을 수행할 수 있다.In operation S411 , the memory controller 100 may transmit a general read mode change command to the nonvolatile memory device 200 . For example, the memory controller 100 may transmit a general read mode change command through the control signal CTRL or the command CMD. In operation S412 , the nonvolatile memory device 200 may change to a normal read mode in response to a normal read mode change command. The nonvolatile memory device 200 may perform a read operation using preset read voltages regardless of the state group code in the normal read mode.

S413 단계에서, 메모리 컨트롤러(100)는 멀티 페이지 데이터 재 프로그램 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 메모리 컨트롤러(100)는 재 프로그램 명령과 함께 S410 단계를 통해 복구된 멀티 페이지 데이터를 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 멀티 페이지 데이터가 4 페이지들인 경우, 메모리 컨트롤러(100)는 멀티 페이지 데이터가 QLC 모드로 재 프로그램되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다.In operation S413 , the memory controller 100 may transmit a multi-page data reprogram command to the nonvolatile memory device 200 . The memory controller 100 may transmit the multi-page data recovered through step S410 to the nonvolatile memory device 200 together with a reprogram command. For example, when the multi-page data is 4 pages, the memory controller 100 may transmit the command CMD and the address ADDR to the nonvolatile memory device 200 so that the multi-page data is reprogrammed in the QLC mode. .

S414 단계에서, 불휘발성 메모리 장치(200)는 재 프로그램 명령에 응답하여 멀티 페이지 데이터를 재 프로그램할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 재 프로그램 검증 전압을 기반으로 어드레스(ADDR)가 가리키는 메모리 셀들에 멀티 페이지 데이터를 프로그램할 수 있다. 재 프로그램을 위해 제공되는 어드레스(ADDR)는 프리 프로그램을 위해 제공되는 어드레스(ADDR)와 동일할 수 있다.In operation S414 , the nonvolatile memory device 200 may reprogram the multi-page data in response to the reprogram command. For example, the nonvolatile memory device 200 may program multi-page data in memory cells indicated by the address ADDR based on the reprogram verification voltage. The address ADDR provided for reprogramming may be the same as the address ADDR provided for preprogramming.

도 12는 도 5의 불휘발성 메모리 장치의 독출 동작을 설명하기 위한 도면이다. 도 12를 참조하면, 불휘발성 메모리 장치(200)는 낸드 스트링들(SS1 내지 SSn) 및 페이지 버퍼들(PB1 내지 PBn)을 포함할 수 있다. 낸드 스트링들(SS1 내지 SSn)은 비트 라인들(BL1 내지 BLn)을 통해 페이지 버퍼들(PB1 내지 PBn)에 각각 연결될 수 있다.FIG. 12 is a diagram for explaining a read operation of the nonvolatile memory device of FIG. 5 . Referring to FIG. 12 , the nonvolatile memory device 200 may include NAND strings SS1 to SSn and page buffers PB1 to PBn. The NAND strings SS1 to SSn may be respectively connected to the page buffers PB1 to PBn through the bit lines BL1 to BLn.

낸드 스트링들(SS1 내지 SSn)은 그라운드 선택 트랜지스터들(GST1 내지 GSTn), 메모리 셀들(MC10 내지 MCnm), 및 스트링 선택 트랜지스터들(SST1 내지 SSTn)을 포함할 수 있다. 그라운드 선택 트랜지스터들(GST1 내지 GSTn)은 공통 소스 라인(CSL) 및 그라운드 선택 라인(GSL)에 연결되고, 메모리 셀들(MC10 내지 MCnm)은 워드 라인들(WL0 내지 WLm)에 연결될 수 있다. 스트링 선택 트랜지스터들(SST1 내지 SSTn)은 스트링 선택 라인(SSL) 및 비트 라인들(BL1 내지 BLn)에 연결될 수 있다.The NAND strings SS1 to SSn may include ground select transistors GST1 to GSTn, memory cells MC10 to MCnm, and string select transistors SST1 to SSTn. The ground select transistors GST1 to GSTn may be connected to the common source line CSL and the ground select line GSL, and the memory cells MC10 to MCnm may be connected to the word lines WL0 to WLm. The string select transistors SST1 to SSTn may be connected to the string select line SSL and the bit lines BL1 to BLn.

메모리 셀들(MC10 내지 MCnm) 중 제1 워드 라인(WL1)에 연결된 메모리 셀들(MC11 내지 MCn1)은 프리 프로그램 상태일 수 있다. 도 8 내지 도 10을 참조하여 설명한 바와 같이, 메모리 컨트롤러(100)로부터의 프리 프로그램 명령에 따라 멀티 페이지 데이터가 메모리 셀들(MC11 내지 MCn1)에 프리 프로그램될 수 있다. 예를 들어, 도 7과 같이 멀티 페이지 데이터가 제1 내지 제n 멀티 비트 데이터(MD1 내지 MDn)를 포함하는 경우, 제1 멀티 비트 데이터(MD1)는 메모리 셀(MC11)에 프리 프로그램되고, 제2 멀티 비트 데이터(MD2)는 메모리 셀(MC21)에 프리 프로그램될 수 있다.Among the memory cells MC10 to MCnm, the memory cells MC11 to MCn1 connected to the first word line WL1 may be in a pre-programmed state. As described with reference to FIGS. 8 to 10 , multi-page data may be pre-programmed in the memory cells MC11 to MCn1 according to a pre-program command from the memory controller 100 . For example, as shown in FIG. 7 , when the multi-page data includes the first to n-th multi-bit data MD1 to MDn, the first multi-bit data MD1 is pre-programmed in the memory cell MC11, The 2-bit data MD2 may be pre-programmed in the memory cell MC21.

페이지 버퍼들(PB1 내지 PBn)은 제1 내지 제n 상태 그룹 데이터(SD1 내지 SDn)를 포함하는 상태 그룹 코드를 저장할 수 있다. 제1 내지 제n 상태 그룹 데이터(SD1 내지 SDn)는 프리 프로그램된 메모리 셀들(MC11 내지 MCn1)에 대응할 수 있다. 메모리 컨트롤러(100)로부터의 상태 그룹 코드 독출 명령 또는 메모리 컨트롤러(100)로부터의 상태 그룹 코드 전송에 따라 상태 그룹 코드가 페이지 버퍼들(PB1 내지 PBn)에 저장될 수 있다. 예를 들어, 제1 페이지 버퍼(PB1)는 메모리 셀(MC11)에 대응하는 제1 상태 그룹 데이터(SD1)를 저장하고, 제2 페이지 버퍼(PB2)는 메모리 셀(MC21)에 대응하는 제2 상태 그룹 데이터(SD2)를 저장할 수 있다.The page buffers PB1 to PBn may store state group codes including first to n-th state group data SD1 to SDn. The first to nth state group data SD1 to SDn may correspond to the preprogrammed memory cells MC11 to MCn1 . The status group code may be stored in the page buffers PB1 to PBn according to a status group code read command from the memory controller 100 or a status group code transmission from the memory controller 100 . For example, the first page buffer PB1 stores the first state group data SD1 corresponding to the memory cell MC11 , and the second page buffer PB2 includes the second page buffer PB2 corresponding to the memory cell MC21 . The state group data SD2 may be stored.

일반 독출 모드에서, 프리 프로그램된 메모리 셀들(MC11 내지 MCn1)에 대한 독출 동작 시, 제1 워드 라인(WL1)에 일반 독출 전압들이 인가되어 메모리 셀들(MC11~MCn1)로부터 멀티 페이지 데이터가 독출될 수 있다.In the normal read mode, during a read operation on the preprogrammed memory cells MC11 to MCn1 , normal read voltages are applied to the first word line WL1 to read multi-page data from the memory cells MC11 to MCn1 . have.

복구 독출 모드에서, 프리 프로그램된 메모리 셀들(MC11 내지 MCn1)에 대한 독출 동작 시, 제1 워드 라인(WL1)에 복구 독출 전압들이 인가되어 메모리 셀들(MC11 내지 MCn1)로부터 멀티 페이지 데이터가 독출될 수 있다. 복구 독출 전압들의 레벨들은 일반 독출 전압들의 레벨들과 서로 다를 수 있다. 예를 들어, 메모리 셀(MC11)에 프리 프로그램된 멀티 비트 데이터를 독출하기 위해, 제1 상태 그룹 데이터(SD1)에 대응하는 제1 복구 독출 전압들이 제1 워드 라인(WL1)에 인가될 수 있다. 메모리 셀(MC21)에 프리 프로그램된 멀티 비트 데이터를 독출하기 위해, 제2 상태 그룹 데이터(SD2)에 대응하는 제2 복구 독출 전압들이 제1 워드 라인(WL1)에 인가될 수 있다. 제1 상태 그룹 데이터(SD1)와 제2 상태 그룹 데이터(SD2)가 동일한 경우, 제1 복구 독출 전압들과 제2 복구 독출 전압들이 동일할 수 있다. 제1 상태 그룹 데이터(SD1)와 제2 상태 그룹 데이터(SD2)가 다른 경우, 제1 복구 독출 전압들과 제2 복구 독출 전압들이 서로 다를 수 있다. 즉, 상태 그룹 데이터(SD1 내지 SDn)가 가질 수 있는 값들(예를 들어, “0” 및 “1”) 각각에 대응하는 복구 독출 전압들이 제1 워드 라인(WL1)에 인가되어 메모리 셀들(MC11 내지 MCn1)로부터 멀티 페이지 데이터가 독출될 수 있다.In the recovery read mode, during a read operation on the preprogrammed memory cells MC11 to MCn1 , recovery read voltages are applied to the first word line WL1 to read multi-page data from the memory cells MC11 to MCn1 . have. Levels of the recovery read voltages may be different from levels of normal read voltages. For example, in order to read multi-bit data preprogrammed in the memory cell MC11 , first recovery read voltages corresponding to the first state group data SD1 may be applied to the first word line WL1 . . In order to read the multi-bit data preprogrammed in the memory cell MC21 , second recovery read voltages corresponding to the second state group data SD2 may be applied to the first word line WL1 . When the first state group data SD1 and the second state group data SD2 are the same, the first recovery read voltages and the second recovery read voltages may be the same. When the first state group data SD1 and the second state group data SD2 are different from each other, the first recovery read voltages and the second recovery read voltages may be different from each other. That is, recovery read voltages corresponding to respective values (eg, “0” and “1”) that the state group data SD1 to SDn may have are applied to the first word line WL1 to form the memory cells MC11 . to MCn1), multi-page data may be read.

도 13은 본 발명의 실시 예에 따른 페이지 버퍼를 보여주는 블록도이다. 도 13을 참조하면, 페이지 버퍼(221)는 센싱 노드(SO)에 연결된 센스 래치(201), 포스(force) 래치(202), 상위 비트 래치(예를 들어, M-래치)(203), 중간 비트 래치(예를 들어, U-래치)(204), 하위 비트 래치(예를 들어, L-래치)(205), 및 캐시 래치(206)를 포함할 수 있다. 또한, 페이지 버퍼(221)는 비트 라인(BL)과 센싱 노드(SO) 사이에 연결된 제1 트랜지스터(TR1)를 더 포함할 수 있다.13 is a block diagram illustrating a page buffer according to an embodiment of the present invention. Referring to FIG. 13 , the page buffer 221 includes a sense latch 201, a force latch 202, an upper bit latch (eg, M-latch) 203 connected to the sensing node SO. a middle bit latch (eg, U-latch) 204 , a low-bit latch (eg, L-latch) 205 , and a cache latch 206 . Also, the page buffer 221 may further include a first transistor TR1 connected between the bit line BL and the sensing node SO.

센스 래치(201)는 독출 동작 또는 프로그램 검증 동작 시, 메모리 셀에 저장된 데이터 또는 메모리 셀의 문턱 전압의 센싱 결과를 저장할 수 있다. 또한, 센스 래치(201)는 프로그램 동작 시, 비트 라인(BL)에 프로그램 비트 라인 전압 또는 프로그램 금지 전압을 인가하는 데 활용될 수 있다. The sense latch 201 may store data stored in a memory cell or a sensing result of a threshold voltage of the memory cell during a read operation or a program verify operation. Also, the sense latch 201 may be used to apply a program bit line voltage or a program prohibit voltage to the bit line BL during a program operation.

포스 래치(202)는 프로그램 동작 시 문턱 전압 산포를 개선하기 위해 활용될 수 있다. 프로그램 동작 중 메모리 셀의 문턱 전압에 따라 포스 래치(202)에 저장된 값이 변경될 수 있고, 프로그램 동작 중 포스 래치(202)에 저장된 값에 따라 비트 라인(BL)에 인가되는 전압이 가변될 수 있다. The force latch 202 may be utilized to improve threshold voltage distribution during a program operation. During the program operation, the value stored in the force latch 202 may be changed according to the threshold voltage of the memory cell, and the voltage applied to the bit line BL may vary according to the value stored in the force latch 202 during the program operation. have.

상위 비트 래치(203), 중간 비트 래치(204), 하위 비트 래치(205), 및 캐시 래치(206)는 프로그램 동작 시 외부에서 입력된 데이터를 저장하기 위해 활용될 수 있고, 데이터 래치라고 지칭될 수 있다. 데이터 래치의 개수는 실시예에 따라 다양하게 변경될 수 있다. 예를 들어, 하나의 메모리 셀에 4 비트 데이터를 프로그램 하는 경우, 4 비트 데이터는 상위 비트 래치(203), 중간 비트 래치(204), 하위 비트 래치(205), 및 캐시 래치(206)에 각각 저장될 수 있다. 예를 들어, 하나의 메모리 셀에 5 비트 데이터를 프로그램 하는 경우, 페이지 버퍼(221)는 제2 중간 비트 래치를 더 포함할 수 있고, 5 비트 데이터는 상위 비트 래치(203), 중간 비트 래치(204), 제2 중간 비트 래치, 하위 비트 래치(205), 및 캐시 래치(206)에 각각 저장될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 페이지 버퍼(221)는 2개 이상의 데이터 래치를 더 포함할 수 있다. 프로그램이 완료될 때까지, 상위 비트 래치(203), 중간 비트 래치(204), 하위 비트 래치(205), 및 캐시 래치(206)는 저장된 데이터를 유지할 수 있다. 또한, 캐시 래치(206)는 독출 동작 시 메모리 셀로부터 읽어낸 데이터를 센스 래치(201)로부터 전송 받아 데이터 출력 라인(DOUT)을 통해 외부로 출력할 수 있다.The upper bit latch 203 , the middle bit latch 204 , the lower bit latch 205 , and the cache latch 206 may be utilized to store externally input data during a program operation, and will be referred to as a data latch. can The number of data latches may be variously changed according to an embodiment. For example, when 4-bit data is programmed into one memory cell, 4-bit data is stored in the upper bit latch 203, the middle bit latch 204, the lower bit latch 205, and the cache latch 206, respectively. can be saved. For example, when 5-bit data is programmed into one memory cell, the page buffer 221 may further include a second intermediate bit latch, and the 5-bit data includes the upper bit latch 203 and the middle bit latch ( 204 ), a second middle bit latch, a lower bit latch 205 , and a cache latch 206 , respectively. However, the present invention is not limited thereto, and the page buffer 221 may further include two or more data latches. Until the program is complete, the high bit latch 203 , the middle bit latch 204 , the low bit latch 205 , and the cache latch 206 may hold the stored data. Also, the cache latch 206 may receive data read from the memory cell during a read operation from the sense latch 201 and output the data to the outside through the data output line DOUT.

예시적인 실시 예에서, 데이터 래치들(203 내지 206) 중 적어도 하나의 래치는 상태 그룹 데이터를 일시적으로 저장할 수 있다. 또는, 페이지 버퍼(221)는 상태 그룹 데이터를 일시적으로 저장하는 적어도 하나의 상태 그룹 데이터 래치를 더 포함할 수 있다. In an exemplary embodiment, at least one of the data latches 203 to 206 may temporarily store state group data. Alternatively, the page buffer 221 may further include at least one state group data latch for temporarily storing the state group data.

제1 트랜지스터(TR1)는 비트 라인(BL)과 센싱 노드(SO) 사이의 연결을 제어하는 비트 라인 셧-오프(shut-off) 신호(BLSHF)에 의해 구동되며, 이에 따라, "비트 라인 셧-오프 트랜지스터"라고 지칭될 수 있다. 예를 들어, 메모리 셀로부터 데이터가 독출되는 경우, 제1 트랜지스터(TR1)는 턴-온(turn-on)되어 비트 라인(BL)과 센스 래치(201)를 전기적으로 연결시켜 준다. 또한, 센스 래치(201)에 저장된 데이터를 캐시 래치(206)로 전송하거나, 캐시 래치(206)에 저장된 데이터를 포스 래치(202)로 전송할 때 제1 트랜지스터(TR1)는 턴-오프(turn-off)될 수 있다.The first transistor TR1 is driven by a bit line shut-off signal BLSHF that controls the connection between the bit line BL and the sensing node SO, and thus, the “bit line shut -off transistor". For example, when data is read from the memory cell, the first transistor TR1 is turned on to electrically connect the bit line BL and the sense latch 201 . In addition, when data stored in the sense latch 201 is transferred to the cache latch 206 or data stored in the cache latch 206 is transferred to the force latch 202 , the first transistor TR1 is turned off (turn-off). off) can be turned off.

도 14는 본 발명의 실시 예에 따른 일반 독출 모드 및 복구 독출 모드에서의 독출 전압들의 예시를 나타내는 그래프이다. 도 12 및 도 14를 참조하면, 프리 프로그램된 메모리 셀들(MC11 내지 MCn1) 각각은 멀티 비트 데이터 값에 따라 복수의 문턱 전압 분포들(E, P1 내지 P15) 중 하나에 대응할 수 있다. 예를 들어, 멀티 비트 데이터 '1111'이 메모리 셀(MC11)에 프리 프로그램되는 경우, 메모리 셀(MC11)은 소거 상태(E)일 수 있다. 멀티 비트 데이터 '1110', '1010', '1000', '1001', '0001', '0000', '0010', '0110', '0100', '1100', '1101', '0101', '0111', '0011', '1011' 중 하나가 메모리 셀(MC11)에 프리 프로그램되는 경우, 메모리 셀(MC11)은 제1 내지 제15 프로그램 상태들(P1 내지 P15) 중 하나일 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 문턱 전압 분포들(E, P1 내지 P15)에 대응하는 멀티 비트 데이터 값들은 변경될 수 있다.14 is a graph illustrating examples of read voltages in a normal read mode and a recovery read mode according to an embodiment of the present invention. 12 and 14 , each of the preprogrammed memory cells MC11 to MCn1 may correspond to one of a plurality of threshold voltage distributions E and P1 to P15 according to a multi-bit data value. For example, when the multi-bit data '1111' is pre-programmed in the memory cell MC11, the memory cell MC11 may be in the erase state (E). Multi-bit data '1110', '1010', '1000', '1001', '0001', '0000', '0010', '0110', '0100', '1100', '1101', '0101' When one of , '0111', '0011', and '1011' is pre-programmed in the memory cell MC11, the memory cell MC11 may be in one of the first to fifteenth program states P1 to P15. . However, the present invention is not limited thereto, and multi-bit data values corresponding to the threshold voltage distributions E, P1 to P15 may be changed.

프리 프로그램된 메모리 셀들(MC11 내지 MCn1) 각각은 멀티 비트 데이터 값에 따라 제1 상태 그룹(GROUP1)의 문턱 전압 분포들(E, P2, P4, P6, P8, P10, P12, P14) 중 하나에 대응하거나, 또는 제2 상태 그룹(GROUP2)의 문턱 전압 분포들(P1, P3, P5, P7, P9, P11, P13, P15) 중 하나에 대응할 수 있다. 예를 들어, 멀티 비트 데이터 '1111', '1010', '1001', '0000', '0110', '1100', '0101', '0011' 중 하나가 프리 프로그램된 메모리 셀(MC11)은 제1 상태 그룹(GROUP1)에 대응하고, 멀티 비트 데이터 '1110', '1000', '0001', '0010', '0100', '1101', '0111', '1011' 중 하나가 프리 프로그램된 메모리 셀(MC11)은 제2 상태 그룹(GROUP2)에 대응할 수 있다. 예를 들어, 제1 상태 그룹(GROUP1)은 상태 그룹 데이터 0에 대응하고, 제2 상태 그룹(GROUP2)은 상태 그룹 데이터 1에 대응할 수 있다.Each of the preprogrammed memory cells MC11 to MCn1 is applied to one of the threshold voltage distributions E, P2, P4, P6, P8, P10, P12, P14 of the first state group GROUP1 according to the multi-bit data value. It may correspond to one of the threshold voltage distributions P1 , P3 , P5 , P7 , P9 , P11 , P13 , and P15 of the second state group GROUP2 . For example, the memory cell MC11 in which one of multi-bit data '1111', '1010', '1001', '0000', '0110', '1100', '0101', and '0011' is pre-programmed is Corresponding to the first state group GROUP1, one of multi-bit data '1110', '1000', '0001', '0010', '0100', '1101', '0111', and '1011' is pre-programmed The memory cell MC11 may correspond to the second state group GROUP2 . For example, the first state group GROUP1 may correspond to state group data 0 , and the second state group GROUP2 may correspond to state group data 1 .

일반 독출 모드에서, 프리 프로그램된 메모리 셀들(MC11 내지 MCn1)의 멀티 페이지 데이터를 독출하기 위해 제1 내지 제15 일반 독출 전압들(V1n 내지 V15n)이 이용될 수 있다. 예를 들어, 도 14에 도시된 바와 같이, 제1 내지 제15 일반 독출 전압들(V1n 내지 V15n)은 재 프로그램을 통해 프로그램 동작이 완료된 메모리 셀들로부터 멀티 페이지 데이터를 독출하기 위해 이용되는 전압들일 수 있다. 제1 워드 라인(WL1)으로 제1 내지 제15 일반 독출 전압들(V1n 내지 V15n)이 인가됨으로써 프리 프로그램된 메모리 셀들(MC11 내지 MCn1)로부터 멀티 페이지 데이터가 독출될 수 있다. 일반 독출 전압들(V1n 내지 V15n)을 기반으로 멀티 페이지 데이터가 독출되는 경우, 프리 프로그램된 메모리 셀들(MC11 내지 MCn1) 각각의 상태가 정확하게 판별되지 못할 수 있고, 독출된 멀티 비트 데이터 값이 프리 프로그램된 메모리 셀에 저장된 데이터 값과 달라질 가능성이 커질 수 있다. 즉, 독출된 멀티 비트 데이터의 신뢰성이 감소될 수 있다. 이에 따라, 일반 독출 모드로 독출된 멀티 페이지 데이터를 기반으로 재 프로그램이 수행되는 경우, 프로그램된 멀티 페이지 데이터의 신뢰성이 감소될 수 있다.In the normal read mode, first to fifteenth normal read voltages V1n to V15n may be used to read multi-page data of the preprogrammed memory cells MC11 to MCn1 . For example, as shown in FIG. 14 , the first to fifteenth general read voltages V1n to V15n may be voltages used to read multi-page data from memory cells in which a program operation is completed through reprogramming. have. Multi-page data may be read from the preprogrammed memory cells MC11 to MCn1 by applying the first to fifteenth normal read voltages V1n to V15n to the first word line WL1 . When multi-page data is read based on the general read voltages V1n to V15n, the state of each of the preprogrammed memory cells MC11 to MCn1 may not be accurately determined, and the read multi-bit data value may be preprogrammed. The possibility of being different from the data value stored in the memory cell may increase. That is, the reliability of the read multi-bit data may be reduced. Accordingly, when reprogramming is performed based on the multi-page data read in the normal read mode, the reliability of the programmed multi-page data may be reduced.

복구 독출 모드에서, 프리 프로그램된 메모리 셀들(MC11 내지 MCn1)의 멀티 페이지 데이터를 독출하기 위해 제1 내지 제14 복구 독출 전압들(V1 내지 V14)이 이용될 수 있다. 구체적으로, 프리 프로그램된 메모리 셀들(MC11 내지 MCn1) 중 제1 상태 그룹(GROUP1)에 대응하는 메모리 셀들로부터 멀티 페이지 데이터를 독출하기 위해 제1 복구 독출 전압들(V1, V3, V5, V7, V9, V11, V13)이 이용될 수 있고, 프리 프로그램된 메모리 셀들(MC11 내지 MCn1) 중 제2 상태 그룹(GROUP2)에 대응하는 메모리 셀들로부터 멀티 페이지 데이터를 독출하기 위해 제2 복구 독출 전압들(V2, V4, V6, V8, V10, V12, V14)이 이용될 수 있다. 예를 들어, 메모리 셀(MC11)에 멀티 비트 데이터 '1111', '1010', '1001', '0000', '0110', '1100', '0101', '0011' 중 하나가 프리 프로그램된 경우, 제1 복구 독출 전압들(V1, V3, V5, V7, V9, V11, V13)을 기반으로 메모리 셀(MC11)로부터 멀티 비트 데이터가 독출될 수 있다. 예를 들어, 메모리 셀(MC11)에 멀티 비트 데이터 '1110', '1000', '0001', '0010', '0100', '1101', '0111', '1011' 중 하나가 프리 프로그램된 경우, 제2 복구 독출 전압들(V2, V4, V6, V8, V10, V12, V14)을 기반으로 메모리 셀(MC11)로부터 멀티 비트 데이터가 독출될 수 있다.In the recovery read mode, first to fourteenth recovery read voltages V1 to V14 may be used to read multi-page data of the preprogrammed memory cells MC11 to MCn1 . Specifically, the first recovery read voltages V1, V3, V5, V7, and V9 to read multi-page data from memory cells corresponding to the first state group GROUP1 among the preprogrammed memory cells MC11 to MCn1 . , V11 and V13 may be used, and second recovery read voltages V2 to read multi-page data from memory cells corresponding to the second state group GROUP2 among the preprogrammed memory cells MC11 to MCn1 . , V4, V6, V8, V10, V12, V14) may be used. For example, one of multi-bit data '1111', '1010', '1001', '0000', '0110', '1100', '0101', and '0011' is pre-programmed in the memory cell MC11. In this case, multi-bit data may be read from the memory cell MC11 based on the first recovery read voltages V1 , V3 , V5 , V7 , V9 , V11 , and V13 . For example, one of multi-bit data '1110', '1000', '0001', '0010', '0100', '1101', '0111', and '1011' is pre-programmed in the memory cell MC11. In this case, multi-bit data may be read from the memory cell MC11 based on the second recovery read voltages V2, V4, V6, V8, V10, V12, and V14.

여기서, 제1 상태 그룹(GROUP1)에 대응하는 제1 복구 독출 전압들(V1, V3, V5, V7, V9, V11, V13)과 제2 상태 그룹(GROUP2)에 대응하는 제2 복구 독출 전압들(V2, V4, V6, V8, V10, V12, V14)은 서로 다를 수 있다. 또한, 복구 독출 모드에서 이용되는 복구 독출 전압들(V1 내지 V14)과 일반 독출 모드에서 이용되는 일반 독출 전압들(V1n 내지 V15n)은 서로 다를 수 있다.Here, the first recovery read voltages V1 , V3 , V5 , V7 , V9 , V11 , and V13 corresponding to the first state group GROUP1 and the second recovery read voltages corresponding to the second state group GROUP2 are (V2, V4, V6, V8, V10, V12, V14) may be different from each other. Also, the recovery read voltages V1 to V14 used in the recovery read mode may be different from the normal read voltages V1n to V15n used in the normal read mode.

상술한 바와 같이, 복구 독출 모드에서, 일반 독출 전압들(V1n 내지 V15n)과 서로 다른 복구 독출 전압들(V1 내지 V14)이 이용될 수 있다. 이 경우, 프리 프로그램된 메모리 셀들(MC11 내지 MCn1) 각각의 상태가 상대적으로 정확하게 판별될 수 있고, 독출된 멀티 비트 데이터 값과 프리 프로그램된 메모리 셀에 저장된 데이터 값이 일치할 가능성이 커질 수 있다. 즉, 독출된 멀티 비트 데이터의 신뢰성이 향상될 수 있다. 이에 따라, 복구 독출 모드로 독출된 멀티 페이지 데이터를 기반으로 재 프로그램이 수행되는 경우, 프로그램된 멀티 페이지 데이터의 신뢰성이 향상될 수 있다.As described above, in the recovery read mode, recovery read voltages V1 to V14 different from the normal read voltages V1n to V15n may be used. In this case, the state of each of the preprogrammed memory cells MC11 to MCn1 may be determined relatively accurately, and the possibility that the read multi-bit data value and the data value stored in the preprogrammed memory cell match may increase. That is, the reliability of the read multi-bit data may be improved. Accordingly, when reprogramming is performed based on the multi-page data read in the recovery read mode, the reliability of the programmed multi-page data may be improved.

도 15는 본 발명의 실시 예에 따른 일반 독출 모드에서 독출 전압들의 예시를 보여주는 테이블이다. 도 12 내지 도 15를 참조하면, 일반 독출 모드에서 프리 프로그램된 메모리 셀들(MC11 내지 MCn1)로부터 멀티 페이지 데이터가 독출되는 경우, 일반 독출 전압 테이블(NRVT)을 기반으로 독출 전압들이 제1 워드 라인(WL1)으로 인가될 수 있다. 이 경우, 페이지 별로 인가되는 독출 전압들이 달라질 수 있다.15 is a table showing examples of read voltages in a normal read mode according to an embodiment of the present invention. 12 to 15 , when multi-page data is read from the preprogrammed memory cells MC11 to MCn1 in the normal read mode, the read voltages are set to the first word line based on the normal read voltage table NRVT. WL1) can be applied. In this case, read voltages applied for each page may vary.

예를 들어, 도 14에 도시된 바와 같이, 문턱 전압 분포들과 멀티 비트 데이터 값들이 대응하는 경우, 멀티 페이지 데이터의 제1 페이지 데이터를 독출하기 위해 제1 워드 라인(WL1)으로 일반 독출 전압들(V1n, V4n, V6n, V11n)이 인가될 수 있다. 멀티 페이지 데이터의 제2 페이지 데이터를 독출하기 위해 제1 워드 라인(WL1)으로 일반 독출 전압들(V3n, V7n, V9n, V13n)이 인가될 수 있다. 멀티 페이지 데이터의 제3 페이지 데이터를 독출하기 위해 제1 워드 라인(WL1)으로 일반 독출 전압들(V2n, V8n, V14n)이 인가될 수 있다. 멀티 페이지 데이터의 제4 페이지 데이터를 독출하기 위해 제1 워드 라인(WL1)으로 일반 독출 전압들(V5n, V10n, V12n, V15n)이 인가될 수 있다. 이 경우, 낮은 전압 레벨의 독출 전압부터 순차적으로 인가될 수 있으나, 독출 전압들이 인가되는 순서는 다양하게 변경될 수 있다.For example, as shown in FIG. 14 , when threshold voltage distributions and multi-bit data values correspond to each other, normal read voltages are applied to the first word line WL1 to read the first page data of the multi-page data. (V1n, V4n, V6n, V11n) may be applied. Normal read voltages V3n, V7n, V9n, and V13n may be applied to the first word line WL1 to read the second page data of the multi-page data. Normal read voltages V2n, V8n, and V14n may be applied to the first word line WL1 to read the third page data of the multi-page data. Normal read voltages V5n, V10n, V12n, and V15n may be applied to the first word line WL1 to read the fourth page data of the multi-page data. In this case, a read voltage of a low voltage level may be sequentially applied, but the order in which the read voltages are applied may be variously changed.

도 16은 본 발명의 실시 예에 따른 복구 독출 모드에서 독출 전압들의 예시를 보여주는 테이블이다. 도 12 내지 도 16을 참조하면, 복구 독출 모드에서 프리 프로그램된 메모리 셀들(MC11 내지 MCn1)로부터 멀티 페이지 데이터가 독출되는 경우, 복구 독출 전압 테이블(RRVT)을 기반으로 독출 전압들이 제1 워드 라인(WL1)으로 인가될 수 있다. 이 경우, 페이지 별로 인가되는 독출 전압들이 달라질 수 있다.16 is a table showing examples of read voltages in a recovery read mode according to an embodiment of the present invention. 12 to 16 , when multi-page data is read from the preprogrammed memory cells MC11 to MCn1 in the recovery read mode, the read voltages are set to the first word line based on the recovery read voltage table RRVT. WL1) can be applied. In this case, read voltages applied for each page may vary.

예를 들어, 도 14에 도시된 바와 같이, 문턱 전압 분포들과 멀티 비트 데이터 값들이 대응하는 경우, 멀티 페이지 데이터의 제1 페이지 데이터를 독출하기 위해 제1 워드 라인(WL1)으로 제1 상태 그룹(GROUP1)에 대응하는 복구 독출 전압들(V1 V3, V5, V11) 및 제2 상태 그룹(GROUP2)에 대응하는 복구 독출 전압들(V4, V6, V10)이 인가될 수 있다. 복구 독출 전압들(V1 V3, V5, V11)에 의해 제1 상태 그룹(GROUP1)에 대응하는 메모리 셀들로부터 제1 페이지 데이터가 독출되고, 복구 독출 전압들(V4, V6, V10)에 의해 제2 상태 그룹(GROUP2)에 대응하는 메모리 셀들로부터 제1 페이지 데이터가 독출될 수 있다. 멀티 페이지 데이터의 제2 페이지 데이터를 독출하기 위해 제1 워드 라인(WL1)으로 제1 상태 그룹(GROUP1)에 대응하는 복구 독출 전압들(V3, V7, V9, V13) 및 제2 상태 그룹(GROUP2)에 대응하는 복구 독출 전압들(V2, V6, V8, V12)이 인가될 수 있다. 복구 독출 전압들(V3, V7, V9, V13)에 의해 제1 상태 그룹(GROUP1)에 대응하는 메모리 셀들로부터 제2 페이지 데이터가 독출되고, 복구 독출 전압들(V2, V6, V8, V12)에 의해 제2 상태 그룹(GROUP2)에 대응하는 메모리 셀들로부터 제2 페이지 데이터가 독출될 수 있다. 이와 마찬가지로, 멀티 페이지 데이터의 제3 페이지 데이터를 독출하기 위해 제1 워드 라인(WL1)으로 제1 상태 그룹(GROUP1)에 대응하는 복구 독출 전압들(V1, V7, V13) 및 제2 상태 그룹(GROUP2)에 대응하는 복구 독출 전압들(V2, V8, V14)이 인가될 수 있고, 제4 페이지 데이터를 독출하기 위해 제1 워드 라인(WL1)으로 제1 상태 그룹(GROUP1)에 대응하는 복구 독출 전압들(V5, V9, V11) 및 제2 상태 그룹(GROUP2)에 대응하는 복구 독출 전압들(V4, V10, V12, V14)이 인가될 수 있다. 이 경우, 낮은 전압 레벨의 독출 전압부터 순차적으로 인가될 수 있으나, 독출 전압들이 인가되는 순서는 다양하게 변경될 수 있다.For example, as shown in FIG. 14 , when threshold voltage distributions and multi-bit data values correspond to each other, the first state group is transferred to the first word line WL1 to read the first page data of the multi-page data. The recovery read voltages V1 V3, V5, and V11 corresponding to GROUP1 and the recovery read voltages V4, V6, and V10 corresponding to the second state group GROUP2 may be applied. First page data is read from memory cells corresponding to the first state group GROUP1 by the recovery read voltages V1 V3, V5, and V11, and the second page data is read by the recovery read voltages V4, V6, and V10 First page data may be read from memory cells corresponding to the state group GROUP2 . The recovery read voltages V3, V7, V9, and V13 corresponding to the first state group GROUP1 and the second state group GROUP2 are the first word line WL1 to read the second page data of the multi-page data. ) corresponding recovery read voltages V2, V6, V8, and V12 may be applied. Second page data is read from memory cells corresponding to the first state group GROUP1 by the recovery read voltages V3, V7, V9, and V13, and is applied to the recovery read voltages V2, V6, V8, and V12. Accordingly, second page data may be read from memory cells corresponding to the second state group GROUP2 . Likewise, in order to read the third page data of the multi-page data, the recovery read voltages V1, V7, and V13 corresponding to the first state group GROUP1 and the second state group (V1, V7, V13) to the first word line WL1 Recovery read voltages V2 , V8 , and V14 corresponding to GROUP2 may be applied, and recovery readout corresponding to the first state group GROUP1 may be applied to the first word line WL1 to read fourth page data. The voltages V5 , V9 , and V11 and recovery read voltages V4 , V10 , V12 , and V14 corresponding to the second state group GROUP2 may be applied. In this case, a read voltage of a low voltage level may be sequentially applied, but the order in which the read voltages are applied may be variously changed.

이와 같이, 복구 독출 모드에서, 하나의 페이지를 독출하기 위해 상태 그룹들 각각에 대응하는 복구 독출 전압들이 제1 워드 라인(WL1)으로 인가될 수 있다.As such, in the recovery read mode, recovery read voltages corresponding to each of the state groups may be applied to the first word line WL1 to read one page.

예시적인 실시 예에서, 페이지 버퍼들(PB1 내지 PBn) 각각은 저장된 상태 그룹 데이터에 대응하는 복구 독출 전압들에 의해 감지된 데이터만을 외부로 출력할 수 있다. 예를 들어, 제1 상태 그룹(GROUP1)에 대응하는 복구 독출 전압들에 의해 메모리 셀(MC11)로부터 제1 데이터가 감지되고, 제2 상태 그룹(GROUP2)에 대응하는 복구 독출 전압들에 의해 메모리 셀(MC11)로부터 제2 데이터가 감지될 수 있다. 감지된 제1 데이터 및 제2 데이터는 도 13의 래치들(201 내지 205)에 저장될 수 있다. 페이지 버퍼(PB1)는 래치들(201 내지 205) 중 적어도 하나에 저장된 상태 그룹 데이터를 기반으로 제1 및 제2 데이터 중 하나만을 캐시 래치(206)를 통해 외부로 출력할 수 있다.In an exemplary embodiment, each of the page buffers PB1 to PBn may output only data sensed by recovery read voltages corresponding to the stored state group data to the outside. For example, first data is sensed from the memory cell MC11 by the recovery read voltages corresponding to the first state group GROUP1 , and the memory is determined by the recovery read voltages corresponding to the second state group GROUP2 . Second data may be sensed from the cell MC11 . The sensed first data and second data may be stored in the latches 201 to 205 of FIG. 13 . The page buffer PB1 may output only one of the first and second data to the outside through the cache latch 206 based on the state group data stored in at least one of the latches 201 to 205 .

예시적인 실시 예에서, 페이지 버퍼들(PB1 내지 PBn) 각각은 모든 상태 그룹 데이터에 대응하는 복구 독출 전압들에 의해 감지된 데이터를 외부로 출력할 수 있다. 예를 들어, 제1 상태 그룹(GROUP1)에 대응하는 복구 독출 전압들에 의해 메모리 셀(MC11)로부터 제1 데이터가 감지되고, 제2 상태 그룹(GROUP2)에 대응하는 복구 독출 전압들에 의해 메모리 셀(MC11)로부터 제2 데이터가 감지될 수 있다. 감지된 제1 데이터 및 제2 데이터는 도 13의 래치들(201 내지 205)에 저장될 수 있다. 페이지 버퍼(PB1)는 제1 데이터 및 제2 데이터를 캐시 래치(206)를 통해 모두 외부로 출력할 수 있다. 이 경우, 메모리 컨트롤러(100)가 내부의 상태 그룹 데이터에 기초하여 불휘발성 메모리 장치(200)로부터 제공되는 제1 데이터 및 제2 데이터 중 하나를 선택할 수 있다.In an exemplary embodiment, each of the page buffers PB1 to PBn may output data sensed by recovery read voltages corresponding to all state group data to the outside. For example, first data is sensed from the memory cell MC11 by the recovery read voltages corresponding to the first state group GROUP1 , and the memory is determined by the recovery read voltages corresponding to the second state group GROUP2 . Second data may be sensed from the cell MC11 . The sensed first data and second data may be stored in the latches 201 to 205 of FIG. 13 . The page buffer PB1 may output both the first data and the second data to the outside through the cache latch 206 . In this case, the memory controller 100 may select one of the first data and the second data provided from the nonvolatile memory device 200 based on the internal state group data.

예시적인 실시 예에서, 복구 독출 모드에서 멀티 페이지 데이터를 독출하기 위해 페이지 별로 커맨드(CMD) 및 어드레스(ADDR)가 제공될 수 있다. 예를 들어, 4 페이지의 멀티 페이지 데이터를 모두 독출하기 위해 4개의 커맨드(CMD)가 제공될 수 있다. 이 경우, 하나의 커맨드(CMD)에 따라 인가되는 복구 독출 전압 레벨들의 개수는 일반 독출 모드에서 하나의 커맨드(CMD)에 따라 인가되는 일반 독출 전압 레벨들의 개수보다 클 수 있다. 예를 들어, 복구 독출 모드에서 제1 페이지 데이터를 독출하기 위한 커맨드(CMD)에 따라 제1 상태 그룹(GROUP1)에 대응하는 복구 독출 전압들(V1, V3, V5, V11) 및 제2 상태 그룹(GROUP2)에 대응하는 복구 독출 전압들(V4, V6, V10)이 인가될 수 있다. 일반 독출 모드에서 제1 페이지 데이터를 독출하기 위한 커맨드(CMD)에 따라 일반 독출 전압들(V1n, V4n, V6n, V11n)이 인가될 수 있다. 이 경우, 하나의 커맨드(CMD)에 따라 인가되는 복구 독출 전압 레벨들의 개수는 7개이고, 일반 독출 모드에서 하나의 커맨드(CMD)에 따라 인가되는 일반 독출 전압 레벨들의 개수는 4개일 수 있다.In an exemplary embodiment, in order to read multi-page data in the recovery read mode, a command CMD and an address ADDR may be provided for each page. For example, four commands CMD may be provided to read all multi-page data of four pages. In this case, the number of recovery read voltage levels applied according to one command CMD may be greater than the number of normal read voltage levels applied according to one command CMD in the normal read mode. For example, in the recovery read mode, the recovery read voltages V1 , V3 , V5 , and V11 corresponding to the first state group GROUP1 and the second state group according to the command CMD for reading the first page data Recovery read voltages V4 , V6 , and V10 corresponding to GROUP2 may be applied. In the normal read mode, the normal read voltages V1n, V4n, V6n, and V11n may be applied according to the command CMD for reading the first page data. In this case, the number of recovery read voltage levels applied according to one command CMD may be seven, and the number of normal read voltage levels applied according to one command CMD in the normal read mode may be four.

도 17a및 도 17b는 본 발명의 실시 예들에 따라 복구 독출 전압을 조절하는 예시를 나타낸다. 도 17a를 참조하면, 낸드 스트링(211)은 제0 내지 제m 메모리 셀들(MC0 내지 MCm)을 포함할 수 있다. 메모리 셀들(MC0 내지 MCm)에 대한 프로그램 동작 시, 제m 메모리 셀(MCm)부터 제0 메모리 셀(MC0)까지 순차적으로 프로그램될 수 있다. 즉, 스트링 선택 트랜지스터(SST)로부터 가깝게 위치하는 메모리 셀이 먼저 프로그램되고, 스트링 선택 트랜지스터(SST)로부터 멀게 위치하는 메모리 셀이 나중에 프로그램될 수 있다. 예를 들어, 제1 메모리 셀(MC1)이 프리 프로그램된 후 제0 메모리 셀(MC0)이 프리 프로그램될 수 있다.17A and 17B show examples of adjusting a recovery read voltage according to embodiments of the present invention. Referring to FIG. 17A , the NAND string 211 may include 0th to mth memory cells MC0 to MCm. During a program operation on the memory cells MC0 to MCm, the mth memory cell MCm to the 0th memory cell MC0 may be sequentially programmed. That is, a memory cell located close to the string select transistor SST may be programmed first, and a memory cell located far from the string select transistor SST may be programmed later. For example, after the first memory cell MC1 is preprogrammed, the zeroth memory cell MC0 may be preprogrammed.

낸드 스트링(211)의 제1 워드 라인(WL1)에 연결된 제1 메모리 셀(MC1)이 프리 프로그램된 후 SPO로부터 전원이 복구되는 경우, 복구 독출 모드에서 복구 독출 전압들을 기반으로 제1 메모리 셀(MC1)로부터 멀티 비트 데이터가 독출될 수 있다. 이 경우, 제1 메모리 셀(MC1)과 인접한 제0 메모리 셀(MC0)의 상태에 따라 복구 독출 전압들이 조절될 수 있다. 예를 들어, 제0 메모리 셀(MC0)이 프리 프로그램 상태인 경우, 제1 워드 라인(WL1)으로 인가되는 복구 독출 전압들이 증가되거나, 또는 감소될 수 있다. 이에 따라, 조절된 복구 독출 전압들이 제1 워드 라인(WL1)에 인가되어 제1 메모리 셀(MC1)로부터 멀티 비트 데이터가 독출될 수 있다.When power is restored from the SPO after the first memory cell MC1 connected to the first word line WL1 of the NAND string 211 is preprogrammed, in the recovery read mode, the first memory cell MC1 ( Multi-bit data may be read from MC1). In this case, the recovery read voltages may be adjusted according to the state of the first memory cell MC1 and the adjacent zeroth memory cell MC0 . For example, when the zeroth memory cell MC0 is in the preprogram state, the recovery read voltages applied to the first word line WL1 may be increased or decreased. Accordingly, the adjusted recovery read voltages may be applied to the first word line WL1 to read multi-bit data from the first memory cell MC1 .

도 17b를 참조하면, 메모리 셀들(MC0 내지 MCm)에 대한 프로그램 동작 시, 제0 메모리 셀(MC0)부터 제m 메모리 셀(MCm)까지 순차적으로 프로그램될 수 있다. 즉, 그라운드 선택 트랜지스터(GST)로부터 가깝게 위치하는 메모리 셀이 먼저 프로그램되고, 그라운드 선택 트랜지스터(GST)로부터 멀게 위치하는 메모리 셀이 나중에 프로그램될 수 있다. 예를 들어, 제1 메모리 셀(MC1)이 프리 프로그램된 후 제2 메모리 셀(MC2)이 프리 프로그램될 수 있다.Referring to FIG. 17B , during a program operation on the memory cells MC0 to MCm, the zeroth memory cell MC0 to the mth memory cell MCm may be sequentially programmed. That is, a memory cell located close to the ground select transistor GST may be programmed first, and a memory cell located far from the ground select transistor GST may be programmed later. For example, after the first memory cell MC1 is preprogrammed, the second memory cell MC2 may be preprogrammed.

낸드 스트링(211)의 제1 워드 라인(WL1)에 연결된 제1 메모리 셀(MC1)이 프리 프로그램된 후 SPO로부터 전원이 복구되는 경우, 복구 독출 모드에서 복구 독출 전압들을 기반으로 제1 메모리 셀(MC1)로부터 멀티 비트 데이터가 독출될 수 있다. 이 경우, 제1 메모리 셀(MC1)과 인접한 제2 메모리 셀(MC2)의 상태에 따라 복구 독출 전압들이 조절될 수 있다. 예를 들어, 제2 메모리 셀(MC2)이 프리 프로그램 상태인 경우, 제1 워드 라인(WL1)으로 인가되는 복구 독출 전압들이 증가되거나, 또는 감소될 수 있다. 이에 따라, 조절된 복구 독출 전압들이 제1 워드 라인(WL1)에 인가되어 제1 메모리 셀(MC1)로부터 멀티 비트 데이터가 독출될 수 있다.When power is restored from the SPO after the first memory cell MC1 connected to the first word line WL1 of the NAND string 211 is preprogrammed, in the recovery read mode, the first memory cell MC1 ( Multi-bit data may be read from MC1). In this case, the recovery read voltages may be adjusted according to the state of the second memory cell MC2 adjacent to the first memory cell MC1 . For example, when the second memory cell MC2 is in the pre-program state, the recovery read voltages applied to the first word line WL1 may be increased or decreased. Accordingly, the adjusted recovery read voltages may be applied to the first word line WL1 to read multi-bit data from the first memory cell MC1 .

상술한 바와 같이, 제1 메모리 셀(MC1)이 프리 프로그램된 후 인접 메모리 셀(MC0 또는 MC2)이 프리 프로그램되는 경우, 인접 메모리 셀(MC0 또는 MC2)에 연결된 워드 라인(WL0 또는 WL2)으로 인가되는 프로그램 전압에 의해 제1 메모리 셀(MC1)의 문턱 전압이 달라질 수 있다. 따라서, 인접 메모리 셀(MC0 또는 MC2)의 프리 프로그램 상태에 따라 복구 독출 전압들이 조절되는 경우, 제1 메모리 셀(MC1)의 문턱 전압 변화가 보상될 수 있다.As described above, when the adjacent memory cell MC0 or MC2 is preprogrammed after the first memory cell MC1 is preprogrammed, it is applied to the word line WL0 or WL2 connected to the adjacent memory cell MC0 or MC2. The threshold voltage of the first memory cell MC1 may vary depending on the used program voltage. Accordingly, when the recovery read voltages are adjusted according to the pre-program state of the adjacent memory cell MC0 or MC2 , the change in the threshold voltage of the first memory cell MC1 may be compensated.

도 18은 본 발명의 하나의 실시 예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다. 도 1 및 도 18을 참조하면, S510 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터를 메모리 셀들에 프리 프로그램할 수 있다. S520 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터에 기초하여 상태 그룹 코드를 생성할 수 있다.18 is a flowchart illustrating a method of operating a memory system according to an embodiment of the present invention. 1 and 18 , in operation S510 , the memory system 10 may pre-program multi-page data into memory cells. In operation S520 , the memory system 10 may generate a state group code based on the multi-page data.

S530 단계에서, 메모리 시스템(10)은 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. S540 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S550 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 상태 그룹 코드에 기초하여 프리 프로그램된 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. 예를 들어, 메모리 시스템(10)은 도 11 내지 도 17b를 참조하여 설명한 바와 같이 상태 그룹 코드에 기초하여 멀티 페이지 데이터를 독출할 수 있다.In operation S530 , the memory system 10 may back up the state group code to the nonvolatile memory device 200 . In operation S540 , the memory system 10 may determine whether an SPO has occurred. When SPO occurs, in step S550 , the memory system 10 may read multi-page data from preprogrammed memory cells based on the backed-up state group code after power recovery. For example, the memory system 10 may read multi-page data based on the state group code as described with reference to FIGS. 11 to 17B .

S560 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 재 프로그램된 메모리 셀들은 프리 프로그램된 메모리 셀들과 동일한 메모리 셀들일 수 있다.In operation S560 , the memory system 10 may reprogram the multi-page data in the memory cells based on the read multi-page data. The reprogrammed memory cells may be the same memory cells as the preprogrammed memory cells.

프리 프로그램된 이후 SPO가 발생하지 않는 경우, S570 단계에서, 메모리 시스템(10)은 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 메모리 시스템(10)은 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 멀티 페이지 데이터를 재 프로그램할 수 있다.When the SPO does not occur after preprogramming, in operation S570 , the memory system 10 may reprogram the multipage data in the memory cells. The memory system 10 may reprogram the multi-page data based on the multi-page data stored in the buffer memory 130 of the memory controller 100 .

도 18의 실시 예에 따르면, 메모리 시스템(10)은 SPO 발생 여부와 관계없이 상태 그룹 코드를 생성하고 백업할 수 있다. 즉, 프리 프로그램된 모든 멀티 페이지 데이터에 대하여 상태 그룹 코드가 불휘발성 메모리 장치(200)에 백업될 수 있다. 이에 따라, SPO가 발생한 상황에서 상태 그룹 코드에 대한 백업 동작이 수행되지 않으므로, 상태 그룹 코드를 백업하는데 이용되는 보조 전원의 사이즈 및 용량이 도 8의 실시 예와 비교하여 더 감소될 수 있다.According to the embodiment of FIG. 18 , the memory system 10 may generate and back up a state group code regardless of whether an SPO has occurred. That is, the state group code for all pre-programmed multi-page data may be backed up in the nonvolatile memory device 200 . Accordingly, since the backup operation for the state group code is not performed in a situation where the SPO occurs, the size and capacity of the auxiliary power used to back up the state group code may be further reduced compared to the embodiment of FIG. 8 .

도 19는 본 발명의 하나의 실시 예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다. 도 1 및 도 19를 참조하면, S610 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터를 제1 메모리 셀들에 프리 프로그램할 수 있다. S620 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터에 기초하여 상태 그룹 코드를 생성할 수 있다.19 is a flowchart illustrating a method of operating a memory system according to an embodiment of the present invention. 1 and 19 , in operation S610 , the memory system 10 may preprogram multi-page data into first memory cells. In operation S620 , the memory system 10 may generate a state group code based on the multi-page data.

S630 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S640 단계에서, 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. S650 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 상태 그룹 코드에 기초하여 프리 프로그램된 제1 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. 예를 들어, 메모리 시스템(10)은 도 11 내지 도 17b를 참조하여 설명한 바와 같이 상태 그룹 코드에 기초하여 멀티 페이지 데이터를 독출할 수 있다.In operation S630 , the memory system 10 may determine whether SPO has occurred. When the SPO occurs, the state group code may be backed up in the nonvolatile memory device 200 in operation S640 . In operation S650 , the memory system 10 may read multi-page data from the preprogrammed first memory cells based on the backed-up state group code after power recovery. For example, the memory system 10 may read multi-page data based on the state group code as described with reference to FIGS. 11 to 17B .

S660 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 제2 메모리 셀들에 멀티 페이지 데이터를 프리 프로그램할 수 있다. 이 경우, 제1 메모리 셀들과 제2 메모리 셀들은 서로 다른 메모리 블록에 포함될 수 있으나 본 발명이 이에 한정되는 것은 아니다. S670 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 제2 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다.In operation S660 , the memory system 10 may preprogram the multi-page data in the second memory cells based on the read multi-page data. In this case, the first memory cells and the second memory cells may be included in different memory blocks, but the present invention is not limited thereto. In operation S670 , the memory system 10 may reprogram the multi-page data in the second memory cells based on the read multi-page data.

프리 프로그램된 이후 SPO가 발생하지 않는 경우, S680 단계에서, 메모리 시스템(10)은 제1 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 메모리 시스템(10)은 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 멀티 페이지 데이터를 재 프로그램할 수 있다.If SPO does not occur after preprogramming, in operation S680 , the memory system 10 may reprogram the multi-page data in the first memory cells. The memory system 10 may reprogram the multi-page data based on the multi-page data stored in the buffer memory 130 of the memory controller 100 .

도 19의 실시 예에 따르면, 메모리 시스템(10)은 SPO로부터의 전원 복구 후에 프리 프로그램된 제1 메모리 셀들과 다른 제2 메모리 셀들에 멀티 페이지 데이터를 프로그램할 수 있다. 즉, 제1 메모리 셀들에 대한 프로그램 동작이 더 이상 수행될 수 없는 상황에서, 메모리 시스템(10)은 복구된 멀티 페이지 데이터를 기반으로 제2 메모리 셀들에 대하여 프로그램 동작을 다시 수행할 수 있다.According to the embodiment of FIG. 19 , the memory system 10 may program multi-page data in second memory cells different from the pre-programmed first memory cells after power recovery from the SPO. That is, in a situation in which the program operation on the first memory cells cannot be performed anymore, the memory system 10 may again perform the program operation on the second memory cells based on the recovered multi-page data.

도 20은 본 발명의 하나의 실시 예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다. 도 1 및 도 20을 참조하면, S701 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터를 메모리 셀들에 제1 프리 프로그램할 수 있다. S702 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터에 기초하여 제1 상태 그룹 코드를 생성할 수 있다.20 is a flowchart illustrating a method of operating a memory system according to an embodiment of the present invention. 1 and 20 , in step S701 , the memory system 10 may first preprogram multi-page data into memory cells. In operation S702 , the memory system 10 may generate a first state group code based on the multi-page data.

S703 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S704 단계에서, 메모리 시스템(10)은 제1 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. S705 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 제1 상태 그룹 코드에 기초하여 제1 프리 프로그램된 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. S706 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 제1 프리 프로그램된 메모리 셀들에 멀티 페이지 데이터를 제2 프리 프로그램할 수 있다. 예를 들어, 제2 프리 프로그램하기 위한 프리 프로그램 검증 전압은 제1 프리 프로그램하기 위한 프리 프로그램 검증 전압보다 높을 수 있다.In step S703, the memory system 10 may determine whether SPO has occurred. When the SPO occurs, in operation S704 , the memory system 10 may back up the first state group code to the nonvolatile memory device 200 . In operation S705 , the memory system 10 may read multi-page data from the first pre-programmed memory cells based on the first state group code backed up after power is restored. In operation S706 , the memory system 10 may perform a second preprogramming of the multipage data in the first preprogrammed memory cells based on the read multipage data. For example, the pre-program verify voltage for the second pre-programming may be higher than the pre-program verify voltage for the first pre-program.

제1 프리 프로그램된 이후 SPO가 발생하지 않는 경우, S707 단계에서, 메모리 시스템(10)은 제1 프리 프로그램된 메모리 셀들에 멀티 페이지 데이터를 제2 프리 프로그램할 수 있다. 메모리 시스템(10)은 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 제2 프리 프로그램을 수행할 수 있다.When the SPO does not occur after the first pre-programming, in operation S707 , the memory system 10 may second pre-program the multi-page data into the first pre-programmed memory cells. The memory system 10 may perform a second pre-program based on multi-page data stored in the buffer memory 130 of the memory controller 100 .

S708 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터를 기반으로 제2 상태 그룹 코드를 생성할 수 있다. 예를 들어, 제2 프리 프로그램에 따른 문턱 전압 분포들의 중첩된 영역들은 제1 프리 프로그램에 따른 문턱 전압 분포들의 중첩된 영역들보다 감소될 수 있다. 이에 따라, 제2 프리 프로그램에 따른 문턱 전압 분포들을 구분하기 위한 상태 그룹들의 개수는 제1 프리 프로그램에 따른 문턱 전압 분포들을 구분하기 위한 상태 그룹들의 개수보다 작을 수 있다. 이에 따라, 제2 상태 그룹 코드의 비트들의 개수는 제1 상태 그룹 코드의 비트들의 개수보다 작을 수 있다.In operation S708 , the memory system 10 may generate a second state group code based on the multi-page data. For example, overlapping regions of threshold voltage distributions according to the second pre-programming may be reduced than overlapping regions of threshold voltage distributions according to the first pre-programming. Accordingly, the number of state groups for classifying threshold voltage distributions according to the second pre-program may be smaller than the number of state groups for classifying threshold voltage distributions according to the first pre-program. Accordingly, the number of bits of the second state group code may be smaller than the number of bits of the first state group code.

S709 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S710 단계에서, 메모리 시스템(10)은 제2 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. S711 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 제2 상태 그룹 코드에 기초하여 제2 프리 프로그램된 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. S712 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 제2 프리 프로그램된 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 예를 들어, 재 프리 프로그램하기 위한 재 프로그램 검증 전압은 제2 프리 프로그램하기 위한 프리 프로그램 검증 전압보다 높을 수 있다.In step S709 , the memory system 10 may determine whether an SPO has occurred. When SPO occurs, in step S710 , the memory system 10 may back up the second state group code to the nonvolatile memory device 200 . In operation S711 , the memory system 10 may read multi-page data from the second pre-programmed memory cells based on the second state group code backed up after power is restored. In operation S712 , the memory system 10 may reprogram the multi-page data into second pre-programmed memory cells based on the read multi-page data. For example, the reprogram verification voltage for re-pre-programming may be higher than the pre-program verification voltage for the second pre-programming.

제2 프리 프로그램된 이후 SPO가 발생하지 않는 경우, S713 단계에서, 메모리 시스템(10)은 제2 프리 프로그램된 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. S703 단계에서 SPO가 발생한 경우, 메모리 시스템(10)은 제1 프리 프로그램된 메모리 셀들로부터 독출된 멀티 페이지 데이터를 기반으로 재 프로그램을 수행할 수 있다. S703 단계에서 SPO가 발생하지 않은 경우, 메모리 시스템(10)은 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 재 프로그램을 수행할 수 있다.When the SPO does not occur after the second preprogramming, in step S713 , the memory system 10 may reprogram the multipage data in the second preprogrammed memory cells. When SPO occurs in step S703 , the memory system 10 may perform reprogramming based on multi-page data read from the first preprogrammed memory cells. When SPO does not occur in step S703 , the memory system 10 may perform reprogramming based on the multi-page data stored in the buffer memory 130 of the memory controller 100 .

상술한 바와 같이, 메모리 시스템(10)은 복수의 프리 프로그램 동작들을 수행할 수 있다. 메모리 시스템(10)은 각각의 프리 프로그램 동작들에 대응하여 상태 그룹 코드(즉, 상태 그룹 데이터)를 생성할 수 있다. 이 경우, 상태 그룹 데이터의 비트 개수는 프리 프로그램 동작들에 따라 달라질 수 있고, 이전 프리 프로그램 동작에 대응하는 상태 그룹 데이터의 비트 개수는 이후 프리 프로그램 동작에 대응하는 상태 그룹 데이터의 비트 개수보다 클 수 있다.As described above, the memory system 10 may perform a plurality of pre-program operations. The memory system 10 may generate a state group code (ie, state group data) in response to each pre-program operation. In this case, the number of bits of state group data may vary according to pre-program operations, and the number of bits of state group data corresponding to a previous pre-program operation may be greater than the number of bits of state group data corresponding to subsequent pre-program operations. have.

도 21은 본 발명의 실시 예들에 따른 메모리 시스템을 SSD 시스템에 적용한 예시를 나타내는 블록도이다. 도 21을 참조하면, SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함할 수 있다. SSD(1200)는 신호 커넥터를 통해 호스트(1100)와 신호(SIG)를 주고 받으며, 전원 커넥터를 통해 전원(PWR)을 입력 받을 수 있다. SSD(1200)는 SSD 컨트롤러(1210), 보조 전원 장치(1220) 및 메모리 장치들(1230, 1240, 1250)을 포함할 수 있다. 메모리 장치들(1230, 1240, 1250)은 채널들(Ch1, Ch2, Chn)을 통해 SSD 컨트롤러(1210)에 각각 연결될 수 있다. 21 is a block diagram illustrating an example in which a memory system according to embodiments of the present invention is applied to an SSD system. Referring to FIG. 21 , the SSD system 1000 may include a host 1100 and an SSD 1200 . The SSD 1200 may exchange a signal SIG with the host 1100 through a signal connector, and may receive power PWR through a power connector. The SSD 1200 may include an SSD controller 1210 , an auxiliary power supply 1220 , and memory devices 1230 , 1240 , and 1250 . The memory devices 1230 , 1240 , and 1250 may be respectively connected to the SSD controller 1210 through channels Ch1 , Ch2 , and Chn.

SSD 컨트롤러(1210)는 호스트(1100)로부터 수신된 신호(SIG)에 응답하여 메모리 장치들(1230, 1240, 1250)을 제어할 수 있다. SSD 컨트롤러(1210)는 도 1 내지 도 20을 참조하여 상술된 메모리 컨트롤러(100)를 이용하여 구현될 수 있다. 예를 들어, SSD 컨트롤러(1210)는 멀티 비트 데이터에 대한 프로그램이 수행되는 동안 SPO가 발생하는 경우, 멀티 비트 데이터에 대응하는 상태 그룹 데이터가 백업되도록 메모리 장치들(1230, 1240, 1250)을 제어할 수 있다. SSD 컨트롤러(1210)는 전원 복구 후에 백업된 상태 그룹 데이터를 기반으로 멀티 비트 데이터가 복구되도록 메모리 장치들(1230, 1240, 1250)을 제어할 수 있다. 이에 따라, 프로그램 동작 중에 SPO가 발생되더라도, 멀티 비트 데이터에 대한 프로그램 동작이 정상적으로 완료될 수 있다.The SSD controller 1210 may control the memory devices 1230 , 1240 , and 1250 in response to a signal SIG received from the host 1100 . The SSD controller 1210 may be implemented using the memory controller 100 described above with reference to FIGS. 1 to 20 . For example, the SSD controller 1210 controls the memory devices 1230 , 1240 , and 1250 to back up state group data corresponding to the multi-bit data when an SPO occurs while a program for the multi-bit data is being performed. can do. The SSD controller 1210 may control the memory devices 1230 , 1240 , and 1250 to recover multi-bit data based on the backed-up state group data after power recovery. Accordingly, even if the SPO occurs during the program operation, the program operation for the multi-bit data may be normally completed.

메모리 장치들(1230, 1240, 1250)은 SSD 컨트롤러(1210)의 제어에 따라 동작할 수 있다. 메모리 장치들(1230, 1240, 1250) 각각은 도 1 내지 도 20을 참조하여 상술된 불휘발성 메모리 장치(200)를 이용하여 구현될 수 있다. 예를 들어, 메모리 장치들(1230, 1240, 1250) 각각은 SPO가 발생하는 경우, SSD 컨트롤러(1210)의 제어에 따라 상태 그룹 데이터를 백업할 수 있다. 메모리 장치들(1230, 1240, 1250) 각각은 전원 복구 후에 SSD 컨트롤러(1210)의 제어에 따라 백업된 상태 그룹 데이터를 기반으로 프리 프로그램된 멀티 비트 데이터를 독출할 수 있다.The memory devices 1230 , 1240 , and 1250 may operate under the control of the SSD controller 1210 . Each of the memory devices 1230 , 1240 , and 1250 may be implemented using the nonvolatile memory device 200 described above with reference to FIGS. 1 to 20 . For example, each of the memory devices 1230 , 1240 , and 1250 may back up state group data under the control of the SSD controller 1210 when an SPO occurs. Each of the memory devices 1230 , 1240 , and 1250 may read preprogrammed multi-bit data based on the backed-up state group data under the control of the SSD controller 1210 after power recovery.

보조 전원 장치(1220)는 전원 커넥터를 통해 호스트(1100)와 연결될 수 있다. 보조 전원 장치(1220)는 호스트(1100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 보조 전원 장치(1220)는 호스트(1100)로부터의 전원 공급이 원활하지 않을 경우, SSD(1200)의 전원을 제공할 수 있다.The auxiliary power supply 1220 may be connected to the host 1100 through a power connector. The auxiliary power supply 1220 may receive power PWR from the host 1100 and charge it. The auxiliary power supply 1220 may provide power to the SSD 1200 when power supply from the host 1100 is not smooth.

도 22는 본 발명의 하나의 실시 예에 따른 메모리 시스템이 적용된 네트워크 시스템을 나타내는 블록도이다. 도 22를 참조하면, 네트워크 시스템(2000)은 각종 데이터를 모아두고 서비스를 제공하는 시설로서, 데이터 센터 또는 데이터 스토리지 센터라고 지칭될 수 있다. 네트워크 시스템(2000)은 어플리케이션 서버들(2100 내지 2100n) 및 스토리지 서버들(2200 내지 2200m)을 포함할 수 있고, 어플리케이션 서버들(2100 내지 2100n) 및 스토리지 서버들(2200 내지 2200m)은 컴퓨팅 노드들로 지칭될 수 있다. 어플리케이션 서버들(2100 내지 2100n)의 개수 및 스토리지 서버들(2200 내지 2200m)의 개수는 실시 예에 따라 다양하게 선택될 수 있고, 어플리케이션 서버들(2100 내지 2100n)의 개수 및 스토리지 서버들(2200 내지 2200m)의 개수는 서로 다를 수 있다. 22 is a block diagram illustrating a network system to which a memory system according to an embodiment of the present invention is applied. Referring to FIG. 22 , a network system 2000 is a facility that collects various types of data and provides services, and may be referred to as a data center or a data storage center. The network system 2000 may include application servers 2100 to 2100n and storage servers 2200 to 2200m, and the application servers 2100 to 2100n and the storage servers 2200 to 2200m are computing nodes. may be referred to as The number of application servers 2100 to 2100n and the number of storage servers 2200 to 2200m may be variously selected according to an embodiment, and the number of application servers 2100 to 2100n and the number of storage servers 2200 to 2200m 2200m) may be different.

어플리케이션 서버들(2100 내지 2100n) 및 스토리지 서버들(2200 내지 2200m)은 네트워크(2300)를 통해 서로 통신할 수 있다. 네트워크(2300)는 FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. 이 때, FC는 고속 데이터 전송에 사용되는 매체이며, 고성능/고가용성을 제공하는 광 스위치를 사용할 수 있다. 네트워크(2300)의 액세스 방식에 따라 스토리지 서버들(2200 내지 2200m)은 파일 스토리지, 블록 스토리지, 또는 오브젝트 스토리지로서 제공될 수 있다. The application servers 2100 to 2100n and the storage servers 2200 to 2200m may communicate with each other through the network 2300 . The network 2300 may be implemented using Fiber Channel (FC) or Ethernet. In this case, FC is a medium used for high-speed data transmission, and an optical switch providing high performance/high availability may be used. Depending on the access method of the network 2300 , the storage servers 2200 to 2200m may be provided as file storage, block storage, or object storage.

예시적인 실시 예에서, 네트워크(2300)는 SAN(Storage Area Network)과 같은 스토리지 전용 네트워크일 수 있다. 예를 들어, SAN은 FC 네트워크를 이용하고 FCP(FC Protocol)에 따라 구현된 FC-SAN일 수 있다. 예시적인 실시 예에서, SAN은 TCP/IP 네트워크를 이용하고 iSCSI(SCSI over TCP/IP 또는 Internet SCSI) 프로토콜에 따라 구현된 IP-SAN일 수 있다. 예시적인 실시 예에서, 네트워크(2300)는 TCP/IP 네트워크와 같은 일반 네트워크일 수 있다. 예를 들어, 네트워크(2300)는 FCoE(FC over Ethernet), NAS(Network Attached Storage), NVMe-oF(NVMe over Fabrics) 등의 프로토콜에 따라 구현될 수 있다.In an exemplary embodiment, the network 2300 may be a storage-only network, such as a storage area network (SAN). For example, the SAN may be an FC-SAN that uses an FC network and is implemented according to FC Protocol (FCP). In an exemplary embodiment, the SAN may be an IP-SAN that uses a TCP/IP network and is implemented according to an iSCSI (SCSI over TCP/IP or Internet SCSI) protocol. In an exemplary embodiment, network 2300 may be a generic network, such as a TCP/IP network. For example, the network 2300 may be implemented according to protocols such as FC over Ethernet (FCoE), Network Attached Storage (NAS), and NVMe over Fabrics (NVMe-oF).

이하에서는, 어플리케이션 서버(2100) 및 스토리지 서버(2200)를 중심으로 설명하기로 한다. 어플리케이션 서버(2100)에 대한 설명은 다른 어플리케이션 서버(2100n)에도 적용될 수 있고, 스토리지 서버(2200)에 대한 설명은 다른 스토리지 서버(2200m)에도 적용될 수 있다.Hereinafter, the application server 2100 and the storage server 2200 will be mainly described. A description of the application server 2100 may be applied to other application servers 2100n, and a description of the storage server 2200 may also be applied to other storage servers 2200m.

어플리케이션 서버(2100)는 프로세서(2110) 및 메모리(2120)를 포함할 수 있다. 프로세서(2110)는 어플리케이션 서버(2100)의 전반적인 동작을 제어할 수 있고, 메모리(2120)에 액세스하여 메모리(2120)에 로딩된 명령어 및/또는 데이터를 실행할 수 있다. 실시 예에 따라, 어플리케이션 서버(2100)에 포함되는 프로세서(2110)의 개수 및 메모리(2120)의 개수는 다양하게 선택될 수 있다. 예시적인 실시 예에서, 프로세서(2110)와 메모리(2120)는 프로세서-메모리 페어(pair)로 구성될 수 있다. 예시적인 실시 예에서, 프로세서(2110)와 메모리(2120)의 개수는 서로 다르게 구성될 수 있다. The application server 2100 may include a processor 2110 and a memory 2120 . The processor 2110 may control the overall operation of the application server 2100 , and may access the memory 2120 to execute instructions and/or data loaded into the memory 2120 . According to an embodiment, the number of processors 2110 and the number of memories 2120 included in the application server 2100 may be variously selected. In an exemplary embodiment, the processor 2110 and the memory 2120 may be configured as a processor-memory pair. In an exemplary embodiment, the number of the processor 2110 and the memory 2120 may be configured differently.

어플리케이션 서버(2100)는 스토리지 장치(2150)를 더 포함할 수 있다. 이 때, 어플리케이션 서버(2100)에 포함되는 스토리지 장치(2150)의 개수는 실시 예에 따라 다양하게 선택될 수 있다. 프로세서(2110)는 스토리지 장치(2150)에 커맨드를 제공할 수 있고, 스토리지 장치(2150)는 프로세서(2110)로부터 수신한 커맨드에 응답하여 동작할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 어플리케이션 서버(2100)는 스토리지 장치(2150)를 포함하지 않을 수도 있다.The application server 2100 may further include a storage device 2150 . In this case, the number of storage devices 2150 included in the application server 2100 may be variously selected according to an embodiment. The processor 2110 may provide a command to the storage device 2150 , and the storage device 2150 may operate in response to a command received from the processor 2110 . However, the present invention is not limited thereto, and the application server 2100 may not include the storage device 2150 .

어플리케이션 서버(2100)는 스위치(2130) 및 NIC(Network Interface Card)(2140)를 더 포함할 수 있다. 스위치(2130)는 프로세서(2110)의 제어에 따라 프로세서(2110)와 스토리지 장치(2150)를 선택적으로 연결시키거나, NIC(2140)와 스토리지 장치(2150)를 선택적으로 연결시킬 수 있다. NIC(2140)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등을 포함할 수 있다. 예시적인 실시 예에서, 프로세서(2110)와 NIC(2140)는 하나로 통합될 수 있다. 예시적인 실시 예에서, 스토리지 장치(2150)와 NIC(2140)는 하나로 통합될 수 있다.The application server 2100 may further include a switch 2130 and a network interface card (NIC) 2140 . The switch 2130 may selectively connect the processor 2110 and the storage device 2150 or the NIC 2140 and the storage device 2150 under the control of the processor 2110 . The NIC 2140 may include a wired interface, a wireless interface, a Bluetooth interface, an optical interface, and the like. In an exemplary embodiment, the processor 2110 and the NIC 2140 may be integrated into one. In an exemplary embodiment, the storage device 2150 and the NIC 2140 may be integrated into one.

어플리케이션 서버(2100)는 사용자 또는 클라이언트가 저장 요청한 데이터를 네트워크(2300)를 통해 스토리지 서버들(2200 내지 2200m) 중 하나에 저장할 수 있다. 또한, 어플리케이션 서버(2100)는 사용자 또는 클라이언트가 독출 요청한 데이터를 스토리지 서버들(2200 내지 2200m) 중 하나로부터 네트워크(2300)를 통해 획득할 수 있다. 예를 들어, 어플리케이션 서버(2100)는 웹 서버 또는 DBMS(Database Management System) 등으로 구현될 수 있다.The application server 2100 may store data requested to be stored by a user or a client in one of the storage servers 2200 to 2200m through the network 2300 . Also, the application server 2100 may obtain data read requested by a user or a client from one of the storage servers 2200 to 2200m through the network 2300 . For example, the application server 2100 may be implemented as a web server or a database management system (DBMS).

어플리케이션 서버(2100)는 네트워크(2300)를 통해 다른 어플리케이션 서버(2100n)에 포함된 메모리(2120n) 또는 스토리지 장치(2150n)에 액세스할 수 있고, 또는 네트워크(2300)를 통해 스토리지 서버(2200, 2200m)에 포함된 메모리(2220, 2220m) 또는 스토리지 장치(2250, 2250m)에 액세스할 수 있다. 이로써, 어플리케이션 서버(2100)는 어플리케이션 서버(2100, 2100n) 및/또는 스토리지 서버(2200, 2200m)에 저장된 데이터에 대해 다양한 동작들을 수행할 수 있다. 예를 들어, 어플리케이션 서버(2100)는 어플리케이션 서버(2100, 2100n) 및/또는 스토리지 서버(2200, 2200m) 사이에서 데이터를 이동 또는 카피(copy)하기 위한 명령어를 실행할 수 있다. 이 경우, 데이터는 보안 또는 프라이버시를 위해 암호화된 상태로 네트워크(2300)를 통해 이동될 수 있다.The application server 2100 may access the memory 2120n or the storage device 2150n included in another application server 2100n through the network 2300 , or the storage servers 2200 and 2200m through the network 2300 . ) in memory 2220, 2220m or storage devices 2250, 2250m. Accordingly, the application server 2100 may perform various operations on data stored in the application servers 2100 and 2100n and/or the storage servers 2200 and 2200m. For example, the application server 2100 may execute a command for moving or copying data between the application servers 2100 and 2100n and/or the storage servers 2200 and 2200m. In this case, the data may be moved through the network 2300 in an encrypted state for security or privacy.

스토리지 서버(2200)는 프로세서(2210) 및 메모리(2220)를 포함할 수 있다. 프로세서(2210)는 스토리지 서버(2200)의 전반적인 동작을 제어할 수 있고, 메모리(2220)에 액세스하여 메모리(2220)에 로딩된 명령어 및/또는 데이터를 실행할 수 있다. 실시 예에 따라, 스토리지 서버(2200)에 포함되는 프로세서(2210)의 개수 및 메모리(2220)의 개수는 다양하게 선택될 수 있다. 예시적인 실시 예에서, 프로세서(2210)와 메모리(2220)는 프로세서-메모리 페어로 구성될 수 있다. 예시적인 실시 예에서, 프로세서(2210)와 메모리(2220)의 개수는 서로 다르게 구성될 수도 있다. The storage server 2200 may include a processor 2210 and a memory 2220 . The processor 2210 may control the overall operation of the storage server 2200 , and may access the memory 2220 to execute instructions and/or data loaded into the memory 2220 . According to an embodiment, the number of processors 2210 and the number of memories 2220 included in the storage server 2200 may be variously selected. In an exemplary embodiment, the processor 2210 and the memory 2220 may be configured as a processor-memory pair. In an exemplary embodiment, the number of the processor 2210 and the memory 2220 may be configured differently.

프로세서(2210)는 단일 코어 프로세서 또는 다중 코어 프로세서를 포함할 수 있다. 예를 들어, 프로세서(2210)는 범용 프로세서, CPU(Central Processing Unit), GPU(Graphic Processing Unit), DSP(Digital Signal Processor), MCU(Microcontroller), 마이크로프로세서(Microprocessor), 네트워크 프로세서, 임베디드 프로세서, FPGA(field programmable gate array), ASIP(application-specific instruction set processor), ASIC(application-specific integrated circuit processor) 등을 포함할 수 있다.The processor 2210 may include a single-core processor or a multi-core processor. For example, the processor 2210 is a general-purpose processor, a central processing unit (CPU), a graphic processing unit (GPU), a digital signal processor (DSP), a microcontroller (MCU), a microprocessor, a network processor, an embedded processor, It may include a field programmable gate array (FPGA), an application-specific instruction set processor (ASIP), an application-specific integrated circuit processor (ASIC), and the like.

스토리지 서버(2200)는 적어도 하나의 스토리지 장치(2250)를 더 포함할 수 있다. 스토리지 서버(2200)에 포함되는 스토리지 장치(2250)의 개수는 실시 예에 따라 다양하게 선택될 수 있다. 스토리지 장치(2250)는 컨트롤러(Controller, CTRL)(2251), 낸드 플래시(NAND, 2252), DRAM(2253), 및 인터페이스(Interface, I/F)(2254)를 포함할 수 있다. 이하에서는, 스토리지 장치(2250)의 구성 및 동작에 대해 상술하기로 한다. 스토리지 장치(2250)에 대한 이하의 설명은 다른 스토리지 장치(2150, 2150n, 2250m)에도 적용될 수 있다.The storage server 2200 may further include at least one storage device 2250 . The number of storage devices 2250 included in the storage server 2200 may be variously selected according to embodiments. The storage device 2250 may include a controller (CTRL) 2251 , a NAND flash (NAND) 2252 , a DRAM 2253 , and an interface (I/F) 2254 . Hereinafter, the configuration and operation of the storage device 2250 will be described in detail. The following description of the storage device 2250 may also be applied to other storage devices 2150 , 2150n , and 2250m .

인터페이스(2254)는 프로세서(2210)와 컨트롤러(2251)의 물리적 연결 및 NIC(2240)와 컨트롤러(2251)의 물리적 연결을 제공할 수 있다. 예를 들어, 인터페이스(2254)는 스토리지 장치(2250)를 전용 케이블로 직접 접속하는 DAS(Direct Attached Storage) 방식으로 구현될 수 있다. 또한, 예를 들어, 인터페이스(2254)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.The interface 2254 may provide a physical connection between the processor 2210 and the controller 2251 and a physical connection between the NIC 2240 and the controller 2251 . For example, the interface 2254 may be implemented in a DAS (Direct Attached Storage) method for directly connecting the storage device 2250 with a dedicated cable. Also, for example, the interface 2254 may be an Advanced Technology Attachment (ATA), Serial ATA (SATA), external SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), Peripheral (PCI) Component Interconnection), PCIe (PCI express), NVMe (NVM express), IEEE 1394, USB (universal serial bus), SD (secure digital) card, MMC (multi-media card), eMMC (embedded multi-media card), It may be implemented in various interface methods such as a compact flash (CF) card interface.

컨트롤러(2251)는 스토리지 장치(2250)의 동작을 전반적으로 제어할 수 있다. 컨트롤러(2251)는 프로그램 커맨드에 응답하여 낸드 플래시(2252)에 데이터를 프로그램할 수 있고, 또는 독출 커맨드에 응답하여 낸드 플래시(2252)로부터 데이터를 독출할 수 있다. 예를 들어, 프로그램 커맨드 및/또는 독출 커맨드는 스토리지 서버(2200) 내의 프로세서(2210), 다른 스토리지 서버(2200m) 내의 프로세서(2210m) 또는 어플리케이션 서버(2100, 2100n) 내의 프로세서(2110, 2110n)로부터 프로세서(2210)를 통해 제공되거나 직접 제공될 수 있다.The controller 2251 may control overall operations of the storage device 2250 . The controller 2251 may program data into the NAND flash 2252 in response to a program command, or read data from the NAND flash 2252 in response to a read command. For example, program commands and/or read commands may be from processor 2210 in storage server 2200, processor 2210m in another storage server 2200m, or processors 2110, 2110n in application servers 2100, 2100n. It may be provided through the processor 2210 or may be provided directly.

낸드 플래시(2252)는 복수의 낸드 플래시 메모리 셀들을 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 스토리지 장치(2250)는 낸드 플래시(2252) 이외의 다른 불휘발성 메모리, 예를 들어, ReRAM(resistive RAM), PRAM(phase change RAM), 또는 MRAM(magnetic RAM)을 포함하거나, 또는 자기 저장 매체나 광학 저장 매체 등을 포함할 수 있다.The NAND flash 2252 may include a plurality of NAND flash memory cells. However, the present invention is not limited thereto, and the storage device 2250 includes a nonvolatile memory other than the NAND flash 2252 , for example, a resistive RAM (ReRAM), a phase change RAM (PRAM), or a magnetic RAM (MRAM). ), or may include a magnetic storage medium or an optical storage medium.

DRAM(Dynamic RAM)(2253)은 버퍼 메모리로 이용될 수 있다. 예를 들어, DRAM(2253)은 DDR SDRAM(Double Data Rate Synchronous DRAM), LPDDR(Low Power DDR) SDRAM, GDDR(Graphics DDR) SDRAM, RDRAM(Rambus DRAM) 또는 HBM(High Bandwidth Memory)일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 스토리지 장치(2250)는 DRAM 이외의 다른 휘발성 메모리 또는 불휘발성 메모리를 버퍼 메모리로 이용할 수 있다. DRAM(2253)은 낸드 플래시(2252)에 프로그램될 데이터 또는 낸드 플래시(2252)로부터 독출된 데이터를 일시적으로 저장(버퍼링)할 수 있다.A dynamic RAM (DRAM) 2253 may be used as a buffer memory. For example, the DRAM 2253 may be a Double Data Rate Synchronous DRAM (DDR SDRAM), a Low Power DDR (LPDDR) SDRAM, a Graphics DDR (GDDR) SDRAM, a Rambus DRAM (RDRAM), or a High Bandwidth Memory (HBM). However, the present invention is not limited thereto, and the storage device 2250 may use a volatile memory or a nonvolatile memory other than DRAM as the buffer memory. The DRAM 2253 may temporarily store (buffer) data to be programmed into the NAND flash 2252 or data read from the NAND flash 2252 .

스토리지 서버(2200)는 스위치(2230) 및 NIC(2240)를 더 포함할 수 있다. 스위치(2230)는 프로세서(2210)의 제어에 따라 프로세서(2210)와 스토리지 장치(2250)를 선택적으로 연결시키거나, NIC(2240)와 스토리지 장치(2250)를 선택적으로 연결시킬 수 있다. 예시적인 실시 예에서, 프로세서(2210)와 NIC(2240)는 하나로 통합될 수 있다. 예시적인 실시 예에서, 스토리지 장치(2250)와 NIC(2240)는 하나로 통합될 수 있다.The storage server 2200 may further include a switch 2230 and a NIC 2240 . The switch 2230 may selectively connect the processor 2210 and the storage device 2250 or the NIC 2240 and the storage device 2250 under the control of the processor 2210 . In an exemplary embodiment, the processor 2210 and the NIC 2240 may be integrated into one. In an exemplary embodiment, the storage device 2250 and the NIC 2240 may be integrated into one.

스토리지 장치들(2150, 2150n, 2250, 2250m)은 도 1 내지 도 20을 참조하여 상술된 메모리 시스템(10)에 대응할 수 있다. 예를 들어, 스토리지 장치(2250)는 프로세서들(2110, 2110n, 2210, 2210m) 중 하나로부터의 멀티 페이지 데이터에 대한 프로그램 커맨드에 따라 동작할 수 있다. 프로세서들(2110, 2110n, 2210m) 중 하나로부터의 프로그램 커맨드에 따라 동작하는 경우, 스토리지 장치(2250)는 프로세서(2210)를 통해 프로그램 커맨드를 전달받거나, 또는 스토리지 장치(2250)는 스위치(2230)를 통해 연결된 프로세서로부터 프로그램 커맨드를 직접 수신할 수 있다. 컨트롤러(2251)는 프로그램 커맨드에 응답하여 멀티 페이지 데이터가 낸드 플래시(2252)에 저장되도록 낸드 플래시(2252)를 제어할 수 있다. 예를 들어, 멀티 페이지 데이터에 대한 프로그램 동작 중에 SPO가 발생하는 경우(예를 들어, 스토리지 서버(2200)에서 SPO가 발생하는 경우), 스토리지 장치(2250)는 멀티 페이지 데이터에 대응하는 상태 그룹 코드를 낸드 플래시(2252)에 백업할 수 있다. SPO로부터 전원이 복구되는 경우, 스토리지 장치(2250)는 백업된 상태 그룹 코드에 기초하여 프리 프로그램된 멀티 페이지 데이터를 복구할 수 있다. 스토리지 장치(2250)는 복구된 멀티 페이지 데이터를 기반으로 재 프로그램을 수행하여 멀티 페이지 데이터에 대한 프로그램 동작을 완료할 수 있다.The storage devices 2150 , 2150n , 2250 , and 2250m may correspond to the memory system 10 described above with reference to FIGS. 1 to 20 . For example, the storage device 2250 may operate according to a program command for multi-page data from one of the processors 2110 , 2110n , 2210 , and 2210m. When operating according to a program command from one of the processors 2110 , 2110n and 2210m , the storage device 2250 receives the program command through the processor 2210 , or the storage device 2250 operates the switch 2230 . It is possible to receive program commands directly from the connected processor through . The controller 2251 may control the NAND flash 2252 to store multi-page data in the NAND flash 2252 in response to a program command. For example, when SPO occurs during a program operation for multi-page data (eg, when SPO occurs in the storage server 2200), the storage device 2250 sets a status group code corresponding to the multi-page data. may be backed up to the NAND flash 2252 . When power is restored from the SPO, the storage device 2250 may restore preprogrammed multi-page data based on the backed-up state group code. The storage device 2250 may reprogram the multi-page data based on the recovered multi-page data to complete the program operation on the multi-page data.

상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The above are specific embodiments for carrying out the present invention. The present invention will include not only the above-described embodiments, but also simple design changes or easily changeable embodiments. In addition, the present invention will include techniques that can be easily modified and implemented using the embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be defined by the claims described below as well as the claims and equivalents of the present invention.

10: 메모리 시스템
100: 메모리 컨트롤러
110: 파워 감지기
120: 프로그램 매니저
130: 버퍼 메모리
200: 불휘발성 메모리 장치
210: 메모리 셀 어레이
220: 페이지 버퍼부
230: 제어 로직
240: 전압 생성기
250: 로우 디코더
10: memory system
100: memory controller
110: power sensor
120: program manager
130: buffer memory
200: nonvolatile memory device
210: memory cell array
220: page buffer unit
230: control logic
240: voltage generator
250: raw decoder

Claims (20)

메모리 컨트롤러 및 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법에 있어서,
상기 메모리 컨트롤러의 멀티 페이지 데이터를 상기 불휘발성 메모리 장치의 메모리 셀들에 프리 프로그램하는 단계;
상기 멀티 페이지 데이터에 기초하여 상기 멀티 페이지 데이터의 비트들보다 적은 비트들을 가지는 상태 그룹 코드를 생성하는 단계;
상기 메모리 셀들이 프리 프로그램된 이후에 서든 파워 오프가 발생하는 경우, 상기 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계;
상기 서든 파워 오프로부터의 전원 복구 후에, 상기 백업된 상태 그룹 코드에 기초하여 상기 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계;
상기 독출된 멀티 페이지 데이터를 기반으로 상기 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계; 및
상기 메모리 셀들이 프리 프로그램된 이후에 상기 서든 파워 오프가 발생하지 않은 경우, 상기 메모리 컨트롤러의 상기 멀티 페이지 데이터를 기반으로 상기 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계를 포함하는 방법.
A method of operating a memory system including a memory controller and a nonvolatile memory device, the method comprising:
preprogramming multi-page data of the memory controller into memory cells of the nonvolatile memory device;
generating a status group code having fewer bits than bits of the multi-page data based on the multi-page data;
backing up the state group code to the nonvolatile memory device when a sudden power-off occurs after the memory cells are preprogrammed;
reading the multi-page data from the pre-programmed memory cells based on the backed-up state group code after power recovery from the sudden power-off;
reprogramming the multi-page data in the memory cells based on the read multi-page data; and
and reprogramming the multi-page data in the memory cells based on the multi-page data of the memory controller when the sudden power-off does not occur after the memory cells are pre-programmed.
제 1 항에 있어서,
상기 상태 그룹 코드는 상기 프리 프로그램된 메모리 셀들 각각에 대응하는 상태 그룹 데이터를 포함하고,
상기 상태 그룹 데이터는 각각이 서로 다른 문턱 전압 분포들을 포함하는 상태 그룹들 중 하나를 나타내는 방법.
The method of claim 1,
The state group code includes state group data corresponding to each of the pre-programmed memory cells,
wherein the state group data represents one of the state groups each comprising different threshold voltage distributions.
제 2 항에 있어서,
상기 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계는,
상기 불휘발성 메모리 장치를 일반 독출 모드로부터 복구 독출 모드로 변경하는 단계; 및
상기 복구 독출 모드에서 상기 프리 프로그램된 메모리 셀들에 연결된 워드 라인으로 상기 상태 그룹들 각각에 대응하는 독출 전압들을 인가하는 단계를 포함하는 방법.
3. The method of claim 2,
Reading the multi-page data from the pre-programmed memory cells includes:
changing the nonvolatile memory device from a normal read mode to a recovery read mode; and
and applying read voltages corresponding to each of the state groups to a word line connected to the pre-programmed memory cells in the recovery read mode.
제 3 항에 있어서,
상기 복구 독출 모드에서 상기 멀티 페이지 데이터를 독출하기 위해 상기 워드 라인으로 인가되는 독출 전압 레벨들은 상기 일반 독출 모드에서 상기 멀티 페이지 데이터를 독출하기 위해 상기 워드 라인으로 인가되는 독출 전압 레벨들과 서로 다른 방법.
4. The method of claim 3,
The read voltage levels applied to the word line to read the multi-page data in the recovery read mode are different from the read voltage levels applied to the word line to read the multi-page data in the normal read mode. .
제 3 항에 있어서,
상기 상태 그룹들 중 제1 상태 그룹에 대응하는 독출 전압 레벨들은 상기 상태 그룹들 중 제2 상태 그룹에 대응하는 독출 전압 레벨들과 서로 다른 방법.
4. The method of claim 3,
The read voltage levels corresponding to the first state group of the state groups are different from the read voltage levels corresponding to the second state group of the state groups.
제 3 항에 있어서,
상기 복구 독출 모드에서 하나의 독출 커맨드에 따라 상기 워드 라인으로 인가되는 독출 전압 레벨들의 수는 상기 일반 독출 모드에서 하나의 독출 커맨드에 따라 상기 워드 라인으로 인가되는 독출 전압 레벨들의 수보다 큰 방법.
4. The method of claim 3,
The number of read voltage levels applied to the word line according to one read command in the recovery read mode is greater than the number of read voltage levels applied to the word line according to one read command in the normal read mode.
제 3 항에 있어서,
상기 워드 라인에 인가되는 상기 독출 전압들의 레벨들은 상기 워드 라인의 인접 워드 라인에 연결된 메모리 셀이 프리 프로그램 상태인지 여부에 따라 조절되는 방법.
4. The method of claim 3,
Levels of the read voltages applied to the word line are adjusted according to whether a memory cell connected to an adjacent word line of the word line is in a pre-programmed state.
제 1 항에 있어서,
상기 재 프로그램을 위한 프로그램 검증 전압은 상기 프리 프로그램을 위한 프로그램 검증 전압보다 높은 방법.
The method of claim 1,
The program verification voltage for the reprogramming is higher than the program verification voltage for the preprogramming.
제 1 항에 있어서,
상기 상태 그룹 코드는 상기 메모리 컨트롤러로부터의 상태 그룹 코드 생성 명령에 따라 상기 불휘발성 메모리 장치에서 생성되는 방법.
The method of claim 1,
The state group code is generated in the nonvolatile memory device according to a state group code generation command from the memory controller.
제 1 항에 있어서,
상기 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계는 상기 불휘발성 메모리 장치의 각 메모리 셀에 하나의 데이터 비트를 저장하는 SLC(Single Level Cell) 모드로 상기 상태 그룹 코드를 프로그램하는 단계를 포함하는 방법.
The method of claim 1,
The step of backing up the status group code to the nonvolatile memory device includes programming the status group code in a single level cell (SLC) mode in which one data bit is stored in each memory cell of the nonvolatile memory device. How to.
제 1 항에 있어서,
상기 멀티 페이지 데이터를 재 프로그램하는 단계는,
상기 프리 프로그램된 메모리 셀들로부터 독출된 상기 멀티 페이지 데이터의 에러를 정정하여 멀티 페이지 데이터를 복구하는 단계; 및
상기 메모리 셀들에 상기 복구된 멀티 페이지 데이터를 재 프로그램하는 단계를 포함하는 방법.
The method of claim 1,
The step of reprogramming the multi-page data includes:
recovering multi-page data by correcting errors in the multi-page data read from the pre-programmed memory cells; and
and reprogramming the recovered multi-page data into the memory cells.
메모리 컨트롤러 및 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법에 있어서,
상기 메모리 컨트롤러의 멀티 페이지 데이터를 상기 불휘발성 메모리 장치의 메모리 셀들에 프리 프로그램하는 단계;
상기 멀티 페이지 데이터에 기초하여 상기 멀티 페이지 데이터의 비트들보다 적은 비트들을 가지는 상태 그룹 코드를 생성하는 단계;
상기 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계;
상기 상태 그룹 코드가 백업된 이후에 서든 파워 오프가 발생하는 경우, 전원 복구 후에 상기 백업된 상태 그룹 코드에 기초하여 상기 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계;
상기 독출된 멀티 페이지 데이터를 기반으로 상기 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계; 및
상기 상태 그룹 코드가 백업된 이후에 상기 서든 파워 오프가 발생하지 않은 경우, 상기 메모리 컨트롤러의 상기 멀티 페이지 데이터를 기반으로 상기 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계를 포함하는 방법.
A method of operating a memory system including a memory controller and a nonvolatile memory device, the method comprising:
preprogramming multi-page data of the memory controller into memory cells of the nonvolatile memory device;
generating a status group code having fewer bits than bits of the multi-page data based on the multi-page data;
backing up the state group code to the nonvolatile memory device;
reading the multi-page data from the pre-programmed memory cells based on the backed-up state group code after power recovery when a sudden power-off occurs after the state group code is backed up;
reprogramming the multi-page data in the memory cells based on the read multi-page data; and
and reprogramming the multi-page data in the memory cells based on the multi-page data of the memory controller when the sudden power-off does not occur after the state group code is backed up.
제 12 항에 있어서,
상기 상태 그룹 코드는 상기 프리 프로그램된 메모리 셀들 각각에 대응하는 상태 그룹 데이터를 포함하고,
상기 상태 그룹 데이터는 각각이 서로 다른 문턱 전압 분포들을 포함하는 상태 그룹들 중 하나를 나타내는 방법.
13. The method of claim 12,
The state group code includes state group data corresponding to each of the pre-programmed memory cells,
wherein the state group data represents one of the state groups each comprising different threshold voltage distributions.
제 13 항에 있어서,
상기 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계는,
상기 불휘발성 메모리 장치를 일반 독출 모드로부터 복구 독출 모드로 변경하는 단계; 및
상기 복구 독출 모드에서 상기 프리 프로그램된 메모리 셀들에 연결된 워드 라인에 상기 상태 그룹들 각각에 대응하는 독출 전압들을 인가하는 단계를 포함하는 방법.
14. The method of claim 13,
Reading the multi-page data from the pre-programmed memory cells includes:
changing the nonvolatile memory device from a normal read mode to a recovery read mode; and
and applying read voltages corresponding to each of the state groups to a word line connected to the preprogrammed memory cells in the recovery read mode.
제 14 항에 있어서,
상기 복구 독출 모드에서 상기 멀티 페이지 데이터를 독출하기 위해 상기 워드 라인으로 인가되는 독출 전압 레벨들은 상기 일반 독출 모드에서 상기 멀티 페이지 데이터를 독출하기 위해 상기 워드 라인으로 인가되는 독출 전압 레벨들과 서로 다른 방법.
15. The method of claim 14,
The read voltage levels applied to the word line to read the multi-page data in the recovery read mode are different from the read voltage levels applied to the word line to read the multi-page data in the normal read mode. .
제 14 항에 있어서,
상기 상태 그룹들 중 제1 상태 그룹에 대응하는 독출 전압 레벨들은 상기 상태 그룹들 중 제2 상태 그룹에 대응하는 독출 전압 레벨들과 서로 다른 방법.
15. The method of claim 14,
The read voltage levels corresponding to the first state group of the state groups are different from the read voltage levels corresponding to the second state group of the state groups.
제 14 항에 있어서,
상기 복구 독출 모드에서 하나의 독출 커맨드에 따라 상기 워드 라인으로 인가되는 독출 전압 레벨들의 수는 상기 일반 독출 모드에서 하나의 독출 커맨드에 따라 상기 워드 라인으로 인가되는 독출 전압 레벨들의 수보다 큰 방법.
15. The method of claim 14,
The number of read voltage levels applied to the word line according to one read command in the recovery read mode is greater than the number of read voltage levels applied to the word line according to one read command in the normal read mode.
메모리 컨트롤러 및 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법에 있어서,
상기 메모리 컨트롤러의 멀티 페이지 데이터를 상기 불휘발성 메모리 장치의 제1 메모리 셀들에 프리 프로그램하는 단계;
상기 멀티 페이지 데이터에 기초하여 상기 멀티 페이지 데이터의 비트들보다 적은 비트들을 가지는 상태 그룹 코드를 생성하는 단계;
상기 제1 메모리 셀들이 프리 프로그램된 이후에 서든 파워 오프가 발생하는 경우, 상기 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계;
상기 서든 파워 오프로부터의 전원 복구 후에, 상기 백업된 상태 그룹 코드에 기초하여 상기 프리 프로그램된 제1 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계;
상기 독출된 멀티 페이지 데이터를 기반으로 상기 불휘발성 메모리 장치의 제2 메모리 셀들에 상기 멀티 페이지 데이터를 프리 프로그램하는 단계;
상기 제2 메모리 셀들에 상기 멀티 페이지 데이터를 프리 프로그램한 이후에 상기 독출된 멀티 페이지 데이터를 기반으로 상기 제2 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계; 및
상기 제1 메모리 셀들이 프리 프로그램된 이후에 상기 서든 파워 오프가 발생하지 않은 경우, 상기 메모리 컨트롤러의 상기 멀티 페이지 데이터를 기반으로 상기 제1 메모리 셀들에 상기 멀티 페이지 데이터를 재 프로그램하는 단계를 포함하는 방법.
A method of operating a memory system including a memory controller and a nonvolatile memory device, the method comprising:
pre-programming the multi-page data of the memory controller into first memory cells of the nonvolatile memory device;
generating a status group code having fewer bits than bits of the multi-page data based on the multi-page data;
backing up the state group code to the nonvolatile memory device when a sudden power-off occurs after the first memory cells are preprogrammed;
reading the multi-page data from the pre-programmed first memory cells based on the backed-up state group code after power recovery from the sudden power-off;
pre-programming the multi-page data in second memory cells of the nonvolatile memory device based on the read multi-page data;
reprogramming the multi-page data in the second memory cells based on the read multi-page data after pre-programming the multi-page data in the second memory cells; and
and reprogramming the multi-page data in the first memory cells based on the multi-page data of the memory controller when the sudden power-off does not occur after the first memory cells are pre-programmed. Way.
제 18 항에 있어서,
상기 상태 그룹 코드는 상기 프리 프로그램된 제1 메모리 셀들 각각에 대응하는 상태 그룹 데이터를 포함하고,
상기 상태 그룹 데이터는 각각이 서로 다른 문턱 전압 분포들을 포함하는 상태 그룹들 중 하나를 나타내는 방법.
19. The method of claim 18,
The state group code includes state group data corresponding to each of the pre-programmed first memory cells,
wherein the state group data represents one of the state groups each comprising different threshold voltage distributions.
제 19 항에 있어서,
상기 프리 프로그램된 제1 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계는,
상기 불휘발성 메모리 장치를 일반 독출 모드로부터 복구 독출 모드로 변경하는 단계; 및
상기 복구 독출 모드에서 상기 제1 메모리 셀들에 연결된 워드 라인으로 상기 상태 그룹들 각각에 대응하는 독출 전압들을 인가하는 단계를 포함하는 방법.
20. The method of claim 19,
Reading the multi-page data from the pre-programmed first memory cells may include:
changing the nonvolatile memory device from a normal read mode to a recovery read mode; and
and applying read voltages corresponding to each of the state groups to a word line connected to the first memory cells in the recovery read mode.
KR1020200068602A 2019-11-26 2020-06-05 Operating method of memory system including memory controller and nonvolatile memory device KR20210065022A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US17/077,200 US11309032B2 (en) 2019-11-26 2020-10-22 Operating method of memory system including memory controller and nonvolatile memory device
CN202011293965.6A CN112951301A (en) 2019-11-26 2020-11-18 Operation method of storage system
EP20209855.4A EP3832468A1 (en) 2019-11-26 2020-11-25 Operating method of memory system including memory controller and nonvolatile memory device
US17/698,056 US11915763B2 (en) 2019-11-26 2022-03-18 Operating method of memory system including memory controller and nonvolatile memory device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190153551 2019-11-26
KR20190153551 2019-11-26

Publications (1)

Publication Number Publication Date
KR20210065022A true KR20210065022A (en) 2021-06-03

Family

ID=76396766

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200068602A KR20210065022A (en) 2019-11-26 2020-06-05 Operating method of memory system including memory controller and nonvolatile memory device

Country Status (1)

Country Link
KR (1) KR20210065022A (en)

Similar Documents

Publication Publication Date Title
JP6312698B2 (en) System and method for recovering lower page data in a solid state drive
EP3832468A1 (en) Operating method of memory system including memory controller and nonvolatile memory device
KR20200076886A (en) Storage device and operating method thereof
US20160118110A1 (en) Simultaneous Multi-Page Commands for Non-Volatile Memories
US20230117364A1 (en) Sequential wordline erase verify schemes
KR20220013661A (en) Memory system, memory device, and operating method of memory device
US11561725B2 (en) System and operating method thereof
US11315650B2 (en) Memory system, memory controller, and method of operating memory system
US20220066651A1 (en) Asychronous power loss handling using dummy writes in memory devices
CN114356208A (en) Memory system and operating method thereof
US11664079B2 (en) Intervallic dynamic start voltage and program verify sampling in a memory sub-system
US20230176741A1 (en) Validating read level voltage in memory devices
CN113806254B (en) Memory system, memory controller and operation method of memory system
KR20210065022A (en) Operating method of memory system including memory controller and nonvolatile memory device
US20230141554A1 (en) Memory device, memory system, and method of operating the memory system
US11848054B2 (en) Memory device determining precharge time based on a number of times that a program voltage is applied to word line and operating method of memory device
US11960359B2 (en) Memory system, memory controller and operating method of memory system
US11756612B2 (en) All levels dynamic start voltage programming of a memory device in a memory sub-system
US20230186995A1 (en) Performing data integrity checks to identify defective wordlines
US20240062840A1 (en) Read verification cadence and timing in memory devices
US11275524B2 (en) Memory system, memory controller, and operation method of memory system
US20240086104A1 (en) Data sensing with error correction
US20230393736A1 (en) Managing quad-level cell compaction strategy of a memory device
US20230289260A1 (en) Controller and operating method of the controller for determining reliability data based on syndrome weight
US20220415414A1 (en) Partial block erase operations in memory devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal