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 PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 536
- 238000011017 operating method Methods 0.000 title abstract description 5
- 230000008672 reprogramming Effects 0.000 claims abstract description 30
- 238000011084 recovery Methods 0.000 claims description 102
- 238000000034 method Methods 0.000 claims description 43
- 238000009826 distribution Methods 0.000 claims description 35
- 238000003860 storage Methods 0.000 description 63
- 239000000872 buffer Substances 0.000 description 59
- 230000004044 response Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 18
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 101000906005 Fasciola hepatica Glutathione S-transferase class-mu 26 kDa isozyme 1 Proteins 0.000 description 2
- 102100036534 Glutathione S-transferase Mu 1 Human genes 0.000 description 2
- 101000851788 Homo sapiens Eukaryotic peptide chain release factor GTP-binding subunit ERF3A Proteins 0.000 description 2
- 101001071694 Homo sapiens Glutathione S-transferase Mu 1 Proteins 0.000 description 2
- 102100029563 Somatostatin Human genes 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101000641216 Aquareovirus G (isolate American grass carp/USA/PB01-155/-) Non-structural protein 4 Proteins 0.000 description 1
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 1
- 101100058961 Arabidopsis thaliana CALS2 gene Proteins 0.000 description 1
- 101000927946 Homo sapiens LisH domain-containing protein ARMC9 Proteins 0.000 description 1
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 1
- 102100036882 LisH domain-containing protein ARMC9 Human genes 0.000 description 1
- 101100287040 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ARG82 gene Proteins 0.000 description 1
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 101150064834 ssl1 gene Proteins 0.000 description 1
- 101150062870 ssl3 gene Proteins 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/143—Detection 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
Description
본 발명은 반도체 장치에 관한 것으로써, 좀 더 상세하게는 불휘발성 메모리 장치에 데이터를 프로그램하는 동안 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
메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)의 전반적인 동작을 제어할 수 있다. 구체적으로, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)를 제공하여 불휘발성 메모리 장치(200)를 제어할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(100)는 외부의 호스트 장치로부터의 요청에 응답하여 불휘발성 메모리 장치(200)에 데이터(DATA)를 프로그램하도록 또는 불휘발성 메모리 장치(200)로부터 데이터(DATA)를 독출하도록 불휘발성 메모리 장치(200)를 제어할 수 있다.The
예시적인 실시 예에서, 커맨드(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
메모리 컨트롤러(100)는 파워 감지기(110), 프로그램 매니저(120), 및 버퍼 메모리(130)를 포함할 수 있다. 파워 감지기(110)는 메모리 컨트롤러(100)의 파워 상태를 감지할 수 있다. 예를 들어, 파워 감지기(110)는 메모리 컨트롤러(100)로 제공되는 전압으로부터 예기치 않게 발생되는 SPO를 감지하고, SPO로부터의 전원 복구를 감지할 수 있다. 파워 감지기(110)는 메모리 컨트롤러(100)로 제공되는 전압이 기준 전압 미만이 되는 경우, SPO가 발생된 것으로 판별할 수 있다. 파워 감지기(110)는 메모리 컨트롤러(100)로 제공되는 전압이 기준 전압을 초과하는 경우, 전원 복구가 이루어진 것으로 판별할 수 있다.The
프로그램 매니저(120)는 불휘발성 메모리 장치(200)의 프로그램 동작을 관리할 수 있다. 프로그램 매니저(120)는 프로그램 동작을 위해 미리 정해진 스케줄에 따라 제어 신호(CTRL), 커맨드(CMD), 어드레스(ADDR), 및/또는 데이터(DATA)를 불휘발성 메모리 장치(200)로 제공할 수 있다. 예시적인 실시 예에서, 프로그램 동작 중에 SPO가 발생하는 경우, 프로그램 매니저(120)는 프로그램 동작이 정상적으로 완료될 수 있도록 미리 정해진 스케줄에 따라 제어 신호(CTRL), 커맨드(CMD), 어드레스(ADDR), 및/또는 데이터(DATA)를 불휘발성 메모리 장치(200)로 제공할 수 있다.The
버퍼 메모리(130)는 데이터를 일시적으로 저장할 수 있다. 예시적인 실시 예에서, 버퍼 메모리(130)는 프로그램 동작에서 불휘발성 메모리 장치(200)로 제공될 데이터(DATA)를 일시적으로 저장하거나, 또는 독출 동작에서 불휘발성 메모리 장치(200)로부터 제공된 데이터(DATA)를 일시적으로 저장할 수 있다.The
불휘발성 메모리 장치(200)는 메모리 컨트롤러(100)의 제어에 따라 동작할 수 있다. 예시적인 실시 예에서, 불휘발성 메모리 장치(200)는 메모리 컨트롤러(100)의 제어에 따라 저장된 데이터(DATA)를 출력하거나, 또는 메모리 컨트롤러(100)로부터 제공된 데이터(DATA)를 저장할 수 있다.The
불휘발성 메모리 장치(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
예시적인 실시 예에서, 메모리 셀 어레이(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
본 발명의 실시 예들에 따르면, 메모리 시스템(10)은 멀티 비트 데이터에 대한 프로그램 동작 중에 SPO가 발생하는 경우, 멀티 비트 데이터의 양보다 적은 양의 데이터를 백업하고, 전원 복구 후에 백업된 데이터를 기반으로 멀티 비트 데이터를 복구할 수 있다. 이에 따라, 데이터 백업에 이용되는 보조 전원 및 메모리 용량이 감소될 수 있다. 이하에서는, 멀티 비트 데이터에 대한 프로그램 동작 중에 SPO가 발생하는 경우, 효율적으로 프로그램을 완료하기 위한 본 발명의 실시 예들이 자세하게 설명될 것이다.According to embodiments of the present invention, when an SPO occurs during a program operation for multi-bit data, the
도 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
프리 프로그램된 메모리 셀들의 문턱 전압 분포들은 복수의 상태 그룹들로 분할될 수 있다. 예를 들어, 도 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
SPO로부터 전원이 복구되는 경우, 메모리 시스템(10)은 백업된 상태 그룹 데이터에 기초하여 멀티 비트 데이터를 복구할 수 있다. 예를 들어, 메모리 시스템(10)은 상태 그룹 데이터에 기초하여 프리 프로그램된 메모리 셀로부터 멀티 비트 데이터를 독출할 수 있다. 도 3에 도시된 바와 같이, 프리 프로그램된 메모리 셀들의 문턱 전압 분포들에 중첩된 영역이 존재하더라도 상태 그룹 데이터에 기초하여 상태 그룹 별로 독출 동작이 수행되는 경우, 중첩된 영역이 어느 문턱 전압 분포에 속하는지 구분될 수 있다. 이에 따라, 복구된 멀티 비트 데이터의 신뢰성이 향상될 수 있다.When power is restored from the SPO, the
메모리 시스템(10)은 복구된 멀티 비트 데이터를 기반으로 멀티 비트 데이터를 메모리 셀에 재 프로그램(또는, 파인 프로그램(fine-program))할 수 있다. 재 프로그램 동작에 따라 멀티 비트 데이터에 대한 프로그램 동작이 완료될 수 있다. 도 3에 도시된 바와 같이, 재 프로그램 동작이 수행됨으로써 메모리 셀들의 문턱 전압 분포의 폭이 좁혀질 수 있다. 재 프로그램에 따른 메모리 셀의 문턱 전압 상승이 프리 프로그램에 따른 문턱 전압 상승에 비하여 작으므로, 재 프로그램에 따른 문턱 전압 분포는 커플링의 영향을 적게 받을 수 있다. 따라서, 재 프로그램 동작에 따라 메모리 셀들은 좁은 문턱 전압 분포들을 가질 수 있고, 문턱 전압 분포들의 중첩된 영역이 감소될 수 있다. 이에 따라, 재 프로그램된 메모리 셀로부터 멀티 비트 데이터가 독출되는 경우, 멀티 비트 데이터의 신뢰성이 향상될 수 있다.The
예시적인 실시 예에서, 멀티 비트 데이터를 재 프로그램하기 위한 재 프로그램 검증 전압은 멀티 비트 데이터를 프리 프로그램하기 위한 프리 프로그램 검증 전압보다 높을 수 있다. 예를 들어, 원하는 문턱 전압보다 낮은 문턱 전압에 대응하는 프리 프로그램 검증 전압을 이용하여 프리 프로그램 동작이 수행되고, 재 프로그램 동작 시 프리 프로그램 검증 전압보다 높은 재 프로그램 검증 전압을 이용하여 메모리 셀이 원하는 문턱 전압으로 프로그램될 수 있다.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
상술한 바와 같이, 메모리 시스템(10)은 SPO 상황에서 멀티 비트 데이터에 대응하는 상태 그룹 데이터를 백업하고, 백업된 상태 그룹 데이터에 기초하여 멀티 비트 데이터에 대한 프로그램 동작을 완료할 수 있다. 이 경우, 상태 그룹 데이터의 비트 개수가 멀티 비트 데이터의 비트 개수보다 작으므로, 멀티 비트 데이터를 직접 백업하는 동작과 비교하여 백업 동작에 요구되는 보조 전원과 메모리 용량이 감소될 수 있다.As described above, the
이하에서는, 도 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
파워 감지기(110)는 메모리 컨트롤러(100)로 제공되는 전압을 감지함으로써 SPO 발생을 감지하거나, 또는 SPO로부터의 전원 복구를 감지할 수 있다. 예를 들어, 파워 감지기(110)는 전압 센서로 구현될 수 있다.The
프로그램 매니저(120)는 멀티 비트 데이터에 대한 프로그램 동작을 관리할 수 있다. 예를 들어, 프로그램 매니저(120)는, 도 2를 참조하여 설명한 바와 같이, 프리 프로그램 및 재 프로그램을 통해 멀티 비트 데이터에 대한 프로그램 동작이 수행되도록 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)를 생성할 수 있다. 멀티 비트 데이터에 대한 프로그램 동작 중에 SPO가 감지되는 경우, 프로그램 매니저(120)는 미리 정해진 스케줄에 따라 멀티 비트 데이터에 대한 프로그램 동작이 완료되도록 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)를 생성할 수 있다.The
예시적인 실시 예에서, 프로그램 매니저(120)는 멀티 비트 데이터가 프로그램될 어드레스 정보 및 상태 그룹 데이터가 백업될 어드레스 정보를 관리할 수 있다. 어드레스 정보는 버퍼 메모리(130) 또는 메모리 컨트롤러(100) 내부의 별도의 메모리에 저장될 수 있다. SPO가 발생하는 경우, 이러한 어드레스 정보는 상태 그룹 데이터와 함께 불휘발성 메모리 장치(200)에 백업될 수 있다.In an exemplary embodiment, the
예시적인 실시 예에서, 프로그램 매니저(120)는 소프트웨어 또는 FTL(Flash Translation Layer)과 같은 펌웨어로 구현될 수 있다. 이 경우, 프로그램 매니저(120)는 메모리 컨트롤러(100) 내의 메모리(예를 들어, 버퍼 메모리(130) 또는 별도의 메모리)에 로딩되어 프로세서(140)에 의해 실행될 수 있다. 그러나 본 발명이 이에 한정되는 것은 아니며, 프로그램 매니저(120)는 하드웨어로 구현될 수 있다. In an exemplary embodiment, the
버퍼 메모리(130)는 호스트로부터 제공되거나, 메모리 컨트롤러(100) 내부에서 생성되거나, 또는 불휘발성 메모리 장치(200)로부터 제공되는 데이터를 일시적으로 저장할 수 있다. 예를 들어, 버퍼 메모리(130)는 프로그램을 수행하는 동안 불휘발성 메모리 장치(200)로 제공할 멀티 비트 데이터를 일시적으로 저장할 수 있다. 프로그램 동작 중에 SPO가 발생하는 경우, 버퍼 메모리(130)에 저장된 멀티 비트 데이터가 소실될 수 있다. SPO로부터 전원이 복구된 후에, 불휘발성 메모리 장치(200)로부터 독출된 멀티 비트 데이터가 버퍼 메모리(130)에 일시적으로 저장될 수 있다. 예를 들어, 버퍼 메모리(130)는 DRAM 또는 SRAM으로 구현될 수 있으나, 본 발명이 이에 한정되는 것은 아니다.The
프로세서(140)는 메모리 컨트롤러(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(140)는 프로그램 매니저(120)를 구동시킬 수 있다. 이에 따라, 멀티 비트 데이터에 대한 프로그램 동작이 수행될 수 있다.The
ECC 회로(150)는 불휘발성 메모리 장치(200)로부터 독출된 데이터의 에러를 정정할 수 있다. 예를 들어, ECC 회로(150)는 SPO로부터 전원이 복구되는 경우, 불휘발성 메모리 장치(200)로부터 독출된 멀티 비트 데이터의 에러를 정정할 수 있다. 에러 정정된 멀티 비트 데이터를 기반으로 재 프로그램이 수행되는 경우, 불휘발성 메모리 장치(200)에 프로그램된 멀티 비트 데이터에 대한 신뢰성이 향상될 수 있다.The
호스트 인터페이스(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
메모리 인터페이스(170)는 메모리 컨트롤러(100)와 불휘발성 메모리 장치(200) 사이의 물리적 연결을 제공할 수 있다. 예를 들어, 제어 신호(CTRL), 커맨드(CMD), 어드레스(ADDR), 및 데이터(DATA) 등이 메모리 인터페이스(170)를 통해 메모리 컨트롤러(100)와 불휘발성 메모리 장치(200) 사이에서 송수신될 수 있다. 버스(180)는 메모리 컨트롤러(100)의 구성 요소들 사이에 채널을 제공하도록 구성될 수 있다.The
도 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
메모리 셀 어레이(210)는 복수의 메모리 블록들(BLK1 내지 BLKz)을 포함할 수 있고(z는 양의 정수), 복수의 메모리 블록들(BLK1 내지 BLKz) 각각은 복수의 메모리 셀들을 포함할 수 있다. 메모리 블록들(BLK1 내지 BLKz)은 하나의 메모리 플레인(plane)에 포함될 수 있으나, 본 발명이 이에 한정되는 것은 아니다. 메모리 셀 어레이(210)는 비트 라인들(BL)을 통해 페이지 버퍼부(220)에 연결될 수 있고, 워드 라인들(WL), 스트링 선택 라인들(SSL), 및 그라운드 선택 라인들(GSL)을 통해 로우 디코더(250)에 연결될 수 있다.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
페이지 버퍼부(220)는 복수의 페이지 버퍼들(PB1 내지 PBn)을 포함할 수 있고(n은 3 이상의 정수), 복수의 페이지 버퍼들(PB1 내지 PBn)은 복수의 비트 라인들(BL)을 통해 메모리 셀들과 각각 연결될 수 있다. 페이지 버퍼부(220)는 컬럼 어드레스(Y-ADDR)에 응답하여 비트 라인들(BL) 중 적어도 하나의 비트 라인을 선택할 수 있다. 페이지 버퍼부(220)는 동작 모드에 따라 기입 드라이버 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 프로그램 동작 시, 페이지 버퍼부(220)는 선택된 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 인가할 수 있다. 독출 동작 시, 페이지 버퍼부(220)는 선택된 비트 라인의 전류 또는 전압을 감지하여 메모리 셀에 저장된 데이터를 감지할 수 있다. 페이지 버퍼들(PB1 내지 PBn) 각각에 대한 상세한 설명은 도 13을 참조하여 후술하기로 한다.The
제어 로직 회로(230)는 불휘발성 메모리 장치(200) 내의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(230)는 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)에 응답하여 메모리 셀 어레이(210)에 데이터를 프로그램하거나, 메모리 셀 어레이(210)로부터 데이터를 독출하거나, 또는 메모리 셀 어레이(210)에 저장된 데이터를 소거하기 위한 각종 제어 신호들을 출력할 수 있다. 예를 들어, 제어 로직 회로(230)는 전압 제어 신호(CTRL_vol), 로우 어드레스(X-ADDR), 및 컬럼 어드레스(Y-ADDR)를 출력할 수 있다.The
예시적인 실시 예에서, 제어 로직 회로(230)는 수신되는 제어 신호(CTRL), 커맨드(CMD), 및/또는 어드레스(ADDR)에 따라 멀티 비트 데이터를 프로그램하기 위한 제어 신호들을 출력할 수 있다. 예를 들어, 제어 로직 회로(230)는 프리 프로그램 및 재 프로그램을 위한 제어 신호들을 출력하거나, 상태 그룹 데이터를 백업하기 위한 제어 신호들을 출력하거나, 또는 프리 프로그램된 멀티 비트 데이터를 독출하기 위한 제어 신호들을 출력할 수 있다.In an exemplary embodiment, the
전압 생성기(240)는 전압 제어 신호(CTRL_vol)를 기반으로 프로그램, 독출, 및 소거 동작들을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 예를 들어, 전압 생성기(240)는 워드 라인 전압(VWL)으로서 프로그램 전압, 독출 전압, 및 프로그램 검증 전압 등을 생성할 수 있다. 예를 들어, 프로그램 전압은 ISPP(Incremental Step Pulse Program) 방식으로 생성될 수 있다.The
멀티 비트 데이터에 대한 프로그램 동작에서, 전압 생성기(240)는 프리 프로그램을 위한 프리 프로그램 검증 전압을 생성하고, 재 프로그램을 위한 재 프로그램 검증 전압을 생성할 수 있다. 이 경우, 프리 프로그램 검증 전압은 재 프로그램 검증 전압보다 작을 수 있다.In a program operation for multi-bit data, the
로우 디코더(250)는 로우 어드레스(X-ADDR)에 응답하여 복수의 워드 라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다. 예를 들어, 프로그램 동작 시, 로우 디코더(250)는 선택된 워드 라인으로 프로그램 전압 및 프로그램 검증 전압을 인가하고, 독출 동작 시, 선택된 워드 라인으로 독출 전압을 인가할 수 있다.The
도 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
도 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
S130 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S140 단계에서, 메모리 시스템(10)은 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. 이 경우, 상태 그룹 코드는 멀티 페이지 데이터가 프리 프로그램된 메모리 플레인과 동일한 메모리 플레인에 백업될 수 있으나, 본 발명이 이에 한정되는 것은 아니다.In step S130 , the
S150 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 상태 그룹 코드에 기초하여 프리 프로그램된 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. 불휘발성 메모리 장치(200)는 상태 그룹 코드를 기반으로 독출 동작을 수행하기 위해 일반적인 독출 동작과 다른 방식으로 멀티 페이지 데이터를 독출할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 일반적인 독출 동작에서 이용되는 독출 전압 레벨과 다른 독출 전압 레벨을 이용하여 멀티 페이지 데이터를 독출할 수 있다.In operation S150 , the
S160 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 이 경우, 재 프로그램된 메모리 셀들은 프리 프로그램된 메모리 셀들과 동일한 메모리 셀들일 수 있다.In operation S160 , the
프리 프로그램된 이후 SPO가 발생하지 않는 경우, S170 단계에서, 메모리 시스템(10)은 상태 그룹 코드를 백업하지 않고 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. SPO가 발생하지 않음에 따라 버퍼 메모리(130)의 멀티 페이지 데이터가 유지될 수 있으므로, 메모리 시스템(10)은 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 멀티 페이지 데이터를 재 프로그램할 수 있다.If SPO does not occur after preprogramming, in step S170 , the
도 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
이하에서는, 도 9 내지 도 10을 참조하여, SPO 발생 시 메모리 시스템(10)의 동작 방법들이 자세하게 설명될 것이다.Hereinafter, operation methods of the
도 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
도 9를 참조하면, S210 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 멀티 페이지 데이터에 대한 프리 프로그램 명령을 전송할 수 있다. 메모리 컨트롤러(100)는 프리 프로그램 명령과 함께 멀티 페이지 데이터를 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 멀티 페이지 데이터가 4 페이지인 경우, 메모리 컨트롤러(100)는 멀티 페이지 데이터가 QLC 모드로 프리 프로그램되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다.Referring to FIG. 9 , in operation S210 , the
S220 단계에서, 불휘발성 메모리 장치(200)는 프리 프로그램 명령에 응답하여 멀티 페이지 데이터를 프리 프로그램할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 프리 프로그램 검증 전압을 기반으로 어드레스(ADDR)가 가리키는 메모리 셀들에 멀티 페이지 데이터를 프리 프로그램할 수 있다.In operation S220 , the
S230 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 상태 그룹 코드 생성 명령을 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 상태 그룹 코드 생성을 위한 별도의 커맨드(CMD)를 불휘발성 메모리 장치(200)로 전송할 수 있다. S240 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 생성 명령에 응답하여 상태 그룹 코드를 생성할 수 있다. 불휘발성 메모리 장치(200)는 멀티 페이지 데이터를 기반으로 상태 그룹 코드를 생성할 수 있다.In operation S230 , the
예시적인 실시 예에서, 불휘발성 메모리 장치(200)는 도 5의 페이지 버퍼부(220)에 로딩된 멀티 페이지 데이터의 각각의 멀티 비트 데이터에 기초하여 상태 그룹 데이터를 생성할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 멀티 비트 데이터의 비트들에 대한 논리 연산을 통해 상태 그룹 데이터를 생성할 수 있다. 생성된 상태 그룹 데이터는 페이지 버퍼부(220)에 일시적으로 저장될 수 있다.In an exemplary embodiment, the
S250 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 상태 그룹 코드 출력 명령을 전송할 수 있다. S260 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 출력 명령에 응답하여 상태 그룹 코드를 메모리 컨트롤러(100)로 전송할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 페이지 버퍼부(220)에 일시적으로 저장된 상태 그룹 코드를 출력할 수 있다. 불휘발성 메모리 장치(200)로부터 제공된 상태 그룹 코드는 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장될 수 있다. 실시 예에 따라, S250 단계는 생략될 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 상태 그룹 코드 생성 명령에 응답하여 상태 그룹 코드를 생성하고, 생성된 상태 그룹 코드를 메모리 컨트롤러(100)로 전송할 수 있다.In operation S250 , the
S270 단계에서, 메모리 컨트롤러(100)는 SPO를 감지할 수 있다. SPO 감지에 따라, S280 단계에서, 메모리 컨트롤러(100)는 상태 그룹 코드 백업 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 메모리 컨트롤러(100)는 상태 그룹 코드 백업 명령과 함께 상태 그룹 코드를 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 상태 그룹 코드가 SLC 모드로 프로그램되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다. 이 경우, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)가 SLC 모드로 변경되도록 불휘발성 메모리 장치(200)로 별도의 커맨드(CMD)를 전송할 수 있으나, 본 발명이 이에 한정되는 것은 아니다.In step S270 , the
S290 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 백업 명령에 응답하여 상태 그룹 코드를 백업할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 어드레스(ADDR)에 대응하는 메모리 셀들에 SLC 모드로 상태 그룹 코드를 프로그램할 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 불휘발성 메모리 장치(200)는 메모리 컨트롤러(100)로부터의 커맨드(CMD)에 응답하여 MLC 모드로 상태 그룹 코드를 프로그램할 수 있다.In operation S290 , the
도 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
도 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
도 9를 참조하면, S310 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 멀티 페이지 데이터에 대한 프리 프로그램 명령을 전송할 수 있다. S320 단계에서, 불휘발성 메모리 장치(200)는 프리 프로그램 명령에 응답하여 메모리 셀들에 멀티 페이지 데이터를 프리 프로그램할 수 있다.Referring to FIG. 9 , in step S310 , the
S330 단계에서, 메모리 컨트롤러(100)는 상태 그룹 코드를 생성할 수 있다. 메모리 컨트롤러(100)는 멀티 페이지 데이터를 기반으로 상태 그룹 코드를 생성할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(100)는 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 상태 그룹 코드를 생성할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 멀티 비트 데이터의 비트들에 대한 로직 연산을 통해 상태 그룹 데이터를 생성할 수 있다. 생성된 상태 그룹 데이터는 버퍼 메모리(130)에 일시적으로 저장될 수 있다.In operation S330 , the
S340 단계에서, 메모리 컨트롤러(100)는 SPO를 감지할 수 있다. SPO 감지에 따라, S350 단계에서, 메모리 컨트롤러(100)는 상태 그룹 코드 백업 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 메모리 컨트롤러(100)는 상태 그룹 코드 백업 명령과 함께 생성된 상태 그룹 코드를 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 상태 그룹 코드가 SLC 모드로 프로그램되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다.In step S340 , the
S360 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 백업 명령에 응답하여 상태 그룹 코드를 백업할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 어드레스(ADDR)에 대응하는 메모리 셀들에 SLC 모드로 상태 그룹 코드를 프로그램할 수 있다.In operation S360 , the
이하에서는, 도 11 내지 도 17b를 참조하여, SPO로부터 전원 복구 시 메모리 시스템(10)의 동작 방법들이 자세하게 설명될 것이다.Hereinafter, operating methods of the
도 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
S402 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 상태 그룹 코드 독출 명령을 전송할 수 있다. 메모리 컨트롤러(100)는 프리 프로그램된 메모리 셀들에 대응하는 어드레스 정보를 기반으로 상태 그룹 코드 독출 명령을 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 상태 그룹 코드가 SLC 모드로 독출되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다. 이 경우, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)가 SLC 모드로 변경되도록 불휘발성 메모리 장치(200)로 별도의 커맨드(CMD)를 전송할 수 있다.In operation S402 , the
S403 단계에서, 불휘발성 메모리 장치(200)는 상태 그룹 코드 독출 명령에 응답하여 상태 그룹 코드를 독출할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 어드레스(ADDR)에 대응하는 메모리 셀들로부터 SLC 모드로 상태 그룹 코드를 독출할 수 있다. 독출된 상태 그룹 코드는 도 5의 페이지 버퍼부(220)에 저장될 수 있다.In operation S403 , the
도 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
S404 단계에서, 메모리 컨트롤러(100)는 복구 독출 모드 변경 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 제어 신호(CTRL) 또는 커맨드(CMD)를 통해 복구 독출 모드 변경 명령을 전송할 수 있다. S405 단계에서, 불휘발성 메모리 장치(200)는 복구 독출 모드 변경 명령에 응답하여 복구 독출 모드로 변경될 수 있다. 불휘발성 메모리 장치(200)는 복구 독출 모드에서 일반 독출 모드와 다른 방식으로 독출 동작을 수행할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 복구 독출 모드에서 일반 독출 모드의 독출 전압들과 다른 독출 전압들을 이용하여 독출 동작을 수행할 수 있다.In operation S404 , the
S406 단계에서, 메모리 컨트롤러(100)는 멀티 페이지 데이터 독출 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 멀티 페이지 데이터가 QLC 모드로 독출되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다.In operation S406 , the
S407 단계에서, 불휘발성 메모리 장치(200)는 멀티 페이지 데이터 독출 명령에 응답하여 프리 프로그램된 멀티 페이지 데이터를 독출할 수 있다. 복구 독출 모드에서 불휘발성 메모리 장치(200)는 상태 그룹 코드에 기초하여 독출 동작을 수행할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 프리 프로그램된 메모리 셀들 각각에 대하여 상태 그룹 데이터에 대응하는 독출 전압들을 이용하여 프리 프로그램된 메모리 셀들 각각으로부터 멀티 비트 데이터를 독출할 수 있다. 예를 들어, 독출된 멀티 페이지 데이터는 도 5의 페이지 버퍼부(220)에 저장될 수 있다. 상태 그룹 코드에 기초한 독출 동작은 도 12 내지 도 17b를 참조하여 상세하게 설명될 것이다.In operation S407 , the
S408 단계에서, 메모리 컨트롤러(100)는 멀티 페이지 데이터 출력 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. S409 단계에서, 불휘발성 메모리 장치(200)는 멀티 페이지 데이터 출력 명령에 응답하여 독출된 멀티 페이지 데이터를 출력할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 페이지 버퍼부(220)에 저장된 멀티 페이지 데이터를 메모리 컨트롤러(100)로 전송할 수 있다. 실시 예에 따라, S408 단계는 생략될 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 멀티 페이지 데이터 독출 명령에 응답하여 독출 동작을 수행하고, 독출된 멀티 페이지 데이터를 메모리 컨트롤러(100)로 전송할 수 있다.In operation S408 , the
S410 단계에서, 메모리 컨트롤러(100)는 멀티 페이지 데이터의 에러를 정정할 수 있다. 멀티 페이지 데이터에 에러가 존재하지 않는 경우, 메모리 컨트롤러(100)는 에러 정정 동작을 수행하지 않을 수 있다. 이에 따라, 멀티 페이지 데이터가 복구될 수 있고, 복구된 멀티 페이지 데이터의 신뢰성이 향상될 수 있다. 예시적인 실시 예에서, S410 단계의 에러 정정 동작은 생략될 수 있다.In operation S410 , the
예시적인 실시 예에서, 도 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
S411 단계에서, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)로 일반 독출 모드 변경 명령을 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 제어 신호(CTRL) 또는 커맨드(CMD)를 통해 일반 독출 모드 변경 명령을 전송할 수 있다. S412 단계에서, 불휘발성 메모리 장치(200)는 일반 독출 모드 변경 명령에 응답하여 일반 독출 모드로 변경될 수 있다. 불휘발성 메모리 장치(200)는 일반 독출 모드에서 상태 그룹 코드와 관계없이 미리 설정된 독출 전압들을 이용하여 독출 동작을 수행할 수 있다.In operation S411 , the
S413 단계에서, 메모리 컨트롤러(100)는 멀티 페이지 데이터 재 프로그램 명령을 불휘발성 메모리 장치(200)로 전송할 수 있다. 메모리 컨트롤러(100)는 재 프로그램 명령과 함께 S410 단계를 통해 복구된 멀티 페이지 데이터를 불휘발성 메모리 장치(200)로 전송할 수 있다. 예를 들어, 멀티 페이지 데이터가 4 페이지들인 경우, 메모리 컨트롤러(100)는 멀티 페이지 데이터가 QLC 모드로 재 프로그램되도록 불휘발성 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송할 수 있다.In operation S413 , the
S414 단계에서, 불휘발성 메모리 장치(200)는 재 프로그램 명령에 응답하여 멀티 페이지 데이터를 재 프로그램할 수 있다. 예를 들어, 불휘발성 메모리 장치(200)는 재 프로그램 검증 전압을 기반으로 어드레스(ADDR)가 가리키는 메모리 셀들에 멀티 페이지 데이터를 프로그램할 수 있다. 재 프로그램을 위해 제공되는 어드레스(ADDR)는 프리 프로그램을 위해 제공되는 어드레스(ADDR)와 동일할 수 있다.In operation S414 , the
도 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
낸드 스트링들(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
페이지 버퍼들(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
일반 독출 모드에서, 프리 프로그램된 메모리 셀들(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
센스 래치(201)는 독출 동작 또는 프로그램 검증 동작 시, 메모리 셀에 저장된 데이터 또는 메모리 셀의 문턱 전압의 센싱 결과를 저장할 수 있다. 또한, 센스 래치(201)는 프로그램 동작 시, 비트 라인(BL)에 프로그램 비트 라인 전압 또는 프로그램 금지 전압을 인가하는 데 활용될 수 있다. The
포스 래치(202)는 프로그램 동작 시 문턱 전압 산포를 개선하기 위해 활용될 수 있다. 프로그램 동작 중 메모리 셀의 문턱 전압에 따라 포스 래치(202)에 저장된 값이 변경될 수 있고, 프로그램 동작 중 포스 래치(202)에 저장된 값에 따라 비트 라인(BL)에 인가되는 전압이 가변될 수 있다. The
상위 비트 래치(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
예시적인 실시 예에서, 데이터 래치들(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
제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
도 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
일반 독출 모드에서, 프리 프로그램된 메모리 셀들(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
예시적인 실시 예에서, 페이지 버퍼들(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
예시적인 실시 예에서, 복구 독출 모드에서 멀티 페이지 데이터를 독출하기 위해 페이지 별로 커맨드(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
낸드 스트링(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
도 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
상술한 바와 같이, 제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
S530 단계에서, 메모리 시스템(10)은 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. S540 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S550 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 상태 그룹 코드에 기초하여 프리 프로그램된 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. 예를 들어, 메모리 시스템(10)은 도 11 내지 도 17b를 참조하여 설명한 바와 같이 상태 그룹 코드에 기초하여 멀티 페이지 데이터를 독출할 수 있다.In operation S530 , the
S560 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 재 프로그램된 메모리 셀들은 프리 프로그램된 메모리 셀들과 동일한 메모리 셀들일 수 있다.In operation S560 , the
프리 프로그램된 이후 SPO가 발생하지 않는 경우, S570 단계에서, 메모리 시스템(10)은 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 메모리 시스템(10)은 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 멀티 페이지 데이터를 재 프로그램할 수 있다.When the SPO does not occur after preprogramming, in operation S570 , the
도 18의 실시 예에 따르면, 메모리 시스템(10)은 SPO 발생 여부와 관계없이 상태 그룹 코드를 생성하고 백업할 수 있다. 즉, 프리 프로그램된 모든 멀티 페이지 데이터에 대하여 상태 그룹 코드가 불휘발성 메모리 장치(200)에 백업될 수 있다. 이에 따라, SPO가 발생한 상황에서 상태 그룹 코드에 대한 백업 동작이 수행되지 않으므로, 상태 그룹 코드를 백업하는데 이용되는 보조 전원의 사이즈 및 용량이 도 8의 실시 예와 비교하여 더 감소될 수 있다.According to the embodiment of FIG. 18 , the
도 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
S630 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S640 단계에서, 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. S650 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 상태 그룹 코드에 기초하여 프리 프로그램된 제1 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. 예를 들어, 메모리 시스템(10)은 도 11 내지 도 17b를 참조하여 설명한 바와 같이 상태 그룹 코드에 기초하여 멀티 페이지 데이터를 독출할 수 있다.In operation S630 , the
S660 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 제2 메모리 셀들에 멀티 페이지 데이터를 프리 프로그램할 수 있다. 이 경우, 제1 메모리 셀들과 제2 메모리 셀들은 서로 다른 메모리 블록에 포함될 수 있으나 본 발명이 이에 한정되는 것은 아니다. S670 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 제2 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다.In operation S660 , the
프리 프로그램된 이후 SPO가 발생하지 않는 경우, S680 단계에서, 메모리 시스템(10)은 제1 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 메모리 시스템(10)은 메모리 컨트롤러(100)의 버퍼 메모리(130)에 저장된 멀티 페이지 데이터를 기반으로 멀티 페이지 데이터를 재 프로그램할 수 있다.If SPO does not occur after preprogramming, in operation S680 , the
도 19의 실시 예에 따르면, 메모리 시스템(10)은 SPO로부터의 전원 복구 후에 프리 프로그램된 제1 메모리 셀들과 다른 제2 메모리 셀들에 멀티 페이지 데이터를 프로그램할 수 있다. 즉, 제1 메모리 셀들에 대한 프로그램 동작이 더 이상 수행될 수 없는 상황에서, 메모리 시스템(10)은 복구된 멀티 페이지 데이터를 기반으로 제2 메모리 셀들에 대하여 프로그램 동작을 다시 수행할 수 있다.According to the embodiment of FIG. 19 , the
도 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
S703 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S704 단계에서, 메모리 시스템(10)은 제1 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. S705 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 제1 상태 그룹 코드에 기초하여 제1 프리 프로그램된 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. S706 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 제1 프리 프로그램된 메모리 셀들에 멀티 페이지 데이터를 제2 프리 프로그램할 수 있다. 예를 들어, 제2 프리 프로그램하기 위한 프리 프로그램 검증 전압은 제1 프리 프로그램하기 위한 프리 프로그램 검증 전압보다 높을 수 있다.In step S703, the
제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
S708 단계에서, 메모리 시스템(10)은 멀티 페이지 데이터를 기반으로 제2 상태 그룹 코드를 생성할 수 있다. 예를 들어, 제2 프리 프로그램에 따른 문턱 전압 분포들의 중첩된 영역들은 제1 프리 프로그램에 따른 문턱 전압 분포들의 중첩된 영역들보다 감소될 수 있다. 이에 따라, 제2 프리 프로그램에 따른 문턱 전압 분포들을 구분하기 위한 상태 그룹들의 개수는 제1 프리 프로그램에 따른 문턱 전압 분포들을 구분하기 위한 상태 그룹들의 개수보다 작을 수 있다. 이에 따라, 제2 상태 그룹 코드의 비트들의 개수는 제1 상태 그룹 코드의 비트들의 개수보다 작을 수 있다.In operation S708 , the
S709 단계에서, 메모리 시스템(10)은 SPO 발생 여부를 판별할 수 있다. SPO가 발생하는 경우, S710 단계에서, 메모리 시스템(10)은 제2 상태 그룹 코드를 불휘발성 메모리 장치(200)에 백업할 수 있다. S711 단계에서, 메모리 시스템(10)은 전원 복구 후에 백업된 제2 상태 그룹 코드에 기초하여 제2 프리 프로그램된 메모리 셀들로부터 멀티 페이지 데이터를 독출할 수 있다. S712 단계에서, 메모리 시스템(10)은 독출된 멀티 페이지 데이터를 기반으로 제2 프리 프로그램된 메모리 셀들에 멀티 페이지 데이터를 재 프로그램할 수 있다. 예를 들어, 재 프리 프로그램하기 위한 재 프로그램 검증 전압은 제2 프리 프로그램하기 위한 프리 프로그램 검증 전압보다 높을 수 있다.In step S709 , the
제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
상술한 바와 같이, 메모리 시스템(10)은 복수의 프리 프로그램 동작들을 수행할 수 있다. 메모리 시스템(10)은 각각의 프리 프로그램 동작들에 대응하여 상태 그룹 코드(즉, 상태 그룹 데이터)를 생성할 수 있다. 이 경우, 상태 그룹 데이터의 비트 개수는 프리 프로그램 동작들에 따라 달라질 수 있고, 이전 프리 프로그램 동작에 대응하는 상태 그룹 데이터의 비트 개수는 이후 프리 프로그램 동작에 대응하는 상태 그룹 데이터의 비트 개수보다 클 수 있다.As described above, the
도 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 컨트롤러(1210)는 호스트(1100)로부터 수신된 신호(SIG)에 응답하여 메모리 장치들(1230, 1240, 1250)을 제어할 수 있다. SSD 컨트롤러(1210)는 도 1 내지 도 20을 참조하여 상술된 메모리 컨트롤러(100)를 이용하여 구현될 수 있다. 예를 들어, SSD 컨트롤러(1210)는 멀티 비트 데이터에 대한 프로그램이 수행되는 동안 SPO가 발생하는 경우, 멀티 비트 데이터에 대응하는 상태 그룹 데이터가 백업되도록 메모리 장치들(1230, 1240, 1250)을 제어할 수 있다. SSD 컨트롤러(1210)는 전원 복구 후에 백업된 상태 그룹 데이터를 기반으로 멀티 비트 데이터가 복구되도록 메모리 장치들(1230, 1240, 1250)을 제어할 수 있다. 이에 따라, 프로그램 동작 중에 SPO가 발생되더라도, 멀티 비트 데이터에 대한 프로그램 동작이 정상적으로 완료될 수 있다.The
메모리 장치들(1230, 1240, 1250)은 SSD 컨트롤러(1210)의 제어에 따라 동작할 수 있다. 메모리 장치들(1230, 1240, 1250) 각각은 도 1 내지 도 20을 참조하여 상술된 불휘발성 메모리 장치(200)를 이용하여 구현될 수 있다. 예를 들어, 메모리 장치들(1230, 1240, 1250) 각각은 SPO가 발생하는 경우, SSD 컨트롤러(1210)의 제어에 따라 상태 그룹 데이터를 백업할 수 있다. 메모리 장치들(1230, 1240, 1250) 각각은 전원 복구 후에 SSD 컨트롤러(1210)의 제어에 따라 백업된 상태 그룹 데이터를 기반으로 프리 프로그램된 멀티 비트 데이터를 독출할 수 있다.The
보조 전원 장치(1220)는 전원 커넥터를 통해 호스트(1100)와 연결될 수 있다. 보조 전원 장치(1220)는 호스트(1100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 보조 전원 장치(1220)는 호스트(1100)로부터의 전원 공급이 원활하지 않을 경우, SSD(1200)의 전원을 제공할 수 있다.The
도 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
어플리케이션 서버들(2100 내지 2100n) 및 스토리지 서버들(2200 내지 2200m)은 네트워크(2300)를 통해 서로 통신할 수 있다. 네트워크(2300)는 FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. 이 때, FC는 고속 데이터 전송에 사용되는 매체이며, 고성능/고가용성을 제공하는 광 스위치를 사용할 수 있다. 네트워크(2300)의 액세스 방식에 따라 스토리지 서버들(2200 내지 2200m)은 파일 스토리지, 블록 스토리지, 또는 오브젝트 스토리지로서 제공될 수 있다. The
예시적인 실시 예에서, 네트워크(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
이하에서는, 어플리케이션 서버(2100) 및 스토리지 서버(2200)를 중심으로 설명하기로 한다. 어플리케이션 서버(2100)에 대한 설명은 다른 어플리케이션 서버(2100n)에도 적용될 수 있고, 스토리지 서버(2200)에 대한 설명은 다른 스토리지 서버(2200m)에도 적용될 수 있다.Hereinafter, the
어플리케이션 서버(2100)는 프로세서(2110) 및 메모리(2120)를 포함할 수 있다. 프로세서(2110)는 어플리케이션 서버(2100)의 전반적인 동작을 제어할 수 있고, 메모리(2120)에 액세스하여 메모리(2120)에 로딩된 명령어 및/또는 데이터를 실행할 수 있다. 실시 예에 따라, 어플리케이션 서버(2100)에 포함되는 프로세서(2110)의 개수 및 메모리(2120)의 개수는 다양하게 선택될 수 있다. 예시적인 실시 예에서, 프로세서(2110)와 메모리(2120)는 프로세서-메모리 페어(pair)로 구성될 수 있다. 예시적인 실시 예에서, 프로세서(2110)와 메모리(2120)의 개수는 서로 다르게 구성될 수 있다. The
어플리케이션 서버(2100)는 스토리지 장치(2150)를 더 포함할 수 있다. 이 때, 어플리케이션 서버(2100)에 포함되는 스토리지 장치(2150)의 개수는 실시 예에 따라 다양하게 선택될 수 있다. 프로세서(2110)는 스토리지 장치(2150)에 커맨드를 제공할 수 있고, 스토리지 장치(2150)는 프로세서(2110)로부터 수신한 커맨드에 응답하여 동작할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 어플리케이션 서버(2100)는 스토리지 장치(2150)를 포함하지 않을 수도 있다.The
어플리케이션 서버(2100)는 스위치(2130) 및 NIC(Network Interface Card)(2140)를 더 포함할 수 있다. 스위치(2130)는 프로세서(2110)의 제어에 따라 프로세서(2110)와 스토리지 장치(2150)를 선택적으로 연결시키거나, NIC(2140)와 스토리지 장치(2150)를 선택적으로 연결시킬 수 있다. NIC(2140)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등을 포함할 수 있다. 예시적인 실시 예에서, 프로세서(2110)와 NIC(2140)는 하나로 통합될 수 있다. 예시적인 실시 예에서, 스토리지 장치(2150)와 NIC(2140)는 하나로 통합될 수 있다.The
어플리케이션 서버(2100)는 사용자 또는 클라이언트가 저장 요청한 데이터를 네트워크(2300)를 통해 스토리지 서버들(2200 내지 2200m) 중 하나에 저장할 수 있다. 또한, 어플리케이션 서버(2100)는 사용자 또는 클라이언트가 독출 요청한 데이터를 스토리지 서버들(2200 내지 2200m) 중 하나로부터 네트워크(2300)를 통해 획득할 수 있다. 예를 들어, 어플리케이션 서버(2100)는 웹 서버 또는 DBMS(Database Management System) 등으로 구현될 수 있다.The
어플리케이션 서버(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
스토리지 서버(2200)는 프로세서(2210) 및 메모리(2220)를 포함할 수 있다. 프로세서(2210)는 스토리지 서버(2200)의 전반적인 동작을 제어할 수 있고, 메모리(2220)에 액세스하여 메모리(2220)에 로딩된 명령어 및/또는 데이터를 실행할 수 있다. 실시 예에 따라, 스토리지 서버(2200)에 포함되는 프로세서(2210)의 개수 및 메모리(2220)의 개수는 다양하게 선택될 수 있다. 예시적인 실시 예에서, 프로세서(2210)와 메모리(2220)는 프로세서-메모리 페어로 구성될 수 있다. 예시적인 실시 예에서, 프로세서(2210)와 메모리(2220)의 개수는 서로 다르게 구성될 수도 있다. The
프로세서(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
스토리지 서버(2200)는 적어도 하나의 스토리지 장치(2250)를 더 포함할 수 있다. 스토리지 서버(2200)에 포함되는 스토리지 장치(2250)의 개수는 실시 예에 따라 다양하게 선택될 수 있다. 스토리지 장치(2250)는 컨트롤러(Controller, CTRL)(2251), 낸드 플래시(NAND, 2252), DRAM(2253), 및 인터페이스(Interface, I/F)(2254)를 포함할 수 있다. 이하에서는, 스토리지 장치(2250)의 구성 및 동작에 대해 상술하기로 한다. 스토리지 장치(2250)에 대한 이하의 설명은 다른 스토리지 장치(2150, 2150n, 2250m)에도 적용될 수 있다.The
인터페이스(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
컨트롤러(2251)는 스토리지 장치(2250)의 동작을 전반적으로 제어할 수 있다. 컨트롤러(2251)는 프로그램 커맨드에 응답하여 낸드 플래시(2252)에 데이터를 프로그램할 수 있고, 또는 독출 커맨드에 응답하여 낸드 플래시(2252)로부터 데이터를 독출할 수 있다. 예를 들어, 프로그램 커맨드 및/또는 독출 커맨드는 스토리지 서버(2200) 내의 프로세서(2210), 다른 스토리지 서버(2200m) 내의 프로세서(2210m) 또는 어플리케이션 서버(2100, 2100n) 내의 프로세서(2110, 2110n)로부터 프로세서(2210)를 통해 제공되거나 직접 제공될 수 있다.The
낸드 플래시(2252)는 복수의 낸드 플래시 메모리 셀들을 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 스토리지 장치(2250)는 낸드 플래시(2252) 이외의 다른 불휘발성 메모리, 예를 들어, ReRAM(resistive RAM), PRAM(phase change RAM), 또는 MRAM(magnetic RAM)을 포함하거나, 또는 자기 저장 매체나 광학 저장 매체 등을 포함할 수 있다.The
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
스토리지 서버(2200)는 스위치(2230) 및 NIC(2240)를 더 포함할 수 있다. 스위치(2230)는 프로세서(2210)의 제어에 따라 프로세서(2210)와 스토리지 장치(2250)를 선택적으로 연결시키거나, NIC(2240)와 스토리지 장치(2250)를 선택적으로 연결시킬 수 있다. 예시적인 실시 예에서, 프로세서(2210)와 NIC(2240)는 하나로 통합될 수 있다. 예시적인 실시 예에서, 스토리지 장치(2250)와 NIC(2240)는 하나로 통합될 수 있다.The
스토리지 장치들(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
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.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.
상기 상태 그룹 코드는 상기 프리 프로그램된 메모리 셀들 각각에 대응하는 상태 그룹 데이터를 포함하고,
상기 상태 그룹 데이터는 각각이 서로 다른 문턱 전압 분포들을 포함하는 상태 그룹들 중 하나를 나타내는 방법.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.
상기 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계는,
상기 불휘발성 메모리 장치를 일반 독출 모드로부터 복구 독출 모드로 변경하는 단계; 및
상기 복구 독출 모드에서 상기 프리 프로그램된 메모리 셀들에 연결된 워드 라인으로 상기 상태 그룹들 각각에 대응하는 독출 전압들을 인가하는 단계를 포함하는 방법.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.
상기 복구 독출 모드에서 상기 멀티 페이지 데이터를 독출하기 위해 상기 워드 라인으로 인가되는 독출 전압 레벨들은 상기 일반 독출 모드에서 상기 멀티 페이지 데이터를 독출하기 위해 상기 워드 라인으로 인가되는 독출 전압 레벨들과 서로 다른 방법.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. .
상기 상태 그룹들 중 제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.
상기 복구 독출 모드에서 하나의 독출 커맨드에 따라 상기 워드 라인으로 인가되는 독출 전압 레벨들의 수는 상기 일반 독출 모드에서 하나의 독출 커맨드에 따라 상기 워드 라인으로 인가되는 독출 전압 레벨들의 수보다 큰 방법.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.
상기 워드 라인에 인가되는 상기 독출 전압들의 레벨들은 상기 워드 라인의 인접 워드 라인에 연결된 메모리 셀이 프리 프로그램 상태인지 여부에 따라 조절되는 방법.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.
상기 재 프로그램을 위한 프로그램 검증 전압은 상기 프리 프로그램을 위한 프로그램 검증 전압보다 높은 방법.The method of claim 1,
The program verification voltage for the reprogramming is higher than the program verification voltage for the preprogramming.
상기 상태 그룹 코드는 상기 메모리 컨트롤러로부터의 상태 그룹 코드 생성 명령에 따라 상기 불휘발성 메모리 장치에서 생성되는 방법.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.
상기 상태 그룹 코드를 상기 불휘발성 메모리 장치에 백업하는 단계는 상기 불휘발성 메모리 장치의 각 메모리 셀에 하나의 데이터 비트를 저장하는 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.
상기 멀티 페이지 데이터를 재 프로그램하는 단계는,
상기 프리 프로그램된 메모리 셀들로부터 독출된 상기 멀티 페이지 데이터의 에러를 정정하여 멀티 페이지 데이터를 복구하는 단계; 및
상기 메모리 셀들에 상기 복구된 멀티 페이지 데이터를 재 프로그램하는 단계를 포함하는 방법.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.
상기 상태 그룹 코드는 상기 프리 프로그램된 메모리 셀들 각각에 대응하는 상태 그룹 데이터를 포함하고,
상기 상태 그룹 데이터는 각각이 서로 다른 문턱 전압 분포들을 포함하는 상태 그룹들 중 하나를 나타내는 방법.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.
상기 프리 프로그램된 메모리 셀들로부터 상기 멀티 페이지 데이터를 독출하는 단계는,
상기 불휘발성 메모리 장치를 일반 독출 모드로부터 복구 독출 모드로 변경하는 단계; 및
상기 복구 독출 모드에서 상기 프리 프로그램된 메모리 셀들에 연결된 워드 라인에 상기 상태 그룹들 각각에 대응하는 독출 전압들을 인가하는 단계를 포함하는 방법.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.
상기 복구 독출 모드에서 상기 멀티 페이지 데이터를 독출하기 위해 상기 워드 라인으로 인가되는 독출 전압 레벨들은 상기 일반 독출 모드에서 상기 멀티 페이지 데이터를 독출하기 위해 상기 워드 라인으로 인가되는 독출 전압 레벨들과 서로 다른 방법.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. .
상기 상태 그룹들 중 제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.
상기 복구 독출 모드에서 하나의 독출 커맨드에 따라 상기 워드 라인으로 인가되는 독출 전압 레벨들의 수는 상기 일반 독출 모드에서 하나의 독출 커맨드에 따라 상기 워드 라인으로 인가되는 독출 전압 레벨들의 수보다 큰 방법.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.
상기 상태 그룹 코드는 상기 프리 프로그램된 제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.
상기 프리 프로그램된 제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.
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) |
-
2020
- 2020-06-05 KR KR1020200068602A patent/KR20210065022A/en not_active Application Discontinuation
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 |