KR20110001098A - Program Method of Nonvolatile Memory Device - Google Patents
Program Method of Nonvolatile Memory Device Download PDFInfo
- Publication number
- KR20110001098A KR20110001098A KR1020090058489A KR20090058489A KR20110001098A KR 20110001098 A KR20110001098 A KR 20110001098A KR 1020090058489 A KR1020090058489 A KR 1020090058489A KR 20090058489 A KR20090058489 A KR 20090058489A KR 20110001098 A KR20110001098 A KR 20110001098A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- level cell
- data
- memory device
- cell block
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 40
- 238000012795 verification Methods 0.000 claims abstract description 25
- 239000000872 buffer Substances 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 18
- 238000013500 data storage Methods 0.000 claims description 4
- 238000009826 distribution Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 229920001690 polydopamine Polymers 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
본 발명은 두 비트 이상의 데이터를 저장할 수 있는 메모리 셀들을 포함하는 멀티 레벨 셀 블록들을 포함하는 불휘발성 메모리 소자가 제공되는 단계; 프로그램 명령에 따라 입력되는 데이터를 상기 멀티 레벨 셀 블록들 중 일부에 싱글 레벨 셀 프로그램 방식으로 프로그램하는 단계; 상기 데이터 저장단계에서 저장된 데이터가 멀티 레벨 셀 블록 전체에 프로그램될 만큼의 용량이 되면, 멀티 레벨 셀 프로그램 명령이 생성되어 상기 저장된 데이터를 선택된 멀티 레벨 셀 블록 전체에 프로그램하는 제 1 프로그램 수행 단계; 및 상기 제 1 프로그램 수행단계에서 사용하는 제 1 검증전압 레벨보다 높은 제 2 검증전압을 설정하고, 상기 저장된 데이터를 상기 선택된 멀티 레벨 셀 블록 전체에 중복하여 프로그램하는 제 2 프로그램 수행단계를 포함하는 불휘발성 메모리 소자의 프로그램 방법을 제공한다.According to an aspect of the present invention, there is provided a nonvolatile memory device including multilevel cell blocks including memory cells capable of storing two or more bits of data; Programming data input according to a program command to some of the multi-level cell blocks in a single level cell program method; A first program execution step of generating a multi-level cell program command to program the stored data to the entire selected multi-level cell block when the stored data reaches the capacity to be programmed in the entire multi-level cell block; And a second program performing step of setting a second verification voltage higher than a first verification voltage level used in the first program performing step, and overlapping the stored data in the entire selected multi-level cell block. A program method of a volatile memory device is provided.
프로그램, MLC, SLC Program, MLC, SLC
Description
본 발명은 불휘발성 메모리 소자의 프로그램 방법에 관한 것이다.The present invention relates to a method of programming a nonvolatile memory device.
일반적으로, 플래시 메모리는 전기적으로 셀의 데이터를 일괄적으로 소거하는 기능이 있기 때문에, 컴퓨터 및 메모리 카드 등에 널리 사용되고 있다. 최근 들어서는, 휴대폰, PDA, 디지털카메라 등과 같은 휴대용 정보기기의 사용이 급증함에 따라, 하드디스크 대신 플래시 메모리가 저장장치로서 널리 사용되고 있다. 상술한 모바일 기기들은 다양한 기능들(예를 들면, 동영상 재생 기능)을 제공하기 위해서 점차 대용량의 저장 장치들을 필요로 하고 있다. 그러한 요구를 충족하기 위한 다양한 노력들이 행해져 오고 있다. 그러한 노력들 중 하나로서 하나의 메모리 셀에 2비트 데이터 또는 그보다 많은 데이터 비트들을 저장하는 멀티 비트 메모리 장치가 제안되어오고 있다. 메모리 셀당 다중 비트 데이터가 저장되는 메모리 셀을 멀티 레벨 셀(MLC; Multi-Leveled Cell)이라 한다. 그에 반해 메모리 셀당 1비트의 데이터가 저장되는 메모리 셀을 싱글 레벨 셀(SLC; Single-Leveled Cell)이라 한다. In general, flash memories are widely used in computers, memory cards, and the like because they have a function of electrically erasing data of cells collectively. In recent years, as the use of portable information devices such as mobile phones, PDAs, digital cameras, and the like proliferates, flash memory is widely used as a storage device instead of a hard disk. The mobile devices described above increasingly require large storage devices in order to provide various functions (eg, a video playback function). Various efforts have been made to meet that need. As one of such efforts, a multi-bit memory device for storing 2-bit data or more data bits in one memory cell has been proposed. A memory cell in which multi-bit data is stored per memory cell is called a multi-leveled cell (MLC). In contrast, a memory cell storing one bit of data per memory cell is called a single-level cell (SLC).
멀티 레벨 셀을 채택한 플래시 메모리 장치는 가용 용량의 증가는 가능하지만, 데이터의 기입에 소요되는 시간이 증가한다. 반면에, 싱글 레벨 셀을 채택한 플래시 메모리 장치는 가용 용량은 상대적으로 작지만, 데이터의 기입에 소요되는 시간이 짧아 MLC에 비하여 고속의 동작 특성을 갖는다. Flash memory devices employing multi-level cells are capable of increasing usable capacity, but increase the time required to write data. On the other hand, a flash memory device employing a single level cell has a relatively small usable capacity, but has a high operating speed compared to MLC because the time required for writing data is short.
따라서 본 발명이 이루고자 하는 기술적 과제는 데이터의 프로그램 속도를 높이면서 메모리 셀간의 간섭현상을 최소화하여 데이터의 신뢰성을 높일 수 있는 불휘발성 메모리 소자의 프로그램 방법을 제공하는데 있다.Accordingly, an aspect of the present invention is to provide a method of programming a nonvolatile memory device capable of increasing data reliability while minimizing interference between memory cells and increasing data reliability.
본 발명의 특징에 따른 불휘발성 메모리 소자의 프로그램 방법은,Program method of a nonvolatile memory device according to an aspect of the present invention,
두 비트 이상의 데이터를 저장할 수 있는 메모리 셀들을 포함하는 멀티 레벨 셀 블록들을 포함하는 불휘발성 메모리 소자가 제공되는 단계; 프로그램 명령에 따라 입력되는 데이터를 상기 멀티 레벨 셀 블록들 중 일부에 싱글 레벨 셀 프로그램 방식으로 프로그램하는 단계; 상기 데이터 저장단계에서 저장된 데이터가 멀티 레벨 셀 블록 전체에 프로그램될 만큼의 용량이 되면, 멀티 레벨 셀 프로그램 명령이 생성되어 상기 저장된 데이터를 선택된 멀티 레벨 셀 블록 전체에 프로그램하는 제 1 프로그램 수행 단계; 및 상기 제 1 프로그램 수행단계에서 사용하는 제 1 검증전압 레벨보다 높은 제 2 검증전압을 설정하고, 상기 저장된 데이터를 상기 선택된 멀티 레벨 셀 블록 전체에 중복하여 프로그램하는 제 2 프로그램 수행단계를 포함한다.Providing a nonvolatile memory device including multilevel cell blocks including memory cells capable of storing two or more bits of data; Programming data input according to a program command to some of the multi-level cell blocks in a single level cell program method; A first program execution step of generating a multi-level cell program command to program the stored data to the entire selected multi-level cell block when the stored data reaches the capacity to be programmed in the entire multi-level cell block; And a second program performing step of setting a second verification voltage higher than a first verification voltage level used in the first program performing step, and overlapping the stored data in the entire selected multi-level cell block.
상기 싱글 레벨 셀 프로그램 방식은, 상기 멀티 레벨 셀 블록의 메모리 셀들에 하나의 비트 정보만 프로그램되도록 하는 방식인 것을 특징으로 한다.The single level cell program method may be configured to program only one bit information into memory cells of the multi-level cell block.
상기 멀티 레벨 셀 프로그램 명령은, 상기 데이터 저장단계에서 저장된 데 이터가 멀티 레벨 셀 블록 전체에 프로그램될 만큼의 용량이 되면서, 상기 불휘발성 메모리 소자가 어떤 동작도 하지 않는 대기 상태이거나, 전원 오프 명령이 입력되었을 때 생성되는 것을 특징으로 한다.The multi-level cell program command has a capacity that is enough to program the data stored in the data storing step to the entire multi-level cell block, so that the nonvolatile memory device does not perform any operation or the power-off command is executed. Characterized in that it is generated when input.
상기 제 2 프로그램 수행단계에서 사용하는 제 2 검증전압 레벨보다 높은 제 3 검증전압을 설정하고, 상기 저장된 데이터를 상기 선택된 멀티 레벨 셀 블록 전체에 중복하여 프로그램하는 제 3 프로그램 수행단계를 더 포함한다.And setting a third verification voltage higher than a second verification voltage level used in the second program execution step, and repeating the stored data in the entire multi-level cell block.
상기 멀티 레벨 셀 블록의 프로그램이 종료되면, 상기 저장된 데이터를 소거하는 것을 특징으로 한다.When the program of the multi-level cell block is terminated, the stored data may be erased.
본 발명의 특징에 따른 불휘발성 메모리 소자의 프로그램 방법은,Program method of a nonvolatile memory device according to an aspect of the present invention,
두 비트 이상의 데이터를 저장할 수 있는 메모리 셀들을 포함하는 멀티 레벨 셀 블록들과, 프로그램할 데이터를 임시 저장할 수 있는 버퍼부를 포함하는 불휘발성 메모리 소자가 제공되는 단계; 프로그램 명령에 따라 입력되는 데이터를 상기 버퍼부에 임시 저장하는 단계; 상기 버퍼부에 저장된 데이터가 멀티 레벨 셀 블록 전체에 프로그램될 만큼의 용량이 되면, 멀티 레벨 셀 프로그램 명령이 생성되어 상기 저장된 데이터를 선택된 멀티 레벨 셀 블록 전체에 프로그램하는 제 1 프로그램 수행 단계; 및 상기 제 1 프로그램 수행단계에서 사용하는 제 1 검증전압 레벨보다 높은 제 2 검증전압을 설정하고, 상기 저장된 데이터를 상기 선택된 멀티 레벨 셀 블록 전체에 중복하여 프로그램하는 제 2 프로그램 수행단계를 포함한다.Providing a non-volatile memory device including multi-level cell blocks including memory cells capable of storing two or more bits of data, and a buffer unit capable of temporarily storing data to be programmed; Temporarily storing data input according to a program command in the buffer unit; Performing a first program of generating a multi-level cell program command to program the stored data to the entire selected multi-level cell block when the data stored in the buffer unit has a capacity to be programmed in the entire multi-level cell block; And a second program performing step of setting a second verification voltage higher than a first verification voltage level used in the first program performing step, and overlapping the stored data in the entire selected multi-level cell block.
상기 버퍼부는, 상기 멀티 레벨 셀 블록에 데이터를 프로그램하는 속도보다 데이터 저장 속도가 빠른 별도의 저장수단인 것을 특징으로 한다.The buffer unit is characterized in that a separate storage means having a faster data storage speed than the speed of programming data in the multi-level cell block.
상기 멀티 레벨 셀 프로그램 명령은, 상기 버퍼부에 저장된 데이터가 멀티 레벨 셀 블록 전체에 프로그램될 만큼의 용량이 되면서, 상기 불휘발성 메모리 소자가 어떤 동작도 하지 않는 대기 상태이거나, 전원 오프 명령이 입력되었을 때 생성되는 것을 특징으로 한다.The multi-level cell program command has a capacity such that data stored in the buffer unit is programmed to the entire multi-level cell block, and a standby state in which the nonvolatile memory device does not operate or a power-off command is input. When it is generated.
상기 제 2 프로그램 수행단계에서 사용하는 제 2 검증전압 레벨보다 높은 제 3 검증전압을 설정하고, 상기 저장된 데이터를 상기 선택된 멀티 레벨 셀 블록 전체에 중복하여 프로그램하는 제 3 프로그램 수행단계를 더 포함한다.And setting a third verification voltage higher than a second verification voltage level used in the second program execution step, and repeating the stored data in the entire multi-level cell block.
상기 멀티 레벨 셀 블록의 프로그램이 종료되면, 상기 저장된 데이터중 상기 선택된 멀티 레벨 셀 블록에 저장된 데이터를 삭제하는 것을 특징으로 한다.When the program of the multi-level cell block is terminated, the data stored in the selected multi-level cell block is deleted from the stored data.
이상에서 설명한 바와 같이, 본 발명에 따른 불휘발성 메모리 소자의 프로그램 방법은, 프로그램 속도를 향상시키면서 메모리 셀간의 간섭을 최소화하여 데이터의 신뢰성을 높일 수 있다.As described above, the method of programming a nonvolatile memory device according to the present invention can improve the reliability of data by minimizing interference between memory cells while improving program speed.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본실시 예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. It is provided to inform you.
도 1은 본 발명의 일 실시 예에 따른 불휘발성 메모리 소자를 나타낸다.1 illustrates a nonvolatile memory device according to an embodiment of the present invention.
도 1을 참조하면, 불휘발성 메모리 소자(100)는 메모리 셀 어레이(110), 페이지 버퍼부(120), Y 디코더(130), X 디코더(140), 전압 제공부(150) 및 제어부(160)를 포함한다.Referring to FIG. 1, the nonvolatile memory device 100 may include a
메모리 셀 어레이(110)는 멀티 레벨 셀(Multi Level Cell; 이하 MLC) 블록부(111)와 싱글 레벨 셀(Single Level Cell; 이하 SLC) 블록부(112)를 포함한다.The
MLC 블록부(111)는 제 1 내지 제 N MLC 블록들을 포함하고, SLC 블록부(112)는 제 1 내지 제 K SLC 블록들을 포함한다.The
제 1 내지 제 N MLC 블록들은 2비트의 데이터를 저장할 수 있는 메모리 셀들을 포함하고 제 1 내지 제 K SLC 블록들은 한 비트의 데이터를 저장할 수 있는 메모리 셀들을 포함한다.The first through Nth MLC blocks include memory cells capable of storing two bits of data, and the first through Kth SLC blocks include memory cells capable of storing one bit of data.
2비트의 데이터를 저장할 수 있는 메모리 셀이나 한비트의 데이터를 저장할 수 있는 메모리 셀들은 구조상으로 동일하다고 할 수 있다.Memory cells capable of storing two bits of data or memory cells capable of storing one bit of data are identical in structure.
그리고 제 1 내지 제 N MLC 블록들과 제 1 내지 제 K SLC 블록들에 메모리 셀들은 워드라인(Word Line; WL)들과 비트라인(Bit Line; BL)들에 연결된다.The memory cells are connected to word lines WL and bit lines BL in the first to Nth MLC blocks and the first to Kth SLC blocks.
페이지 버퍼부(120)는 하나 이상의 비트라인에 연결되는 페이지 버퍼들을 포함한다. 각각의 페이지 버퍼는 데이터 임시 저장을 위한 래치회로들을 포함하고, 프로그램과 독출 동작을 위해서 동작한다.The
Y 디코더(130)는 페이지 버퍼부(120)에 복수개의 페이지 버퍼들의 데이터 입출력 경로를 제공하고, X 디코더(140)는 제어신호에 따라서 메모리 셀 어레이(110)에서 제 1 내지 제 N MLC 블록과 제 1 내지 제 K SLC 블록들 중 하나를 인에이블 시키고, 동작전압이 입력되는 글로벌 워드라인(Global Word Line; GWL)과 인에이블된 블록의 워드라인을 연결한다.The
전압 제공부(150)는 프로그램, 데이터 독출 또는 소거 동작 등을 위한 동작 전압을 생성하여 제공한다.The
제어부(160)는 프로그램, 데이터 독출 또는 소거 동작을 제어하기 위한 제어신호를 출력한다. 특히 제어부(160)는 프로그램 명령에 따라서 입력되는 데이터를 우선적으로 SLC 블록부(112)에 프로그램되도록 하고, 이후에 불휘발성 메모리 소자(100)의 SLC 블록부(112)가 모두 프로그램 상태이거나, 동작하지 않고 대기(idle)중이거나, 또는 전원 오프 명령을 입력받으면 SLC 블록부(112)에 저장된 데이터를 블록 단위로 로딩하여 MLC 블록부(111)로 옮겨서 프로그램할 수 있게 제어한다.The
특히 제어부(160)는 MLC 블록부(111)에 프로그램을 할 때는 제 1 내지 제 N MLC 블록들 중 하나를 선택하여 전체 블록의 데이터를 프로그램하고, 다시 한 번 동일한 데이터를 가지고 검증전압만 높여서 프로그램한다. 이에 대한 상세한 설명은 이후의 도 3을 참조하여 설명하기로 한다.In particular, when programming the
제 1 내지 제 K SLC 블록들중 두 개의 SLC 블록의 데이터가 하나의 MLC 메모리 블록에 저장될 수 있으므로, 제어부(160)는 적어도 두 개의 SLC 블록의 데이터가 모두 프로그램될 때까지는 MLC 블록의 프로그램을 하지 않는다.Since data of two SLC blocks of the first to Kth SLC blocks may be stored in one MLC memory block, the
상기한 불휘발성 메모리 소자는 SLC 블록의 프로그램 속도가 MLC 블록에 비하여 빠르기 때문에 프로그램 속도를 높일 수 있다. 또한 MLC 블록에 프로그램하는 방법이 동일한 데이터를 두 번 프로그램하는 방법을 적용하여 데이터의 신뢰성을 높일 수 있다.Since the program speed of the SLC block is faster than that of the MLC block, the nonvolatile memory device may increase the program speed. In addition, the reliability of the data can be improved by applying the method of programming the same data twice as the method of programming the MLC block.
또 다른 실시 예로서는 SLC 블록과 MLC 블록을 따로 지정하지 않고, 하나의 블록에 프로그램될 수 있는 데이터를 임시 저장할 수 있는 버퍼를 별도로 구비하는 경우도 있다.As another embodiment, the SLC block and the MLC block may not be separately designated, but a separate buffer may be provided to temporarily store data that can be programmed in one block.
도 2는 다른 일실시 예에 따른 불휘발성 메모리 소자를 나타낸다.2 illustrates a nonvolatile memory device according to another embodiment.
도 2를 참조하면, 불휘발성 메모리 소자(200)는 도 1의 불휘발성 메모리 소자(100)와 유사한 구성을 갖는다. 즉 메모리 셀 어레이(210), 페이지 버퍼부(220), Y 디코더(230), X 디코더(240), 전압 제공부(250) 및 제어부(260)를 포함한다. 그리고 버퍼(260)를 더 포함한다.Referring to FIG. 2, the nonvolatile memory device 200 has a configuration similar to that of the nonvolatile memory device 100 of FIG. 1. That is, the
메모리 셀 어레이(210)는 제 1 내지 제 N MLC 블록들을 포함하고, 각각의 메모리 블록들은 2비트의 데이터를 저장할 수 있는 메모리 셀들을 포함한다.The
그리고 메모리 셀들은 워드라인(WL)들과 비트라인(BL)들에 연결된다.The memory cells are connected to word lines WL and bit lines BL.
페이지 버퍼부(220), Y 디코더(230), X 디코더(240), 전압 제공부(250)는 도1의 페이지 버퍼부(120), Y 디코더(130), X 디코더(140), 전압 제공부(150)와 동일한 기능을 한다.The
제어부(260)도 프로그램, 데이터 독출 또는 소거 동작을 위한 제어신호를 출력하고, 제 1 내지 제 N MLC 블록들에 데이터를 프로그램할 때는 동일한 데이터를 이용하여 두 번의 프로그램을 수행하도록 하고, 하나의 블록 전체를 프로그램할 수 있는 데이터가 입력될 때까지 버퍼부(270)에 프로그램할 데이터를 임시 저장하도록 한다.The
따라서 버퍼부(270)는 하나의 MLC 블록에 저장될 수 있는 데이터가 모두 저장될 수 있을 만큼의 용량이상을 가져야 한다. 버퍼부(270)는 디램 등이 프로그램 속도가 MLC 블록에 비하여 빠른 저장장치로 구성될 수 있다.Therefore, the
제어부(260)는 버퍼부(270)에 저장된 데이터가 하나의 MLC 블록 전체에 프로그램될 수 있는 만큼이 되면, MLC 블록의 프로그램을 시작한다.When the data stored in the
이상의 도 1과 도 2와 같은 불휘발성 메모리 소자는 MLC의 프로그램 속도가 SLC에 비해서 현저히 느리다는 단점을 보완할 수 있다. 그리고 MLC의 프로그램은 본 발명의 실시 예와 같이 수행함으로써 주변 셀간에 인터피러런스(interference)에 따른 데이터의 오류도 줄일 수 있다.1 and 2 can compensate for the drawback that the program speed of the MLC is significantly slower than that of the SLC. In addition, by performing the MLC program as in the exemplary embodiment of the present invention, an error of data due to an interference between neighboring cells can be reduced.
도 3은 본 발명의 실시 예에 따른 불휘발성 메모리 소자의 프로그램 방법을 설명하기 위한 동작 순서도이다.3 is a flowchart illustrating a program method of a nonvolatile memory device according to an exemplary embodiment of the present invention.
도 3과 같은 프로그램 동작이 수행되기 전에, 상기 도 1 및 도 2에서 설명한 바와 같이 SLC 블록 또는 버퍼부(270)에 MLC 블록 전체를 프로그램할 수 있는 만큼의 데이터가 저장되어 있어야 한다.Before the program operation as shown in FIG. 3 is performed, as much as the amount of data capable of programming the entire MLC block must be stored in the SLC block or the
그리고 MLC 블록의 프로그램은 더 이상 데이터를 저장할 수 있는 버퍼부(270)나 SLC 블록이 없을 때 수행되기도 하지만, 대부분은 그전에 불휘발성 메모리 소자(100, 200)가 대기 중이거나, 전원오프 명령에 따라서 동작을 종료하기 전에 수행된다.In addition, the program of the MLC block may be executed when there is no
도 3은 대표적으로 도1과 같은 불휘발성 메모리 소자(100)에서의 프로그램 동작을 설명하는 것으로 한다. FIG. 3 is representative of a program operation in the nonvolatile memory device 100 as shown in FIG. 1.
도 3을 참조하면, 불휘발성 메모리 소자(100)의 제어부(160)는 대기상태이거나(S301), 전원 오프 명령이 입력되면(S303), MLC 블록의 프로그램을 시작한다(S305).Referring to FIG. 3, when the
상기 MLC 블록의 프로그램 명령은 제어부(160)의 내부에서 생성되는 명령이고, 또한 하나의 MLC 블록 전체에 프로그램할 만큼의 데이터가 있어야 생성된다. 즉 두 개의 SLC 블록이 모두 프로그램된 경우에만 하나의 MLC 블록 전체에 프로그램이 가능하기 때문에 적어도 두 개의 SLC 블록이 모두 프로그램 상태에서 MLC 프로그램 명령이 생성될 수 있다.The program command of the MLC block is a command generated inside the
본 발명의 실시 예에서는 제 1 및 제 2 SLC 블록에 저장된 데이터를 제 1 MLC 블록으로 프로그램한다고 가정한다.In the embodiment of the present invention, it is assumed that data stored in the first and second SLC blocks are programmed into the first MLC block.
프로그램이 시작되면, 제어부(160)는 먼저 제 1 SLC 블록에서 데이터를 독출 하도록 하여 페이지 버퍼부(120)에 저장될 수 있게 한다. 좀 더 상세하게 하면, 제 1 SLC 블록의 제 1 및 제 2 워드라인의 데이터를 차례로 독출 하여 페이지 버퍼부(120)에 두비트의 데이터가 저장될 수 있게 한다.When the program is started, the
이는 페이지 버퍼부(120)에 페이지 버퍼들이 각각 두개 이상의 래치를 가지고 있기 때문에 각각의 래치에 제 1 워드라인에서 독출된 데이터와 제 2 워드라인에서 독출된 데이터를 저장함으로써 가능하다.This is possible by storing the data read from the first word line and the data read from the second word line in each latch since the page buffers each have two or more latches in the
그리고 제어부(160)는 제 1 MLC 블록을 선택하고 제 1 워드라인을 선택하여(S309), 프로그램 및 검증을 하도록 동작 제어를 한다(S311).The
프로그램이 완료되면, 제 1 MLC 블록의 모든 워드라인에 대한 프로그램이 되었는지를 확인하고(S313), 아직 모든 워드라인에 대한 프로그램이 완료되지 않았다면 다음 워드라인을 선택하여 프로그램을 수행하도록 한다(S307 내지 S315). 이하에서 단계S307 내지 S315의 동작을 첫 번째 프로그램 수행과정이라고 칭하기로 한다.When the program is completed, it is checked whether the program for all the word lines of the first MLC block has been made (S313), and if the program for all the word lines has not yet been completed, the next word line is selected to execute the program (S307 to S315). Hereinafter, the operations of steps S307 to S315 will be referred to as a first program execution process.
각각의 MLC 블록의 워드라인에 대하여 SLC 블록의 두 개의 워드라인에 저장된 데이터가 프로그램되므로 두개의 SLC 블록의 데이터가 필요한 것이다.Since the data stored in the two word lines of the SLC block are programmed for the word lines of each MLC block, the data of the two SLC blocks is required.
한편, 모든 워드라인에 대한 프로그램이 완료되면, MLC 프로그램 과정에서 필요한 검증전압의 레벨을 변경한다(S317).On the other hand, when the program for all word lines is completed, the level of the verification voltage required in the MLC program process is changed (S317).
검증전압의 변경에 대해 다음의 도 4a 및 도 4b를 참조하여 설명하기로 한다.The change in the verification voltage will be described with reference to FIGS. 4A and 4B below.
도 4a 및 도 4b는 MLC 블록의 프로그램 동작에 의한 메모리 셀의 문턱전압 분포의 이동을 나타낸다.4A and 4B show the shift of the threshold voltage distribution of the memory cell by the program operation of the MLC block.
도 4a는 도 3에서 단계S307 내지 S315를 수행하는 동안 메모리 셀들의 문턱전압 분포의 이동을 나타낸다. 즉 가장 처음에 MLC 프로그램이 완료되었을 때의 메모리 셀의 문턱전압은 'A'와 같다.FIG. 4A illustrates a shift in threshold voltage distribution of memory cells during steps S307 to S315 in FIG. 3. That is, the threshold voltage of the memory cell when the MLC program is first completed is equal to 'A'.
그러나 다른 워드라인에 대해 프로그램이 진행되는 동안 주변의 메모리 셀들로부터의 간섭(interference; I)과 프로그램 데이터의 패턴(back pattern; B)에 의해서 문턱전압 분포가 'B'에서 'C'와 같이 계속해서 변경되고, 최악의 상태로는 문턱전압이 겹쳐서 데이터의 신뢰성이 떨어지게 된다.However, while the program is in progress for another word line, the threshold voltage distribution continues as 'B' to 'C' due to interference (I) from surrounding memory cells and back pattern (B) of program data. Change in the worst case, the threshold voltage overlaps, and the reliability of the data is deteriorated.
도 4a의 프로그램 상태에서, 제어부(160)는 동일한 데이터를 다시 로딩하여 프로그램하는 두 번째 프로그램 동작을 수행한다. 이때 도 4a의 'C'와 같이 이미 문턱전압 분포 간에 겹쳐진 부분이 있는 점과, 프로그램 동작에서는 메모리 셀의 문턱전압을 높이는 것밖에 되지 않는 다는 점을 고려하여 검증 전압을 처음의 프로그램 동작에서 보다 높게 설정한다. In the program state of FIG. 4A, the
이미 문턱전압 분포 간에 겹쳐진 부분이 있기는 하지만, 제어부(160)는 다시 프로그램해야 하는 데이터를 SLC 블록을 통해서 알 수 있기 때문에 검증전압만 높여서 프로그램을 하면 데이터의 신뢰성을 떨어지지 않는다.Although there is already an overlap between the threshold voltage distribution, the
그리고 도 4b와 같이 주변셀간의 간섭과 백패턴 현상에 따른 영향을 받은 메모리 셀들은 두 번째의 프로그램에 대해서는 훨씬 영향을 덜 받게 된다.As shown in FIG. 4B, the memory cells affected by the interference between the neighboring cells and the back pattern phenomenon are much less affected by the second program.
즉, 도 4b에 나타난 바와 같이 두 번째로 프로그램을 진행하면 'D'와 같이 문턱전압 분포가 형성되고, 다른 메모리 셀들의 프로그램이 진행되는 동안에 영향을 받아도 'E'와 같이 문턱전압 분포가 조금 넓어지기는 하지만 최악의 상태인 문턱전압 분포간의 겹침 현상을 방지할 수 있다. 이는 메모리 셀의 특성상 이미 간섭과 백패턴 영향을 받았기 때문에 두 번째로는 영향을 받는 정도가 훨씬 들어든다는 점을 이용한 것이다.That is, as shown in FIG. 4B, when the second program is executed, the threshold voltage distribution is formed as shown in 'D', and the threshold voltage distribution is slightly widened as shown in 'E' even though it is affected during the program of other memory cells. It is possible to prevent overlapping between the threshold voltage distributions, which are late but worst. This is because the characteristics of the memory cell have already been affected by interference and back pattern, and the second is much more affected.
다시 도 3의 설명을 이어서 하면, 검증 전압을 일정 레벨 높여서 변경한 후에는, 제 1 및 제 2 SLC 블록의 데이터를 로딩하고, 워드라인을 선택하여 프로그램하는 과정을 반복한다(S319 내지 S327). 이하에서는 단계S319 내지 단계S327의 동작을 두 번째 프로그램수행과정이라 칭한다. 모든 프로그램이 종료되면, 제 1 및 제 2 SLC 블록은 소거하여 다른 데이터가 저장될 수 있게 한다.Referring to FIG. 3 again, after changing the verification voltage by increasing the predetermined level, the process of loading data of the first and second SLC blocks, selecting and programming word lines is repeated (S319 to S327). Hereinafter, operations of steps S319 to S327 will be referred to as a second program execution process. When all programs are finished, the first and second SLC blocks are erased so that other data can be stored.
첫 번째 프로그램 수행과정과 두 번째 프로그램 수행과정은 검증전압 레벨의 변경만 있고, 동일한 데이터를 동일한 MLC 블록에 프로그램하는 동작이다. 데이터의 신뢰성을 더욱 더 높이기 위해서 검증전압 레벨을 조금 더 높인 후의 세 번째 프로그램 수행을 하는 것도 가능하다.The first program execution process and the second program execution process only change the verify voltage level, and operate the same data in the same MLC block. To further increase the reliability of the data, it is also possible to perform a third program after raising the verification voltage level slightly.
이와 같이 프로그램 동작을 수행함으로써, 외부에서 입력되는 프로그램 데이터에 대해서는 SLC블록이나 버퍼부에 데이터 저장을 하여 속도를 높이고, 내부적으로는 SLC 블록이나 버퍼부의 데이터를 MLC 블록에 프로그램할 때, 동일한 데이터를 이용한 두 번 이상의 프로그램 수행을 하도록 함으로써 데이터의 신뢰성을 확보할 수 있다.By performing the program operation as described above, the data stored in the SLC block or the buffer portion is increased by increasing the speed of the program data input from the outside, and internally, the same data is programmed when the data is programmed in the MLC block. Data reliability can be ensured by performing the program more than once.
또한, 상기 도2와 같이 버퍼부(270)가 별도로 구비되는 불휘발성 메모리 소자(200)의 경우에는 하나의 MLC 블록 전체에 프로그램할 정도의 데이터가 버퍼부(270)에 저장되면 바로 MLC 블록 프로그램을 진행할 수도 있다. 버퍼부(270)의 용량이 하나의 MLC 블록과 동일한 경우에는 버퍼부(270)에 데이터가 더 이상 저장되기 어려우면 MLC 블록 프로그램을 한다. 그리고 버퍼부(270)를 삭제하여 다음의 프로그램 데이터가 저장될 수 있게 한다.In addition, in the case of the nonvolatile memory device 200 in which the
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시 예에서 구체적으로 기술되었으나, 상기한 실시 예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있다.Although the technical spirit of the present invention described above has been described in detail in a preferred embodiment, it should be noted that the above-described embodiment is for the purpose of description and not of limitation. In addition, the present invention can be understood by those of ordinary skill in the art that various embodiments are possible within the scope of the technical idea of the present invention.
도 1은 본 발명의 일 실시 예에 따른 불휘발성 메모리 소자를 나타낸다.1 illustrates a nonvolatile memory device according to an embodiment of the present invention.
도 2는 다른 일실시 예에 따른 불휘발성 메모리 소자를 나타낸다.2 illustrates a nonvolatile memory device according to another embodiment.
도 3은 본 발명의 실시 예에 따른 불휘발성 메모리 소자의 프로그램 방법을 설명하기 위한 동작 순서도이다.3 is a flowchart illustrating a program method of a nonvolatile memory device according to an exemplary embodiment of the present invention.
도 4a 및 도 4b는 MLC 블록의 프로그램 동작에 의한 메모리 셀의 문턱전압 분포의 이동을 나타낸다.4A and 4B show the shift of the threshold voltage distribution of the memory cell by the program operation of the MLC block.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090058489A KR20110001098A (en) | 2009-06-29 | 2009-06-29 | Program Method of Nonvolatile Memory Device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090058489A KR20110001098A (en) | 2009-06-29 | 2009-06-29 | Program Method of Nonvolatile Memory Device |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20110001098A true KR20110001098A (en) | 2011-01-06 |
Family
ID=43609706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090058489A KR20110001098A (en) | 2009-06-29 | 2009-06-29 | Program Method of Nonvolatile Memory Device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20110001098A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8638603B2 (en) | 2011-06-16 | 2014-01-28 | Samsung Electronics Co., Ltd. | Data storage system having multi-level memory device and operating method thereof |
US8867275B2 (en) | 2011-11-21 | 2014-10-21 | Samsung Electronics Co., Ltd. | Flash memory device and program method |
US9026749B2 (en) | 2011-06-14 | 2015-05-05 | Samsung Electronics Co., Ltd. | Data storage system having multi-bit memory device and on-chip buffer program method thereof |
US9245630B2 (en) | 2013-02-04 | 2016-01-26 | Samsung Electronics Co., Ltd. | Memory system comprising nonvolatile memory device and program method thereof |
US9785379B2 (en) | 2014-02-06 | 2017-10-10 | Samsung Electronics Co., Ltd. | Operating method of nonvolatile memory device and nonvolatile memory system |
-
2009
- 2009-06-29 KR KR1020090058489A patent/KR20110001098A/en not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9026749B2 (en) | 2011-06-14 | 2015-05-05 | Samsung Electronics Co., Ltd. | Data storage system having multi-bit memory device and on-chip buffer program method thereof |
US8638603B2 (en) | 2011-06-16 | 2014-01-28 | Samsung Electronics Co., Ltd. | Data storage system having multi-level memory device and operating method thereof |
US8867275B2 (en) | 2011-11-21 | 2014-10-21 | Samsung Electronics Co., Ltd. | Flash memory device and program method |
US9245630B2 (en) | 2013-02-04 | 2016-01-26 | Samsung Electronics Co., Ltd. | Memory system comprising nonvolatile memory device and program method thereof |
US9785379B2 (en) | 2014-02-06 | 2017-10-10 | Samsung Electronics Co., Ltd. | Operating method of nonvolatile memory device and nonvolatile memory system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100878479B1 (en) | Memory system that determines program method based on data information | |
KR100875539B1 (en) | Programmable memory system | |
US8966163B2 (en) | Non-volatile memory device and method for programming the same | |
US8107287B2 (en) | Method of programming nonvolatile memory device | |
KR102226367B1 (en) | Nonvolatile memory device and nonvolatile memory system including the same | |
KR100805840B1 (en) | Flash Memory Device Using Cache and Its Program Method | |
KR100894809B1 (en) | Memory system and its program method | |
US20080181000A1 (en) | Method Of Improving Programming Precision In Flash Memory | |
KR100823170B1 (en) | Memory systems and memory cards that use bad blocks in single-level cell mode | |
KR101666406B1 (en) | Non-volatile memory device and method for programming the device, and memory system | |
KR100873825B1 (en) | Multibit Programming Device and Method of Nonvolatile Memory | |
TWI746844B (en) | Memory device and method of operating the same | |
JP2013534685A (en) | Multi-page programming method for flash memory | |
KR20100011198A (en) | Program method for non-volatile memory device | |
KR20110051780A (en) | How to Program Nonvolatile Memory Devices | |
JP2010160873A (en) | Semiconductor storage device and semiconductor storage system | |
US9378823B2 (en) | Programming a memory cell to a voltage to indicate a data value and after a relaxation time programming the memory cell to a second voltage to indicate the data value | |
KR20140139335A (en) | Nonvolatile memory device and reprogram method thereof | |
JP2009151865A (en) | Nonvolatile semiconductor storage device and its writing method | |
KR101668340B1 (en) | Nand type flash memory and programming method thereof | |
US8902665B2 (en) | Solid state storage system for uniformly using memory area and method controlling the same | |
JP2006164408A (en) | Nonvolatile semiconductor memory device, and data erasure method therefor | |
KR20110001098A (en) | Program Method of Nonvolatile Memory Device | |
JP2007179701A (en) | Nonvolatile semiconductor storage device which stores multivalue data | |
JP5280027B2 (en) | Semiconductor device and control method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20090629 |
|
PG1501 | Laying open of application | ||
PC1203 | Withdrawal of no request for examination | ||
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |