KR101821604B1 - 비휘발성 메모리 장치의 프로그램 방법 - Google Patents

비휘발성 메모리 장치의 프로그램 방법 Download PDF

Info

Publication number
KR101821604B1
KR101821604B1 KR20110073416A KR20110073416A KR101821604B1 KR 101821604 B1 KR101821604 B1 KR 101821604B1 KR 20110073416 A KR20110073416 A KR 20110073416A KR 20110073416 A KR20110073416 A KR 20110073416A KR 101821604 B1 KR101821604 B1 KR 101821604B1
Authority
KR
Grant status
Grant
Patent type
Prior art keywords
program
multi
level
cell
cells
Prior art date
Application number
KR20110073416A
Other languages
English (en)
Other versions
KR20130012308A (ko )
Inventor
조용성
이남희
윤상용
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Grant date

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells

Abstract

비휘발성 메모리 장치의 프로그램 방법에서, 멀티-비트 데이터가 페이지 버퍼부에 로드되고, 멀티-비트 데이터에 기초하여 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들이 복수의 중간 프로그램 상태들로 프로그램되며, 멀티-레벨 셀들이 복수의 중간 프로그램 상태들로 프로그램되었는지 여부가 검증된다. 복수의 중간 프로그램 상태들 각각에 상응하는 상위 중간 프로그램 상태에 대한 검증의 결과가 소정의 기준을 만족하는지 여부에 기초하여 복수의 중간 프로그램 상태들 각각에 대한 셀 그룹 정보가 생성된다. 셀 그룹 정보에 기초하여 멀티-레벨 셀들이 멀티-비트 데이터에 상응하는 복수의 목표 프로그램 상태들로 프로그램된다.

Description

비휘발성 메모리 장치의 프로그램 방법{METHOD OF PROGRAMMING A NONVOLATILE MEMORY DEVICE}

본 발명은 비휘발성 메모리 장치에 관한 것으로서, 더욱 상세하게는 멀티-레벨 셀들을 포함하는 비휘발성 메모리 장치의 프로그램 방법에 관한 것이다.

비휘발성 메모리 장치의 메모리 셀들은, 저장되는 데이터의 비트 수에 따라, 셀마다 한 비트의 데이터를 저장하는 단일 레벨 셀(Single Level Cell; SLC)들 또는 셀마다 2 비트 이상의 데이터를 저장하는 멀티-레벨 셀(Multi-Level Cell; MLC)들로 분류될 수 있다. 멀티-레벨 셀들은 서로 다른 논리 상태들을 나타내는 복수의 문턱 전압 분포들을 이용하여 멀티-비트 데이터를 저장할 수 있다. 예를 들어, 2비트의 데이터를 저장하는 멀티-레벨 셀들은 논리 상태들 “11”, “10”, “00” 및 “01”을 나타내는 4 개의 문턱 전압 분포들을 이용할 수 있다.

멀티-비트 데이터를 정확하게 기입 및 독출하기 위해서는, 멀티-레벨 셀들의 문턱 전압 분포들이 적당한 센싱 마진만큼 서로 이격되어야 한다. 그러나, 비휘발성 메모리 장치의 집적도가 증가함에 따라, 인접한 메모리 셀들간의 커플링, 프로그램 디스터브 등에 의해 문턱 전압 분포가 넓어지거나, 문턱 전압 분포의 폭을 감소시키기 위하여 프로그램 시간이 증가하는 문제가 있다.

상기와 같은 문제점을 해결하기 위하여, 본 발명의 일 목적은 좁은 문턱 전압 분포를 가질 수 있는 비휘발성 메모리 장치의 프로그램 방법을 제공하는 것이다.

또한, 본 발명의 다른 목적은 프로그램 시간을 단축시킬 수 있는 비휘발성 메모리 장치의 프로그램 방법을 제공하는 것이다.

상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 프로그램 방법에서, 멀티-비트 데이터가 페이지 버퍼부에 로드되고, 상기 멀티-비트 데이터에 기초하여 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들이 복수의 중간 프로그램 상태들로 프로그램되며, 상기 멀티-레벨 셀들이 상기 복수의 중간 프로그램 상태들로 프로그램되었는지 여부가 검증된다. 상기 복수의 중간 프로그램 상태들 각각에 상응하는 상위 중간 프로그램 상태에 대한 검증의 결과가 소정의 기준을 만족하는지 여부에 기초하여 상기 복수의 중간 프로그램 상태들 각각에 대한 셀 그룹 정보가 생성된다. 상기 셀 그룹 정보에 기초하여 상기 멀티-레벨 셀들이 상기 멀티-비트 데이터에 상응하는 복수의 목표 프로그램 상태들로 프로그램된다.

일 실시예에서, 상기 소정의 기준은, 상기 상위 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 오프-셀(off-cell)들의 수가 소정의 값 이상인 것, 또는 상기 상위 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 적어도 하나가 오프-셀이 되는 프로그램 루프 이후 수행된 프로그램 루프들의 수가 소정의 값 이상인 것을 포함할 수 있다.

일 실시예에서, 상기 셀 그룹 정보는, 상기 멀티-레벨 셀들 각각이 문턱 전압의 증가가 상대적으로 빠른 멀티-레벨 셀들을 포함하는 고속 셀(fast cell) 그룹 또는 문턱 전압의 증가가 상대적으로 느린 멀티-레벨 셀들을 포함하는 저속 셀(slow cell) 그룹 중 어느 그룹에 속하는지를 나타낼 수 있다.

일 실시예에서, 상기 멀티-레벨 셀들을 상기 복수의 목표 프로그램 상태들로 프로그램하도록, 상기 셀 그룹 정보에 기초하여 상기 고속 셀 그룹에 속하는 멀티-레벨 셀들에 제1 프로그램 전압이 인가되고, 상기 셀 그룹 정보에 기초하여 상기 저속 셀 그룹에 속하는 멀티-레벨 셀들에 상기 제1 프로그램 전압보다 높은 전압 레벨을 가지는 제2 프로그램 전압이 인가될 수 있다.

일 실시예에서, 상기 멀티-레벨 셀들을 상기 복수의 목표 프로그램 상태들로 프로그램하도록, 상기 셀 그룹 정보에 기초하여 상기 저속 셀 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 저 레벨의 전압이 인가되고, 상기 셀 그룹 정보에 기초하여 상기 고속 셀 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 상기 저 레벨의 전압보다 높은 전압 레벨을 가지는 포싱 전압이 인가되며, 선택된 워드라인에 프로그램 전압이 인가될 수 있다.

일 실시예에서, 상기 복수의 중간 프로그램 상태들은 제1 중간 프로그램 상태 및 상기 제1 중간 프로그램 상태에 상응하는 상위 중간 프로그램 상태인 제2 중간 프로그램 상태를 포함할 수 있다. 상기 셀 그룹 정보를 생성하도록, 상기 제2 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 상기 제2 중간 프로그램 상태에 상응하는 제2 중간 검증 전압보다 높은 문턱 전압들을 가지는 오프-셀들이 카운트되고, 상기 카운트된 오프-셀들의 수가 소정의 값 이상인 경우, 상기 제1 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 상기 제1 중간 프로그램 상태에 상응하는 제1 중간 검증 전압보다 낮은 문턱 전압들을 가지는 온-셀들이 저속 셀(slow cell)들로 표시될 수 있다.

일 실시예에서, 상기 복수의 중간 프로그램 상태들은 제1 중간 프로그램 상태 및 상기 제1 중간 프로그램 상태에 상응하는 상위 중간 프로그램 상태인 제2 중간 프로그램 상태를 포함할 수 있다. 상기 셀 그룹 정보를 생성하도록, 상기 제2 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 상기 제2 중간 프로그램 상태에 상응하는 제2 중간 검증 전압보다 높은 문턱 전압들을 가지는 오프-셀들이 카운트되고, 상기 카운트된 오프-셀들의 수가 소정의 값 이상인 경우, 상기 제1 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 상기 제1 중간 프로그램 상태에 상응하는 제1 중간 검증 전압보다 높은 문턱 전압들을 가지는 오프-셀들이 고속 셀(fast cell)들로 표시될 수 있다.

일 실시예에서, 상기 복수의 중간 프로그램 상태들은 제1 중간 프로그램 상태 및 상기 제1 중간 프로그램 상태에 상응하는 상위 중간 프로그램 상태인 제2 중간 프로그램 상태를 포함할 수 있다. 상기 셀 그룹 정보를 생성하도록, 상기 제2 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 상기 제2 중간 프로그램 상태에 상응하는 제2 중간 검증 전압보다 높은 문턱 전압들을 가지는 오프-셀들이 카운트되고, 상기 카운트된 오프-셀들의 수가 소정의 값 이상이 될 때까지, 매 프로그램 루프마다 상기 제1 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 상기 제1 중간 프로그램 상태에 상응하는 제1 중간 검증 전압보다 높은 문턱 전압들을 가지는 오프-셀들이 고속 셀들로 표시될 수 있다.

일 실시예에서, 상기 복수의 중간 프로그램 상태들은 제1 중간 프로그램 상태 및 상기 제1 중간 프로그램 상태에 상응하는 상위 중간 프로그램 상태인 제2 중간 프로그램 상태를 포함할 수 있다. 상기 셀 그룹 정보를 생성하도록, 상기 제2 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 적어도 하나가 상기 제2 중간 프로그램 상태에 상응하는 제2 중간 검증 전압보다 높은 문턱 전압을 가지는 오프-셀이 되는 프로그램 루프 이후 수행된 프로그램 루프들이 카운트되고, 상기 카운트된 프로그램 루프들의 수가 소정의 값 이상인 경우, 상기 제1 중간 프로그램 상태에 상응하는 멀티-레벨 셀들 중 상기 제1 중간 프로그램 상태에 상응하는 제1 중간 검증 전압보다 낮은 문턱 전압들을 가지는 온-셀들이 느린 셀(slow cell)들로 표시될 수 있다.

일 실시예에서, 호스트로부터 제공된 상기 멀티-비트 데이터가 적어도 하나의 싱글 레벨 셀 블록에 프로그램될 수 있다. 상기 멀티-비트 데이터를 상기 페이지 버퍼부에 로드하도록, 상기 멀티-비트 데이터가 상기 적어도 하나의 싱글 레벨 셀 블록으로부터 상기 페이지 버퍼부에 로드될 수 있다.

일 실시예에서, 상기 셀 그룹 정보가 상기 적어도 하나의 싱글 레벨 셀 블록에 프로그램되고, 상기 멀티-레벨 셀들을 상기 복수의 목표 프로그램 상태들로 프로그램하도록 상기 멀티-비트 데이터 및 상기 셀 그룹 정보가 상기 적어도 하나의 싱글 레벨 셀 블록으로부터 상기 페이지 버퍼부에 로드될 수 있다.

상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 프로그램 방법에서, 멀티-비트 데이터가 페이지 버퍼부에 로드되고, 상기 멀티-비트 데이터에 기초하여 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들이 복수의 중간 프로그램 상태들로 프로그램되며, 상기 멀티-레벨 셀들이 상기 복수의 중간 프로그램 상태들로 프로그램 되었는지 여부가 검증된다. 상기 멀티-레벨 셀들 각각이 프로그램된 것으로 검증될 때까지 수행된 프로그램 루프의 수에 따라 상기 멀티-레벨 셀들을 복수의 그룹들로 분할하여 상기 멀티-레벨 셀들 각각이 상기 복수의 그룹들 중 어느 그룹에 속하는지를 나타내는 셀 그룹 정보가 생성된다. 상기 셀 그룹 정보에 기초하여 상기 복수의 그룹들에 따라 서로 다른 프로그램 전압들을 인가하여 상기 멀티-레벨 셀들이 상기 멀티-비트 데이터에 상응하는 복수의 목표 프로그램 상태들로 프로그램된다.

일 실시예에서, 상기 복수의 그룹들은 제1 프로그램 루프에서 상응하는 중간 프로그램 상태들로 프로그램되는 제1 멀티-레벨 셀들에 대한 제1 그룹, 상기 제1 프로그램 루프 이후에 수행된 제2 프로그램 루프에서 상응하는 중간 프로그램 상태들로 프로그램되는 제2 멀티-레벨 셀들에 대한 제2 그룹, 및 상기 제2 프로그램 루프 이후에 수행된 제3 프로그램 루프에서 상응하는 중간 프로그램 상태들로 프로그램되는 제3 멀티-레벨 셀들에 대한 제3 그룹을 포함할 수 있다. 상기 멀티-레벨 셀들을 상기 복수의 목표 프로그램 상태들로 프로그램하도록, 상기 제1 그룹에 속하는 상기 제1 멀티-레벨 셀들에 제1 프로그램 전압이 인가되고, 상기 제2 그룹에 속하는 상기 제2 멀티-레벨 셀들에 상기 제1 프로그램 전압보다 높은 전압 레벨을 가지는 제2 프로그램 전압이 인가되며, 상기 제3 그룹에 속하는 상기 제3 멀티-레벨 셀들에 상기 제2 프로그램 전압보다 높은 전압 레벨을 가지는 제3 프로그램 전압이 인가될 수 있다.

일 실시예에서, 상기 제1 프로그램 전압과 상기 제2 프로그램 전압간의 전압 차는 상기 제1 프로그램 루프에서 인가된 프로그램 전압과 상기 제2 프로그램 루프에서 인가된 프로그램 전압간의 전압 차에 기초하여 결정되고, 상기 제2 프로그램 전압과 상기 제3 프로그램 전압간의 전압 차는 상기 제2 프로그램 루프에서 인가된 프로그램 전압과 상기 제3 프로그램 루프에서 인가된 프로그램 전압간의 전압 차에 기초하여 결정될 수 있다.

일 실시예에서, 상기 복수의 그룹들은 제1 프로그램 루프에서 상응하는 중간 프로그램 상태들로 프로그램되는 제1 멀티-레벨 셀들에 대한 제1 그룹, 상기 제1 프로그램 루프 이후에 수행된 제2 프로그램 루프에서 상응하는 중간 프로그램 상태들로 프로그램되는 제2 멀티-레벨 셀들에 대한 제2 그룹, 및 상기 제2 프로그램 루프 이후에 수행된 제3 프로그램 루프에서 상응하는 중간 프로그램 상태들로 프로그램되는 제3 멀티-레벨 셀들에 대한 제3 그룹을 포함할 수 있다. 상기 멀티-레벨 셀들을 상기 복수의 목표 프로그램 상태들로 프로그램하도록, 상기 셀 그룹 정보에 기초하여 상기 제1 그룹에 속하는 상기 제1 멀티-레벨 셀들에 연결된 비트라인들에 제1 포싱 전압이 인가되고, 상기 셀 그룹 정보에 기초하여 상기 제2 그룹에 속하는 상기 제2 멀티-레벨 셀들에 연결된 비트라인들에 상기 제1 포싱 전압보다 낮은 전압 레벨을 가지는 제2 포싱 전압이 인가되며, 상기 셀 그룹 정보에 기초하여 상기 제3 그룹에 속하는 상기 제3 멀티-레벨 셀들에 연결된 비트라인들에 상기 제2 포싱 전압보다 낮은 전압 레벨을 가지는 저 레벨의 전압이 인가되고, 선택된 워드라인에 프로그램 전압이 인가될 수 있다.

본 발명의 실시예들에 따른 비휘발성 메모리 장치의 프로그램 방법은 고속 셀 및 저속 셀을 정확하고 효율적으로 구분하여 문턱 전압 분포의 폭을 감소시킬 수 있다.

또한, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 프로그램 방법은 메모리 셀들의 그룹들에 서로 다른 프로그램 전압들을 인가하여 프로그램 속도를 단축시킬 수 있다.

도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 프로그램 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 프로그램 방법에 따라 프로그램되는 멀티-레벨 셀들의 문턱 전압 분포들의 일 예를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이다.
도 4는 도 3의 제1 프로그램 동작에서 제1 프로그램 상태에 대한 셀 그룹 정보를 생성하는 일 예를 나타내는 도면이다.
도 5는 도 3의 제1 프로그램 동작에서 제1 프로그램 상태에 대한 셀 그룹 정보를 생성하는 다른 예를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작의 일 예를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작의 다른 예를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작에 따른 문턱 전압 분포 증가의 일 예를 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법에서 프로그램 순서의 일 예를 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치에 포함된 메모리 셀 어레이 및 페이지 버퍼부의 일 예를 나타내는 블록도이다.
도 11은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치에 포함된 페이지 버퍼의 일 예를 나타내는 도면이다.
도 12는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치에 포함된 페이지 버퍼의 다른 예를 나타내는 도면이다.
도 13은 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이다.
도 14a 및 도 14b는 도 13의 제1 프로그램 동작에서 제1 프로그램 상태에 대한 셀 그룹 정보를 생성하는 일 예를 나타내는 도면들이다.
도 15는 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이다.
도 16은 도 15의 제1 프로그램 동작에서 제1 프로그램 상태에 대한 셀 그룹 정보를 생성하는 일 예를 나타내는 도면이다.
도 17a 및 도 17b는 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이다.
도 18은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이다.
도 19는 도 18의 제1 프로그램 동작에서 셀 그룹 정보를 생성하는 일 예를 나타내는 도면이다.
도 20은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치에 포함된 페이지 버퍼의 일 예를 나타내는 블록도이다.
도 21은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작의 일 예를 설명하기 위한 도면이다.
도 22는 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법에서 제1 프로그램 동작, 제2 프로그램 동작 및 제3 프로그램 동작에서 인가되는 프로그램 전압들의 일 예를 나타내는 도면이다.
도 23은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작의 다른 예를 설명하기 위한 도면이다.
도 24는 종래의 비휘발성 메모리 장치의 제2 프로그램 동작 또는 제3 프로그램 동작과 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의제2 프로그램 동작 또는 제3 프로그램 동작을 비교한 도면이다.
도 25는 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.
도 26은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 27은 본 발명의 실시예들에 따른 메모리 시스템이 메모리 카드에 응용된 예를 나타내는 도면이다.
도 28은 본 발명의 실시예들에 따른 메모리 시스템이 솔리드 스테이트 드라이브에 응용된 예를 나타내는 도면이다.
도 29는 본 발명의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.

제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제1 구성 요소로 명명될 수 있다.

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.

이하, 첨부한 도면들을 참조하여, 본 발명의 실시예들을 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성 요소에 대해서는 동일하거나 유사한 참조 부호를 사용한다.

도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 프로그램 방법을 나타내는 순서도이고, 도 2는 본 발명의 실시예들에 따른 프로그램 방법에 따라 프로그램되는 멀티-레벨 셀들의 문턱 전압 분포들의 일 예를 나타내는 도면이다.

도 1 및 도 2를 참조하면, 멀티-비트 데이터가 페이지 버퍼부에 로드된다(S111). 상기 멀티-비트 데이터는 각각 2 비트 이상을 가지는 데이터일 수 있다. 일 실시예에서, 상기 멀티-비트 데이터는 적어도 하나의 싱글 레벨 셀 블록으로부터 상기 페이지 버퍼부에 로드될 수 있다. 예를 들어, 호스트로부터 제공된 상기 멀티-비트 데이터가 상기 페이지 버퍼부에 로드되고, 상기 페이지 버퍼부에 로드된 상기 멀티-비트 데이터는 상기 적어도 하나의 싱글 레벨 셀 블록의 복수의 페이지들에 프로그램될 수 있다. 이 후, 상기 멀티-비트 데이터가 상기 적어도 하나의 싱글 레벨 셀 블록의 복수의 페이지들로부터 상기 페이지 버퍼부에 로드될 수 있다. 즉, 상기 적어도 하나의 싱글 레벨 셀 블록이 버퍼 역할을 수행할 수 있다. 다른 실시예에서, 상기 멀티-비트 데이터는, 상기 적어도 하나의 싱글 레벨 셀 블록에 저장되지 않고, 상기 호스트로부터 메모리 컨트롤러를 통하여 상기 페이지 버퍼부에 로드될 수 있다.

상기 페이지 버퍼부에 로드된 멀티-비트 데이터에 기초하여 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들이 복수의 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)로 프로그램된다(S111). 예를 들어, 상기 멀티-레벨 셀들에 연결된 워드라인에 증가형 스텝 펄스(Incremental Step Pulse)를 인가하여 상기 멀티-레벨 셀들이 프로그램될 수 있다. 상기 증가형 스텝 펄스는 매 프로그램 루프마다 소정의 스텝 전압만큼 증가될 수 있다.

복수의 중간 검증 전압들(VIVRF1, VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)을 이용하여 상기 멀티-레벨 셀들이 복수의 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)로 프로그램되었는지 여부가 검증될 수 있다(S115). 예를 들어, 제1 중간 프로그램 상태(IP1)에 대한 검증 동작을 수행하도록, 제1 중간 프로그램 상태(IP1)로 프로그램되는 멀티-레벨 셀들에 대하여 제1 중간 검증 전압(VIRF1)을 인가함으로써 상기 멀티-레벨 셀들의 문턱 전압들과 제1 중간 검증 전압(VIRF1)을 비교할 수 있다. 상기 비교의 결과로서 멀티-레벨 셀이 제1 중간 검증 전압(VIRF1)보다 높은 문턱 전압을 가지는 경우, 상기 멀티-레벨 셀이 상기 검증을 통과한 것으로 판단되고, 상기 멀티-레벨 셀에 프로그램 전압이 더 이상 인가되지 않을 수 있다. 또한, 제2 내지 제7 중간 프로그램 상태들(IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작도, 이와 유사한 방식으로, 제2 내지 제7 중간 검증 전압들(VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)과 멀티-레벨 셀들의 문턱 전압들을 비교함으로써 수행될 수 있다.

상기 검증을 수행하는 동안, 상기 검증의 결과에 기초하여 셀 그룹 정보가 생성될 수 있다(S117). 일 실시예에서, 복수의 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7) 각각에 상응하는 상위 중간 프로그램 상태에 대한 검증의 결과가 소정의 기준을 만족하는지 여부에 기초하여 복수의 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7) 각각에 대한 셀 그룹 정보가 생성될 수 있다(S117). 실시예에 따라, 상기 소정의 기준은, 상기 상위 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 오프-셀(off-cell)들의 수(또는 상기 멀티-레벨 셀들에 대한 오프-셀들의 비율)가 소정의 값 이상인 것이거나, 상기 상위 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 적어도 하나가 오프-셀이 되는 프로그램 루프 이후 수행된 프로그램 루프들의 수가 소정의 값 이상인 것일 수 있다. 또한, 상기 셀 그룹 정보는, 상기 멀티-레벨 셀들 각각이 문턱 전압의 증가가 상대적으로 빠른 멀티-레벨 셀들을 포함하는 고속 셀(fast cell) 그룹 또는 문턱 전압의 증가가 상대적으로 느린 멀티-레벨 셀들을 포함하는 저속 셀(slow cell) 그룹 중 어느 그룹에 속하는지를 나타낼 수 있다.

예를 들어, 제2 중간 프로그램 상태(IP2)에 대한 검증의 결과가 소정의 기준을 만족하는지 여부에 기초하여 제1 중간 프로그램 상태(IP1)에 대한 셀 그룹 정보가 생성될 수 있다. 일 예에서, 제2 중간 프로그램 상태(IP2)의 오프-셀들의 수가 소정의 값 이상이 될 때, 제1 중간 프로그램 상태(IP1)의 오프-셀들을 고속 셀(fast cell)로 표시하고, 제1 중간 프로그램 상태(IP1)의 온-셀들을 저속 셀(slow cell)로 표시할 수 있다. 이에 따라, 제1 중간 프로그램 상태(IP1)의 멀티-레벨 셀들 각각이 상기 고속 셀 그룹 또는 상기 저속 셀 그룹 중 어느 그룹에 속하는지를 나타내는 제1 중간 프로그램 상태(IP1)에 대한 셀 그룹 정보가 생성될 수 있다. 이와 유사하게, 제2 내지 제6 중간 프로그램 상태들(IP2, IP3, IP4, IP5, IP6)에 대한 셀 그룹 정보는 제3 내지 제7 중간 프로그램 상태들(IP3, IP4, IP5, IP6, IP7)에 대한 검증 결과에 기초하여 생성될 수 있다. 한편, 제7 중간 프로그램 상태(IP7)에 대한 셀 그룹 정보는, 자신의 오프-셀들의 수 또는 프로그램 루프 수에 기초하여 생성될 수 있다.

다른 실시예에서, 상기 멀티-레벨 셀들 각각이 프로그램된 것으로 검증될 때까지 수행된 프로그램 루프의 수에 따라 상기 멀티-레벨 셀들을 복수의 그룹들로 분할하여 상기 멀티-레벨 셀들 각각이 상기 복수의 그룹들 중 어느 그룹에 속하는지를 나타내는 셀 그룹 정보를 생성될 수 있다. 예를 들어, 제1 프로그램 동작이 제1 내지 제8 프로그램 루프들을 포함하고, 상기 복수의 그룹들이 제1 내지 제4 그룹들을 포함하는 경우, 제1 및 제2 프로그램 루프들에서 프로그램된 멀티-레벨 셀들(즉, 제1 및 제2 프로그램 루프들에서 오프-셀이 된 멀티-레벨 셀들)은 제1 그룹으로 표시되고, 제3 및 제4 프로그램 루프들에서 프로그램된 멀티-레벨 셀들은 제2 그룹으로 표시되며, 제5 및 제6 프로그램 루프들에서 프로그램된 멀티-레벨 셀들은 제3 그룹으로 표시되며, 제7 및 제8 프로그램 루프들에서 프로그램된 멀티-레벨 셀들은 제4 그룹으로 표시될 수 있다. 이에 따라, 상기 멀티-레벨 셀들 각각이 상기 제1 내지 제4 그룹들 중 어느 그룹에 속하는지를 나타내는 셀 그룹 정보가 생성될 수 있다.

이와 같이, 데이터 로딩(S111), 프로그램 전압 인가(S113), 프로그램 검증(S115) 및 셀 그룹 정보 생성(S117)을 수행함으로써, 제1 프로그램 동작이 수행될 수 있다. 한편, 프로그램 전압 인가(S113) 및 프로그램 검증(S115)은 상기 멀티-레벨 셀들이 복수의 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)로 프로그램되는 것이 완료될 때까지 반복적으로 수행될 수 있다. 또한, 셀 그룹 정보 생성(S117)은 프로그램 검증(S115) 동안 수행될 수 있고, 추가적인 검증 전압 또는 그룹 구분 전압의 인가 없이 프로그램 검증(S115)의 결과를 이용하여 수행될 수 있다.

일 실시예에서, 상기 제1 프로그램 동작에 의해 생성된 상기 셀 그룹 정보는 상기 페이지 버퍼부에 포함된 래치들에 저장 및 유지될 수 있다. 다른 실시예에서, 상기 제1 프로그램 동작에 의해 생성된 상기 셀 그룹 정보는 상기 적어도 하나의 싱글 레벨 셀 블록에 프로그램될 수 있다. 이 경우, 상기 적어도 하나의 싱글 레벨 셀 블록에 저장된 상기 셀 그룹 정보는, 상기 멀티-레벨 셀들을 복수의 목표 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7)로 프로그램할 때, 상기 적어도 하나의 싱글 레벨 셀 블록으로부터 상기 페이지 버퍼부에 다시 로드될 수 있다.

복수의 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)을 가지는 멀티-레벨 셀들은 상기 셀 그룹 정보에 기초하여 복수의 목표 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7)로 프로그램될 수 있다(S130). 일 실시예에서, 상기 멀티-레벨 셀들을 복수의 목표 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7)로 프로그램하도록, 제2 프로그램 동작(S150) 및 제3 프로그램 동작(S170)이 수행될 수 있다.

제2 프로그램 동작(S150)에 의해, 복수의 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)을 가지는 멀티-레벨 셀들이 복수의 중간 검증 전압들(VIVRF1’, VIVRF2’, VIVRF3’, VIVRF4’, VIVRF5’, VIVRF6’, VIVRF7’)을 이용하여 복수의 중간 프로그램 상태들(IP1’, IP2’, IP3’, IP4’, IP5’, IP6’, IP7’)로 각각 프로그램될 수 있다. 제2 프로그램 동작(S150)에 대한 복수의 중간 검증 전압들(VIVRF1’, VIVRF2’, VIVRF3’, VIVRF4’, VIVRF5’, VIVRF6’, VIVRF7’)은 제1 프로그램 동작(S110)에 대한 복수의 중간 검증 전압들(VIVRF1, VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)보다 각각 높은 전압 레벨을 가질 수 있다.

또한, 제3 프로그램 동작(S170)에 의해, 복수의 중간 프로그램 상태들(IP1’, IP2’, IP3’, IP4’, IP5’, IP6’, IP7’)을 가지는 멀티-레벨 셀들이 복수의 검증 전압들(VVRF1, VVRF2, VVRF3, VVRF4, VVRF5, VVRF6, VVRF7)을 이용하여 복수의 목표 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7)로 각각 프로그램될 수 있다. 제3 프로그램 동작(S170)에 대한 복수의 검증 전압들(VVRF1, VVRF2, VVRF3, VVRF4, VVRF5, VVRF6, VVRF7)은 제2 프로그램 동작(S150)에 대한 복수의 중간 검증 전압들(VIVRF1’, VIVRF2’, VIVRF3’, VIVRF4’, VIVRF5’, VIVRF6’, VIVRF7’)보다 각각 높은 전압 레벨을 가질 수 있다.

실시예에 따라, 데이터 독출 시 인가되는 독출 전압의 수, 비트 에러 율(bit-error rate), 비트 에러의 분포 등을 고려하여, 목표 상태들(E0, P1, P2, P3, P4, P5, P6, P7)에 다양한 멀티-비트 데이터의 로직 값들이 할당될 수 있다. 일 예에서, 소거 상태(E0), 제1 목표 프로그램 상태(P1), 제2 목표 프로그램 상태(P2), 제3 목표 프로그램 상태(P3), 제4 목표 프로그램 상태(P4), 제5 목표 프로그램 상태(P5), 제6 목표 프로그램 상태(P6) 및 제7 목표 프로그램 상태(P7)에 멀티-비트 데이터의 값들 “111”, “011”, “001”, “101”, “100”, “000”, “010” 및 “110”이 각각 할당될 수 있다.

제2 프로그램 동작(S150) 및 제3 프로그램 동작(S170)은 상기 셀 그룹 정보에 기초하여 수행될 수 있다. 일 실시예에서, 제2 프로그램 동작(S150) 및/또는 제3 프로그램 동작(S170) 동안, 상기 셀 그룹 정보에 의해 표시되는 복수의 그룹들에 따라 서로 다른 프로그램 전압들이 인가될 수 있다. 일 예에서, 상기 고속 셀 그룹에 속하는 멀티-레벨 셀들에 제1 프로그램 전압이 인가되고, 상기 저속 셀 그룹에 속하는 멀티-레벨 셀들에 상기 제1 프로그램 전압보다 높은 전압 레벨을 가지는 제2 프로그램 전압이 인가될 수 있다. 이에 따라, 목표 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 각각이 좁은 폭을 가질 수 있다. 다른 예에서, 상기 제1 그룹에 속하는 멀티-레벨 셀들에 제1 프로그램 전압이 인가되고, 상기 제2 그룹에 속하는 멀티-레벨 셀들에 상기 제1 프로그램 전압보다 높은 전압 레벨을 가지는 제2 프로그램 전압이 인가되며, 상기 제3 그룹에 속하는 멀티-레벨 셀들에 상기 제2 프로그램 전압보다 높은 전압 레벨을 가지는 제3 프로그램 전압이 인가되고, 상기 제4 그룹에 속하는 멀티-레벨 셀들에 상기 제3 프로그램 전압보다 높은 전압 레벨을 가지는 제4 프로그램 전압이 인가될 수 있다. 이에 따라, 제2 프로그램 동작(S150) 및/또는 제3 프로그램 동작(S170)의 프로그램 시간이 단축될 수 있다.

다른 실시예에서, 제2 프로그램 동작(S150) 및/또는 제3 프로그램 동작(S170) 동안, 상기 셀 그룹 정보에 의해 표시되는 복수의 그룹들에 따라 서로 다른 비트라인 전압들이 인가될 수 있다. 일 예에서, 상기 저속 셀 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 저 레벨의 전압(예를 들어, 접지 전압)이 인가되고, 상기 고속 셀 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 상기 저 레벨의 전압보다 높은 전압 레벨을 가지는 포싱 전압이 인가될 수 있다. 이에 따라, 목표 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 각각이 좁은 폭을 가질 수 있다. 다른 예에서, 상기 제1 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 제1 포싱 전압이 인가되고, 상기 제2 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 상기 제1 포싱 전압보다 낮은 전압 레벨을 가지는 제2 포싱 전압이 인가되며, 상기 제3 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 상기 제2 포싱 전압보다 낮은 전압 레벨을 가지는 제3 포싱 전압이 인가되고, 상기 제4 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 상기 제3 포싱 전압보다 낮은 전압 레벨을 가지는 상기 저 레벨의 전압이 인가될 수 있다. 이에 따라, 제2 프로그램 동작(S150) 및/또는 제3 프로그램 동작(S170)의 프로그램 시간이 단축될 수 있다.

상술한 바와 같이, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 프로그램 방법에서, 제1 프로그램 동작(S110)이 수행되는 동안 프로그램 검증(S115)의 결과에 기초하여 상기 셀 그룹 정보가 생성되고, 상기 셀 그룹 정보에 기초하여 제2 프로그램 동작(S150) 및/또는 제3 프로그램 동작(S170)이 수행될 수 있다. 이에 따라, 목표 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 각각이 좁은 폭을 가질 수 있다. 또한, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 프로그램 방법은 제2 프로그램 동작(S150) 및/또는 제3 프로그램 동작(S170)의 프로그램 시간을 단축시킬 수 있다.

한편, 도 2에는 3 비트의 데이터를 저장하는 멀티-레벨 셀들에 대한 예가 도시되어 있으나, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 프로그램 방법은 2 비트 이상의 데이터를 저장하는 멀티-레벨 셀들을 프로그램할 수 있다.

도 3은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이고, 도 4는 도 3의 제1 프로그램 동작에서 제1 프로그램 상태에 대한 셀 그룹 정보를 생성하는 일 예를 나타내는 도면이며, 도 5는 도 3의 제1 프로그램 동작에서 제1 프로그램 상태에 대한 셀 그룹 정보를 생성하는 다른 예를 나타내는 도면이다.

도 2 및 도 3을 참조하면, 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들에 프로그램 전압이 인가된다(S210). 상기 프로그램 전압은, 매 프로그램 루프마다 소정의 스텝 전압만큼 증가하는 증가형 스텝 펄스일 수 있다.

상기 프로그램 전압을 인가한 후, 제1 내지 제7 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 순차적으로 수행될 수 있다(S220). 예를 들어, 제1 중간 검증 전압(VIVRF1)을 이용하여 제1 중간 프로그램 상태(IP1)에 대한 검증 동작이 수행된 후, 제2 중간 검증 전압(VIVRF2)을 이용하여 제2 중간 프로그램 상태(IP2)에 대한 검증 동작이 수행될 수 있다. 또한, 제3 내지 제7 중간 검증 전압들(VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)을 이용하여 제3 내지 제7 중간 프로그램 상태들(IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 순차적으로 수행될 수 있다.

각 중간 프로그램 상태에 대한 셀 그룹 정보를 생성하기 위하여(S250), 각 중간 프로그램 상태(예를 들어, IP1)에 상응하는 상위 중간 프로그램 상태(예를 들어, IP2)에 대한 검증 동작이 수행되는 동안(또는 상기 검증 동작이 수행된 후)(S220), 상기 상위 중간 프로그램 상태의 오프-셀들이 카운트될 수 있다(S230). 상기 상위 중간 프로그램 상태의 카운트된 오프-셀들의 수(또는 상기 상위 중간 프로그램 상태의 멀티-레벨 셀들에 대한 오프-셀들의 비율)는 소정의 값과 비교될 수 있다(S240).

상기 상위 중간 프로그램 상태의 카운트된 오프-셀들의 수가 상기 소정의 값 이하인 경우(S240: 아니오), 상기 상위 중간 프로그램 상태에 상응하는 중간 프로그램 상태에 대한 셀 그룹 정보가 생성되지 않고, 상기 상위 중간 프로그램 상태의 다음 중간 프로그램 상태에 대한 검증 동작이 수행될 수 있다(S220). 모든 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 수행된 후, 모든 멀티-레벨 셀들이 프로그램된 것으로 검증되지 않은 경우(S260: 아니오), 다음 프로그램 루프가 진행될 수 있다. 즉, 상기 증가형 스텝 펄스가 소정의 스텝 전압만큼 증가되고, 상기 멀티-레벨 셀들에 다시 인가될 수 있다(S210).

상기 상위 중간 프로그램 상태의 카운트된 오프-셀들의 수가 상기 소정의 값 이상인 경우(S240: 예), 상기 상위 중간 프로그램 상태에 상응하는 중간 프로그램 상태에 대한 셀 그룹 정보가 생성될 수 있다(S250). 상기 셀 그룹 정보는, 멀티-레벨 셀들 각각이 고속 셀(fast cell) 그룹 또는 저속 셀(slow cell) 그룹 중 어느 그룹에 속하는지를 나타낼 수 있다.

일 실시예에서, 도 4에 도시된 바와 같이, 제2 중간 프로그램 상태(IP2)의 카운트된 오프-셀들(310)(즉, 문턱 전압이 제2 중간 검증 전압(VIVRF2)보다 높은 제2 중간 프로그램 상태(IP2)의 멀티-레벨 셀들)의 수가 상기 소정의 값 이상이 되는 프로그램 루프(또는 다음 프로그램 루프)에서, 제1 중간 프로그램 상태(IP1)의 오프-셀들(323)(즉, 문턱 전압이 제1 중간 검증 전압(VIVRF1)보다 높은 제1 중간 프로그램 상태(IP1)의 멀티-레벨 셀들)은 고속 셀들로 표시되고, 제1 중간 프로그램 상태(IP1)의 온-셀들(321)(즉, 문턱 전압이 제1 중간 검증 전압(VIVRF1)보다 낮은 제1 중간 프로그램 상태(IP1)의 멀티-레벨 셀들)은 저속 셀들로 표시될 수 있다. 이에 따라, 제1 중간 프로그램 상태(IP1)의 멀티-레벨 셀들 각각이 상기 고속 셀 그룹 또는 상기 저속 셀 그룹 중 어느 그룹에 속하는지를 나타내는 상기 셀 그룹 정보가 생성될 수 있다(S250). 실시예에 따라, 제1 중간 검증 전압(VIVRF1)보다 낮은 제1 중간 프로그램 상태(IP1)의 멀티-레벨 셀들(즉, 상기 온-셀들)이 “1”로 표시되어 상기 셀 그룹 정보가 생성되거나, 제1 중간 검증 전압(VIVRF1)보다 높은 제1 중간 프로그램 상태(IP1)의 멀티-레벨 셀들(즉, 상기 오프-셀들)이 “1”로 표시되어 상기 셀 그룹 정보가 생성될 수 있다.

이와 유사하게, 제3 내지 제7 중간 프로그램 상태들(IP3, IP4, IP5, IP6, IP7)의 카운트된 오프-셀들의 수가 상기 소정의 값 이상인 경우(S240: 예), 제2 내지 제6 중간 프로그램 상태들(IP2, IP3, IP4, IP5, IP6)에 대한 상기 셀 그룹 정보가 생성될 수 있다(S250). 한편, 제7 중간 프로그램 상태(IP7)에 대한 상기 셀 그룹 정보는, 자신의 오프-셀들을 소정의 다른 값과 비교함으로써, 생성될 수 있다. 이와 같이, 제1 내지 제7 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 상기 셀 그룹 정보가, 추가적인 중간 검증 전압 또는 추가적인 구분 전압의 인가 없이, 제1 내지 제7 중간 검증 전압들(VIVRF1, VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)을 이용하여 생성됨으로써, 상기 셀 그룹 정보의 생성이 신속하게 수행될 수 있다. 또한, 상기 멀티-레벨 셀들 각각이 상응하는 목표 검증 전압들(VVRF1, VVRF2, VVRF3, VVRF4, VVRF5, VVRF6, VVRF7) 근처의 중간 검증 전압(VIVRF1, VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)을 이용하여 상기 고속 셀 그룹 또는 상기 저속 셀 그룹으로 구분되므로, 정확한 셀 그룹 정보가 생성될 수 있다.

다른 실시예에서, 도 5에 도시된 바와 같이, 제3 중간 프로그램 상태(IP3)의 카운트된 오프-셀들(330)의 수가 상기 소정의 값 이상이 되는 프로그램 루프(또는 다음 프로그램 루프)에서, 제1 중간 프로그램 상태(IP1)의 오프-셀들(343)은 고속 셀들로 표시되고, 제1 중간 프로그램 상태(IP1)의 온-셀들(341)은 저속 셀들로 표시될 수 있다. 이에 따라, 제1 중간 프로그램 상태(IP1)의 멀티-레벨 셀들 각각이 상기 고속 셀 그룹 또는 상기 저속 셀 그룹 중 어느 그룹에 속하는지를 나타내는 상기 셀 그룹 정보가 생성될 수 있다(S250).

이와 유사하게, 제4 내지 제7 중간 프로그램 상태들(IP4, IP5, IP6, IP7)의 카운트된 오프-셀들의 수가 상기 소정의 값 이상인 경우(S240: 예), 제2 내지 제5 중간 프로그램 상태들(IP2, IP3, IP4, IP5)에 대한 상기 셀 그룹 정보가 생성될 수 있다(S250). 한편, 제6 중간 프로그램 상태(IP6) 및 제7 중간 프로그램 상태(IP7)에 대한 상기 셀 그룹 정보는, 자신의 오프-셀들을 소정의 다른 값들과 비교함으로써, 생성될 수 있다. 이에 따라, 상기 셀 그룹 정보가 신속하고 정확하게 생성될 수 있다.

한편, 도 4에는 다음 상위 중간 프로그램 상태(예를 들어, IP2)에 대한 검증의 결과에 기초하여 현재 중간 프로그램 상태(예를 들어, IP1)에 대한 셀 그룹 정보를 생성하는 예가 도시되어 있고, 도 5에는 두 상태 위의 중간 프로그램 상태(예를 들어, IP3)에 대한 검증의 결과에 기초하여 현재 중간 프로그램 상태(예를 들어, IP1)에 대한 셀 그룹 정보를 생성하는 예가 도시되어 있으나, 실시예에 따라, 상기 셀 그룹 정보는 임의의 상위 중간 프로그램 상태에 대한 검증의 결과에 기초하여 생성될 수 있다. 일 실시예에서, 프로그램 펄스의 인가에 따른 각 중간 프로그램 상태의 문턱 전압 분포의 폭, 중간 검증 전압의 간격 등에 따라 각 중간 프로그램 상태에 상응하는 상위 중간 프로그램 상태가 결정될 수 있다. 예를 들어, 원-샷(one-shot) 펄스의 인가에 따른 제1 중간 프로그램 상태(IP1)의 문턱 전압 분포에서, 제2 중간 검증 전압(VIVRF2)과 제1 중간 검증 전압(VIVRF1)의 간격에 상응하는 멀티-레벨 셀들이 고속 셀 그룹에 포함되고, 제1 중간 프로그램 상태(IP1)의 나머지 멀티-레벨 셀들이 저속 셀 그룹에 포함되도록, 제1 중간 프로그램 상태(IP1)에 상응하는 상위 중간 프로그램 상태로서 제2 중간 프로그램 상태(IP2)가 결정될 수 있다.

복수의 프로그램 루프들이 수행되고, 모든 멀티-레벨 셀들이 프로그램된 것으로 검증된 경우(S260: 예), 제1 프로그램 동작이 완료된다. 상술한 바와 같이, 본 발명의 일 실시예에 따른 프로그램 방법의 제1 프로그램 동작에서, 상응하는 상위 중간 프로그램 상태의 오프-셀들의 수가 소정의 값 이상이 되는 프로그램 루프에서 각 중간 프로그램 상태의 멀티-레벨 셀들을 고속 셀 그룹 및 저속 셀 그룹으로 구분함으로써, 셀 그룹 정보가 신속하고 정확하게 생성될 수 있다.

도 6은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작의 일 예를 설명하기 위한 도면이다.

도 6을 참조하면, 제2 프로그램 동작 및/또는 제3 프로그램 동작은 제1 프로그램 동작에서 생성된 셀 그룹 정보를 이용하여 고속 셀 그룹 및 저속 셀 그룹에 서로 다른 프로그램 전압들(PGM1, PGM2)을 인가함으로써 수행될 수 있다.

예를 들어, 각각의 중간 프로그램 상태들에 대한 고속 셀 그룹에 속하는 멀티-레벨 셀들에 제1 프로그램 전압(PGM1)이 인가되고, 저속 셀 그룹에 속하는 멀티-레벨 셀들에 제1 프로그램 전압(PGM1)보다 높은 전압 레벨을 가지는 제2 프로그램 전압(PGM2)이 인가될 수 있다. 일 실시예에서, 제1 프로그램 전압(PGM1) 및 제2 프로그램 전압(PGM2) 각각은 증가형 스텝 펄스일 수 있다. 예를 들어, 검증 동작(VRF)에 의해 모든 멀티-레벨 셀들이 프로그램된 것으로 검증되지 않은 경우, 제1 프로그램 전압(PGM1) 및 제2 프로그램 전압(PGM2)은 각각 소정의 스텝 전압만큼 증가되고, 멀티-레벨 셀들에 다시 인가될 수 있다.

상술한 바와 같이, 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 및/또는 제3 프로그램 동작에서, 고속 셀 그룹 및 저속 셀 그룹에 서로 다른 프로그램 전압들이 인가됨으로써, 각 목표 프로그램 상태가 좁은 폭을 가질 수 있다.

도 7은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작의 다른 예를 설명하기 위한 도면이다.

도 7을 참조하면, 제2 프로그램 동작 및/또는 제3 프로그램 동작은 제1 프로그램 동작에서 생성된 셀 그룹 정보를 이용하여 고속 셀 그룹 및 저속 셀 그룹에 서로 다른 비트라인 전압들(VSS, VF)을 인가함으로써 수행될 수 있다.

예를 들어, 각각의 중간 프로그램 상태들에 대한 저속 셀 그룹에 속하는 멀티-레벨 셀들(351)에 연결된 비트라인들(BL1)에 저 레벨의 전압(예를 들어, 접지 전압(VSS))이 인가되고, 고속 셀 그룹에 속하는 멀티-레벨 셀들(352)에 연결된 비트라인들(BL2)에 포싱 전압(FC)이 인가될 수 있다. 또한, 이미 프로그램된 것으로 검증되었거나, 프로그램되지 않는 멀티-레벨 셀들(353)에 연결된 비트라인들(BL3)에는 고 레벨의 전압(예를 들어, 고 전원 전압(VDD))이 인가될 수 있다. 포싱 전압(FC)은 저 레벨의 전압(VSS)보다 높은 전압 레벨을 가지고, 고 레벨의 전압(VDD)보다 낮은 전압 레벨을 가질 수 있다. 멀티-레벨 셀들(351, 352, 353)이 연결된 워드라인(WL)에는 프로그램 전압(VPGM)이 인가될 수 있다. 포싱 전압(FC)이 인가된 멀티-레벨 셀(352)은 그 채널이 부스팅되어 프로그램 전압(VPGM)의 유효 전압 레벨이 낮아질 수 있다. 이에 따라, 포싱 전압(FC)이 인가되는 상기 고속 셀 그룹에 속하는 멀티-레벨 셀들(352)의 문턱 전압 증가가 저 레벨의 전압(VSS)이 인가되는 상기 저속 셀 그룹에 속하는 멀티-레벨 셀들(351)의 문턱 전압 증가보다 작을 수 있다.

이에 따라, 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 및/또는 제3 프로그램 동작에서, 고속 셀 그룹 및 저속 셀 그룹에 서로 다른 비트라인 전압들이 인가됨으로써, 각 목표 프로그램 상태가 좁은 폭을 가질 수 있다.

도 8은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작에 따른 문턱 전압 분포 증가의 일 예를 나타내는 도면이다.

도 8을 참조하면, 제2 프로그램 동작 동안, 고속 셀 그룹에 속하는 멀티-레벨 셀들(363)의 문턱 전압 증가가 저속 셀 그룹에 속하는 멀티-레벨 셀들(361)의 문턱 전압 증가보다 작을 수 있다. 일 실시예에서, 도 6에 도시된 바와 같이, 상기 고속 셀 그룹에 속하는 멀티-레벨 셀들(363)에 제1 프로그램 전압(PGM1)을 인가하고, 상기 저속 셀 그룹에 속하는 멀티-레벨 셀들(363)에 제1 프로그램 전압(PGM1)보다 높은 전압 레벨을 가지는 제2 프로그램 전압(PGM2)을 인가함으로써, 상기 제2 프로그램 동작에 의한 문턱 전압 분포의 폭을 좁힐 수 있다. 다른 실시예에서, 도 7에 도시된 바와 같이, 상기 저속 셀 그룹에 속하는 멀티-레벨 셀들(361)에 저 레벨의 전압(VSS)을 인가하고, 상기 고속 셀 그룹에 속하는 멀티-레벨 셀들(363)에 저 레벨의 전압(VSS)보다 높은 전압 레벨을 가지는 포싱 전압(VF)을 인가함으로써, 상기 제2 프로그램 동작에 의한 문턱 전압 분포의 폭을 좁힐 수 있다.

제3 프로그램 동작 동안, 고속 셀 그룹에 속하는 멀티-레벨 셀들(373) 및 저속 셀 그룹에 속하는 멀티-레벨 셀들(371)에 서로 다른 프로그램 전압들 및/또는 서로 다른 비트라인 전압들을 인가함으로써, 상기 제3 프로그램 동작에 의한 목표 프로그램 상태의 폭을 더욱 좁힐 수 있다.

도 9는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법에서 프로그램 순서의 일 예를 나타내는 도면이고, 도 10은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치에 포함된 메모리 셀 어레이 및 페이지 버퍼부의 일 예를 나타내는 블록도이며, 도 11은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치에 포함된 페이지 버퍼의 일 예를 나타내는 도면이고, 도 12는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치에 포함된 페이지 버퍼의 다른 예를 나타내는 도면이다.

도 9 및 도 10을 참조하면, 멀티-비트 데이터가 비휘발성 메모리 장치(400)의 페이지 버퍼부(450)에 로드되고, 멀티-레벨 셀 블록(430)의 제1 워드라인(WL1)에 대한 제1 프로그램 동작이 수행된다. 일 실시예에서, 제1 워드라인(WL1)에 대한 상기 제1 프로그램 동작을 수행하도록, 호스트(미도시)로부터 제공된 멀티-비트 데이터가 메모리 컨트롤러(미도시)로부터 페이지 버퍼부(450)에 로드될 수 있다. 다른 실시예에서, 상기 호스트로부터 제공된 멀티-비트 데이터가 페이지 버퍼부(450)에 로드되고, 페이지 버퍼부(450)에 로드된 상기 멀티-비트 데이터가 적어도 하나의 싱글 레벨 셀 블록(410)의 복수의 페이지들(411)에 프로그램될 수 있다. 이 후, 제1 워드라인(WL1)에 대한 상기 제1 프로그램 동작을 수행하도록, 상기 멀티-비트 데이터가 복수의 페이지들(411)로부터 페이지 버퍼부(450)에 로드될 수 있다. 상기 제1 프로그램 동작이 수행되는 동안, 제1 워드라인(WL1)에 대한 셀 그룹 정보가 생성될 수 있다.

일 실시예에서, 도 11에 도시된 바와 같이, 페이지 버퍼부(450)의 각 페이지 버퍼(451a)는 제1 내지 제3 데이터 래치들(452a, 453a, 454a) 및 하나의 셀 그룹 정보 래치(455a)를 포함할 수 있다. 제1 내지 제3 데이터 래치들(452a, 453a, 454a)에는 제1 워드라인(WL1)에 대한 상기 제1 프로그램 동작을 위한 상기 멀티-비트 데이터가 저장될 수 있다. 제1 워드라인(WL1)에 대한 상기 제1 프로그램 동작이 수행되는 동안, 셀 그룹 정보 래치(455a)에는 제1 워드라인(WL1)에 대한 상기 셀 그룹 정보가 저장될 수 있다.

다른 실시예에서, 도 12에 도시된 바와 같이, 페이지 버퍼부(450)의 각 페이지 버퍼(451b)는 제1 내지 제3 데이터 래치들(452b, 453b, 454b) 및 제1 내지 제3 셀 그룹 정보 래치들(455b, 456b, 457b)를 포함할 수 있다. 제1 내지 제3 데이터 래치들(452a, 453a, 454a)에는 제1 워드라인(WL1)에 대한 상기 제1 프로그램 동작을 위한 상기 멀티-비트 데이터가 저장될 수 있다. 제1 워드라인(WL1)에 대한 상기 제1 프로그램 동작이 수행되는 동안, 제1 내지 제3 셀 그룹 정보 래치들(455b, 456b, 457b) 중 하나의 래치에는 제1 워드라인(WL1)에 대한 상기 셀 그룹 정보가 저장될 수 있다.

제2 워드라인(WL2)에 대한 제1 프로그램 동작이 수행된 후, 제1 워드라인(WL1)에 대한 제2 프로그램 동작이 수행된다. 이에 따라, 제1 워드라인(WL1)에 대한 상기 제2 프로그램 동작을 수행하기 위하여, 상기 멀티-비트 데이터가 상기 메모리 컨트롤러로부터 또는 복수의 페이지들(411)로부터 페이지 버퍼부(450)에 다시 로드될 수 있다. 제1 워드라인(WL1)에 대한 상기 제2 프로그램 동작은 제1 워드라인(WL1)에 대한 상기 셀 그룹 정보에 기초하여 수행될 수 있다. 즉, 제1 워드라인(WL1)에 대한 상기 제2 프로그램 동작을 수행하기 위하여, 제1 워드라인(WL1)에 대한 상기 셀 그룹 정보가 페이지 버퍼부(450)에 로드 또는 유지되는 것이 요구될 수 있다.

일 실시예에서, 셀 그룹 정보 래치(455a)에 저장된 제1 워드라인(WL1)에 대한 상기 셀 그룹 정보가, 상기 제1 프로그램 동작이 수행된 후, 적어도 하나의 싱글 레벨 셀 블록(410)의 셀 그룹 정보 페이지(413)에 프로그램될 수 있다. 이 후, 제1 워드라인(WL1)에 대한 상기 제2 프로그램 동작이 수행될 때, 제1 워드라인(WL1)에 대한 상기 셀 그룹 정보가 셀 그룹 정보 페이지(413)로부터 페이지 버퍼부(450)에 로드될 수 있다.

다른 실시예에서, 제1 워드라인(WL1)에 대한 상기 제1 프로그램 동작 동안 생성된 셀 그룹 정보가 제1 내지 제3 셀 그룹 정보 래치들(455b, 456b, 457b) 중 하나의 래치에 저장되고, 제2 워드라인(WL1)에 대한 상기 제1 프로그램 동작 동안 생성된 셀 그룹 정보가 제1 내지 제3 셀 그룹 정보 래치들(455b, 456b, 457b) 중 다른 하나의 래치에 저장될 수 있다. 이에 따라, 제1 워드라인(WL1)에 대한 셀 그룹 정보가 메모리 블록(예를 들어, 싱글 레벨 셀 블록(410))에 저장하지 않고도, 페이지 버퍼부(450)에 제1 워드라인(WL1)에 대한 셀 그룹 정보가 유지될 수 있다.

제3 워드라인(WL3)에 대한 제1 프로그램 동작이 수행되고, 제2 워드라인(WL2)에 대한 제2 프로그램 동작이 수행된 후, 제1 워드라인(WL1)에 대한 제3 프로그램 동작이 수행된다. 이에 따라, 제1 워드라인(WL1)에 대한 상기 제3 프로그램 동작을 수행하기 위하여, 상기 멀티-비트 데이터가 상기 메모리 컨트롤러로부터 또는 복수의 페이지들(411)로부터 페이지 버퍼부(450)에 다시 로드될 수 있다. 제1 워드라인(WL1)에 대한 상기 제3 프로그램 동작은 제1 워드라인(WL1)에 대한 상기 셀 그룹 정보에 기초하여 수행될 수 있다. 일 실시예에서, 제1 워드라인(WL1)에 대한 상기 제3 프로그램 동작을 수행하도록, 제1 워드라인(WL1)에 대한 상기 셀 그룹 정보가 셀 그룹 정보 페이지(413)로부터 페이지 버퍼부(450)에 다시 로드될 수 있다. 다른 실시예에서, 각 페이지 버퍼(451b)가 적어도 3 개의 셀 그룹 정보 래치들(455b, 456b, 457b)을 포함함으로써, 페이지 버퍼부(450)에 제1 워드라인(WL1)에 대한 상기 셀 그룹 정보가 유지될 수 있다.

본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법에서, 각각의 워드라인들(WL1, WL2, WL3)에 대한 제1 내지 제3 프로그램 동작들이 상술한 순서로 수행됨으로써, 워드라인 커플링이 최소화될 수 있다. 또한, 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법에서, 각각의 워드라인들(WL1, WL2, WL3)에 대한 제1 프로그램 동작 동안 생성된 상기 셀 그룹 정보가 싱글 레벨 셀 블록(410) 또는 각 페이지 버퍼(451b)에 포함된 복수의 셀 그룹 정보 래치들(455b, 456b, 457b)에 저장되고, 제2 프로그램 동작 및/또는 제3 프로그램 동작은 상기 셀 그룹 정보에 기초하여 수행될 수 있다. 이에 따라, 각 목표 프로그램 상태가 좁은 폭을 가질 수 있다.

도 13은 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이고, 도 14a 및 도 14b는 도 13의 제1 프로그램 동작에서 제1 프로그램 상태에 대한 셀 그룹 정보를 생성하는 일 예를 나타내는 도면들이다.

도 2 및 도 13을 참조하면, 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들에 증가형 스텝 펄스가 인가된다(S510). 상기 증가형 스텝 펄스를 인가한 후, 제1 내지 제7 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 순차적으로 수행될 수 있다(S520).

각 중간 프로그램 상태에 대한 검증 동작이 수행되는 동안(또는 상기 검증 동작이 수행된 후)(S520), 상기 중간 프로그램 상태의 종료 플래그에 따라 상기 중간 프로그램 상태의 오프-셀들이 고속 셀들로 표시될 수 있다(S521, S523). 이에 따라, 각 중간 프로그램 상태에 대한 셀 그룹 정보가 생성될 수 있다.

또한, 각 중간 프로그램 상태(예를 들어, IP1)에 상응하는 상위 중간 프로그램 상태(예를 들어, IP2)에 대한 검증 동작이 수행되는 동안(또는 상기 검증 동작이 수행된 후)(S520), 상기 상위 중간 프로그램 상태의 오프-셀들이 카운트되고(S530), 상기 상위 중간 프로그램 상태의 카운트된 오프-셀들의 수(또는 상기 상위 중간 프로그램 상태의 멀티-레벨 셀들에 대한 오프-셀들의 비율)가 소정의 값과 비교될 수 있다(S540).

상기 상위 중간 프로그램 상태의 카운트된 오프-셀들의 수가 상기 소정의 값 이하인 경우(S540: 아니오), 상기 상위 중간 프로그램 상태의 다음 중간 프로그램 상태에 대한 검증 동작이 수행될 수 있다(S520). 모든 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 수행된 후, 모든 멀티-레벨 셀들이 프로그램된 것으로 검증되지 않은 경우(S560: 아니오), 다음 프로그램 루프가 진행될 수 있다. 즉, 상기 증가형 스텝 펄스가 소정의 스텝 전압만큼 증가되고, 상기 멀티-레벨 셀들에 다시 인가될 수 있다(S510).

상기 상위 중간 프로그램 상태의 카운트된 오프-셀들의 수가 상기 소정의 값 이상인 경우(S540: 예), 상기 상위 중간 프로그램 상태에 상응하는 제N 중간 프로그램 상태의 종료 플래그가 1로 설정될 수 있다(S545). 이에 따라, 다음 프로그램 루프들에서 오프-셀들이 되는 상기 중간 프로그램 상태의 멀티-레벨 셀들은 고속 셀들로 표시되지 않을 수 있다(S521: 예). 즉, 상기 상위 중간 프로그램 상태의 카운트된 오프-셀들의 수가 상기 소정의 값 이상이 될 때까지, 매 프로그램 루프마다 상기 중간 프로그램 상태의 오프-셀들이 고속 셀들로 표시됨으로써, 상기 중간 프로그램 상태에 대한 상기 셀 그룹 정보가 생성될 수 있다.

예를 들어, 도 14a에 도시된 바와 같이, 제2 중간 프로그램 상태(IP2)의 카운트된 오프-셀들이 상기 소정의 값 이하인 경우, 즉 제1 중간 프로그램 상태(IP1)의 종료 플래그가 0인 경우, 제1 중간 프로그램 상태(IP1)의 오프-셀들(531)이 고속 셀들로 표시될 수 있다. 또한, 도 14b에 도시된 바와 같이, 제2 중간 프로그램 상태(IP2)의 카운트된 오프-셀들(590)이 상기 소정의 값 이상이 되는 프로그램 루프에서, 제1 중간 프로그램 상태(IP1)의 오프-셀들(591)이 고속 셀들로 표시되고, 제1 중간 프로그램 상태(IP1)의 종료 플래그가 1로 설정될 수 있다. 다음 프로그램 루프들에서는, 제1 중간 프로그램 상태(IP1)의 종료 플래그가 1이므로, 제1 중간 프로그램 상태(IP1)의 새로운 오프-셀들이 고속 셀들로 표시되지 않을 수 있다.

이와 유사하게, 제3 내지 제7 중간 프로그램 상태들(IP3, IP4, IP5, IP6, IP7)의 카운트된 오프-셀들의 수가 상기 소정의 값 이상이 될 때까지(S540: 예), 제2 내지 제6 중간 프로그램 상태들(IP2, IP3, IP4, IP5, IP6)의 오프-셀들이 고속 셀들로 표시됨으로써, 제2 내지 제6 중간 프로그램 상태들(IP2, IP3, IP4, IP5, IP6)에 대한 상기 셀 그룹 정보가 생성될 수 있다(S521: 아니오, S523). 한편, 제7 중간 프로그램 상태(IP7)에 대한 상기 셀 그룹 정보는, 자신의 오프-셀들을 소정의 다른 값과 비교함으로써, 생성될 수 있다. 이와 같이, 제1 내지 제7 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 상기 셀 그룹 정보가, 추가적인 중간 검증 전압 또는 추가적인 구분 전압의 인가 없이, 제1 내지 제7 중간 검증 전압들(VIVRF1, VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)을 이용하여 생성됨으로써, 상기 셀 그룹 정보의 생성이 신속하게 수행될 수 있다. 또한, 상기 멀티-레벨 셀들 각각이 상응하는 목표 검증 전압들(VVRF1, VVRF2, VVRF3, VVRF4, VVRF5, VVRF6, VVRF7) 근처의 중간 검증 전압(VIVRF1, VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)을 이용하여 상기 고속 셀 그룹 또는 상기 저속 셀 그룹으로 구분되므로, 정확한 셀 그룹 정보가 생성될 수 있다.

한편, 도 14a 및 도 14b에는 다음 상위 중간 프로그램 상태(예를 들어, IP2)에 대한 검증의 결과에 기초하여 현재 중간 프로그램 상태(예를 들어, IP1)에 대한 셀 그룹 정보를 생성하는 예가 도시되어 있으나, 상기 셀 그룹 정보는 프로그램 펄스의 인가에 따른 각 중간 프로그램 상태의 문턱 전압 분포의 폭, 중간 검증 전압의 간격 등에 따라 임의의 상위 중간 프로그램 상태에 대한 검증의 결과에 기초하여 생성될 수 있다.

복수의 프로그램 루프들이 수행되고, 모든 멀티-레벨 셀들이 프로그램된 것으로 검증된 경우(S560: 예), 제1 프로그램 동작이 완료된다. 상술한 바와 같이, 본 발명의 다른 실시예에 따른 프로그램 방법의 제1 프로그램 동작에서, 상응하는 상위 중간 프로그램 상태의 오프-셀들의 수가 소정의 값 이상이 될 때까지 각 중간 프로그램 상태의 오프-셀들이 고속 셀들로 표시되어 각 중간 프로그램 상태의 멀티-레벨 셀들이 고속 셀 그룹 및 저속 셀 그룹으로 구분됨으로써, 셀 그룹 정보가 신속하고 정확하게 생성될 수 있다.

또한, 본 발명의 다른 실시예에 따른 프로그램 방법의 제2 프로그램 동작 및/또는 제3 프로그램 동작은 상기 제1 프로그램 동작 동안 생성된 상기 셀 그룹 정보에 기초하여 수행된다. 예를 들어, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작은, 상기 고속 셀 그룹 및 상기 저속 셀 그룹에 서로 다른 프로그램 전압들 또는 서로 다른 비트라인 전압들을 인가함으로써, 수행될 수 있다. 이에 따라, 본 발명의 다른 실시예에 따른 프로그램 방법에서, 각 목표 프로그램 상태의 폭이 감소될 수 있다.

도 15는 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이고, 도 16은 도 15의 제1 프로그램 동작에서 제1 프로그램 상태에 대한 셀 그룹 정보를 생성하는 일 예를 나타내는 도면이다.

도 2 및 도 15를 참조하면, 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들에 증가형 스텝 펄스가 인가된다(S610). 상기 증가형 스텝 펄스를 인가한 후, 제1 내지 제7 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 순차적으로 수행될 수 있다(S620).

각 중간 프로그램 상태에 대한 셀 그룹 정보를 생성하기 위하여(S650), 각 중간 프로그램 상태(예를 들어, IP1)에 상응하는 상위 중간 프로그램 상태(예를 들어, IP2)에 대한 검증 동작이 수행되는 동안(또는 상기 검증 동작이 수행된 후)(S620), 상기 상위 중간 프로그램 상태의 오프-셀의 존재 여부에 따라 상기 상위 중간 프로그램 상태의 프로그램 루프가 카운트될 수 있다(S630, S635).

상기 상위 중간 프로그램 상태의 오프-셀의 존재하지 않는 경우(S630: 아니오), 상기 상위 중간 프로그램 상태의 프로그램 루프 가 카운트되지 않고, 상기 상위 중간 프로그램 상태의 다음 중간 프로그램 상태에 대한 검증 동작이 수행될 수 있다(S620). 모든 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 수행된 후, 모든 멀티-레벨 셀들이 프로그램된 것으로 검증되지 않은 경우(S660: 아니오), 다음 프로그램 루프가 진행될 수 있다. 즉, 상기 증가형 스텝 펄스가 소정의 스텝 전압만큼 증가되고, 상기 멀티-레벨 셀들에 다시 인가될 수 있다(S610).

상기 상위 중간 프로그램 상태의 오프-셀이 존재하는 경우(S630: 예), 상기 상위 중간 프로그램 상태의 프로그램 루프가 카운트될 수 있다(S635). 상기 상위 중간 프로그램 상태의 카운트된 프로그램 루프의 수가 소정의 값 이상이 되는 프로그램 루프에서(또는 다음 프로그램 루프에서)(S640: 예), 상기 상위 중간 프로그램 상태에 상응하는 중간 프로그램 상태에 대한 셀 그룹 정보가 생성될 수 있다(S650).

도 16에는, 제2 프로그램 루프(LOOP2)에서 제2 중간 프로그램 상태(IP2)의 오프-셀이 존재하고, 상기 소정의 값이 2인 예가 도시되어 있다. 제2 프로그램 루프(LOOP2)에서, 제2 중간 프로그램 상태(IP2)의 프로그램 루프가 카운트되고, 상기 카운트된 프로그램 루프의 수는 1일 수 있다(S635). 상기 카운트된 프로그램 루프 수가 상기 소정의 값보다 작은 경우(S640: 아니오), 다음 프로그램 루프, 즉 제3 프로그램 루프(LOOP3)가 진행될 수 있다. 제3 프로그램 루프(LOOP3)에서, 제2 중간 프로그램 상태(IP2)의 상기 카운트된 프로그램 루프의 수가 2로 증가할 수 있다(S635). 이에 따라, 상기 카운트된 프로그램 루프의 수가 상기 소정의 값 이상이 되고(S640: 예), 제1 중간 프로그램 상태(IP1)에 대한 상기 셀 그룹 정보가 생성될 수 있다(S650). 즉, 제3 프로그램 루프(LOOP3)에서, 제1 중간 프로그램 상태(IP1)의 오프-셀들은 고속 셀들로 표시되고, 제1 중간 프로그램 상태(IP1)의 온-셀들은 저속 셀들로 표시됨으로써, 제1 중간 프로그램 상태(IP1)에 대한 상기 셀 그룹 정보가 생성될 수 있다.

이와 유사하게, 제3 내지 제7 중간 프로그램 상태들(IP3, IP4, IP5, IP6, IP7)의 프로그램 루프들의 수가 상기 소정의 값 이상이 되면(S640: 예), 제2 내지 제6 중간 프로그램 상태들(IP2, IP3, IP4, IP5, IP6)에 대한 상기 셀 그룹 정보가 생성될 수 있다(S650). 한편, 제7 중간 프로그램 상태(IP7)에 대한 상기 셀 그룹 정보는, 자신의 프로그램 루프의 수를 소정의 다른 값과 비교함으로써, 생성될 수 있다. 이와 같이, 제1 내지 제7 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 상기 셀 그룹 정보가, 추가적인 중간 검증 전압 또는 추가적인 구분 전압의 인가 없이, 제1 내지 제7 중간 검증 전압들(VIVRF1, VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)을 이용하여 생성됨으로써, 상기 셀 그룹 정보의 생성이 신속하게 수행될 수 있다. 또한, 상기 멀티-레벨 셀들 각각이 상응하는 목표 검증 전압들(VVRF1, VVRF2, VVRF3, VVRF4, VVRF5, VVRF6, VVRF7) 근처의 중간 검증 전압(VIVRF1, VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)을 이용하여 상기 고속 셀 그룹 또는 상기 저속 셀 그룹으로 구분되므로, 정확한 셀 그룹 정보가 생성될 수 있다.

한편, 도 16에는 다음 상위 중간 프로그램 상태(예를 들어, IP2)에 대한 검증의 결과에 기초하여 현재 중간 프로그램 상태(예를 들어, IP1)에 대한 셀 그룹 정보를 생성하는 예가 도시되어 있으나, 상기 셀 그룹 정보는 프로그램 펄스의 인가에 따른 각 중간 프로그램 상태의 문턱 전압 분포의 폭, 중간 검증 전압의 간격 등에 따라 임의의 상위 중간 프로그램 상태에 대한 검증의 결과에 기초하여 생성될 수 있다.

복수의 프로그램 루프들이 수행되고, 모든 멀티-레벨 셀들이 프로그램된 것으로 검증된 경우(S660: 예), 제1 프로그램 동작이 완료된다. 상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로그램 방법의 제1 프로그램 동작에서, 상응하는 상위 중간 프로그램 상태의 프로그램 루프의 수가 소정의 값 이상이 될 때, 각 중간 프로그램 상태의 멀티-레벨 셀들이 고속 셀 그룹 및 저속 셀 그룹으로 구분됨으로써, 셀 그룹 정보가 신속하고 정확하게 생성될 수 있다.

또한, 본 발명의 또 다른 실시예에 따른 프로그램 방법의 제2 프로그램 동작 및/또는 제3 프로그램 동작은 상기 제1 프로그램 동작 동안 생성된 상기 셀 그룹 정보에 기초하여 수행된다. 예를 들어, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작은, 상기 고속 셀 그룹 및 상기 저속 셀 그룹에 서로 다른 프로그램 전압들 또는 서로 다른 비트라인 전압들을 인가함으로써, 수행될 수 있다. 이에 따라, 본 발명의 또 다른 실시예에 따른 프로그램 방법에서, 각 목표 프로그램 상태의 폭이 감소될 수 있다.

도 17a 및 도 17b는 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이다.

도 2, 도 17a 및 도 17b를 참조하면, 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들에 증가형 스텝 펄스가 인가된다(S710). 상기 증가형 스텝 펄스를 인가한 후, 제1 내지 제7 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 순차적으로 수행될 수 있다(S720).

각 중간 프로그램 상태에 대한 검증 동작이 수행되는 동안(또는 상기 검증 동작이 수행된 후)(S720), 상기 중간 프로그램 상태의 종료 플래그에 따라 상기 중간 프로그램 상태의 오프-셀들이 고속 셀들로 표시될 수 있다(S721, S723). 이에 따라, 각 중간 프로그램 상태에 대한 셀 그룹 정보가 생성될 수 있다.

또한, 각 중간 프로그램 상태(예를 들어, IP1)에 상응하는 상위 중간 프로그램 상태(예를 들어, IP2)에 대한 검증 동작이 수행되는 동안(또는 상기 검증 동작이 수행된 후)(S720), 상기 상위 중간 프로그램 상태의 오프-셀이 존재하는 경우(S730: 예), 상기 상위 중간 프로그램 상태의 프로그램 루프가 카운트될 수 있다(S735).

상기 상위 중간 프로그램 상태의 오프-셀이 존재하지 않거나(S730: 아니오), 상기 상위 중간 프로그램 상태의 상기 카운트된 프로그램 루프의 수가 소정의 값 이하인 경우(S740: 아니오), 상기 상위 중간 프로그램 상태의 다음 중간 프로그램 상태에 대한 검증 동작이 수행될 수 있다(S720). 모든 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 수행된 후, 모든 멀티-레벨 셀들이 프로그램된 것으로 검증되지 않은 경우(S760: 아니오), 다음 프로그램 루프가 진행될 수 있다. 즉, 상기 증가형 스텝 펄스가 소정의 스텝 전압만큼 증가되고, 상기 멀티-레벨 셀들에 다시 인가될 수 있다(S710).

상기 상위 중간 프로그램 상태의 상기 카운트된 프로그램 루프의 수가 상기 소정의 값 이상인 경우(S740: 예), 상기 상위 중간 프로그램 상태에 상응하는 중간 프로그램 상태의 종료 플래그가 1로 설정될 수 있다(S745). 이에 따라, 다음 프로그램 루프들에서 오프-셀들이 되는 상기 중간 프로그램 상태의 멀티-레벨 셀들은 고속 셀들로 표시되지 않을 수 있다(S721: 예). 즉, 상기 상위 중간 프로그램 상태의 카운트된 오프-셀들의 수가 상기 소정의 값 이상이 될 때까지, 매 프로그램 루프마다 상기 중간 프로그램 상태의 오프-셀들이 고속 셀들로 표시됨으로써, 상기 중간 프로그램 상태에 대한 상기 셀 그룹 정보가 생성될 수 있다.

이와 같이, 상기 셀 그룹 정보가 추가적인 중간 검증 전압 또는 추가적인 구분 전압의 인가 없이 생성됨으로써, 상기 셀 그룹 정보의 생성이 신속하게 수행될 수 있다. 또한, 상기 멀티-레벨 셀들 각각이 상응하는 목표 검증 전압들(VVRF1, VVRF2, VVRF3, VVRF4, VVRF5, VVRF6, VVRF7) 근처의 중간 검증 전압(VIVRF1, VIVRF2, VIVRF3, VIVRF4, VIVRF5, VIVRF6, VIVRF7)을 이용하여 고속 셀 그룹 또는 저속 셀 그룹으로 구분되므로, 정확한 셀 그룹 정보가 생성될 수 있다.

복수의 프로그램 루프들이 수행되고, 모든 멀티-레벨 셀들이 프로그램된 것으로 검증된 경우(S760: 예), 제1 프로그램 동작이 완료된다. 상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로그램 방법의 제1 프로그램 동작에서, 상응하는 상위 중간 프로그램 상태의 프로그램 루프 수가 소정의 값 이상이 될 때까지 각 중간 프로그램 상태의 오프-셀들이 고속 셀들로 표시되어 각 중간 프로그램 상태의 멀티-레벨 셀들이 상기 고속 셀 그룹 및 상기 저속 셀 그룹으로 구분됨으로써, 셀 그룹 정보가 신속하고 정확하게 생성될 수 있다.

또한, 본 발명의 또 다른 실시예에 따른 프로그램 방법의 제2 프로그램 동작 및/또는 제3 프로그램 동작은 상기 제1 프로그램 동작 동안 생성된 상기 셀 그룹 정보에 기초하여 수행된다. 예를 들어, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작은, 상기 고속 셀 그룹 및 상기 저속 셀 그룹에 서로 다른 프로그램 전압들 또는 서로 다른 비트라인 전압들을 인가함으로써, 수행될 수 있다. 이에 따라, 본 발명의 또 다른 실시예에 따른 프로그램 방법에서, 각 목표 프로그램 상태의 폭이 감소될 수 있다.

도 18은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제1 프로그램 동작을 나타내는 순서도이고, 도 19는 도 18의 제1 프로그램 동작에서 셀 그룹 정보를 생성하는 일 예를 나타내는 도면이다.

도 2 및 도 18을 참조하면, 제1 프로그램 동작의 각 프로그램 루프는 프로그램 단계 및 검증 단계를 포함한다. 상기 프로그램 단계에서, 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들에 프로그램 전압이 인가된다(S810). 상기 프로그램 전압은, 매 프로그램 루프마다 소정의 스텝 전압만큼 증가하는 증가형 스텝 펄스일 수 있다. 상기 검증 단계에서, 제1 내지 제7 중간 프로그램 상태들(IP1, IP2, IP3, IP4, IP5, IP6, IP7)에 대한 검증 동작이 순차적으로 수행될 수 있다(S820).

상기 각 프로그램 루프가 수행되면, 수행된 프로그램 루프들의 수가 소정의 값들과 비교될 수 있다(S830). 상기 수행된 프로그램 루프들의 수가 상기 소정의 값들과 일치하지 않는 경우(S830: 아니오), 다음 프로그램 루프가 진행될 수 있다(S850: 아니오, S810, S820). 상기 수행된 프로그램 루프들의 수가 상기 소정의 값들 중 하나와 일치하지 않는 경우(S830: 예), 오프-셀들에 복수의 그룹들 중 상기 수행된 프로그램 루프들의 수에 상응하는 그룹이 표시될 수 있다(S840).

도 19에는, 상기 제1 프로그램 동작이 제1 내지 제8 프로그램 루프들(LOOP1, LOOP2, LOOP3, LOOP4, LOOP5, LOOP6, LOOP7, LOOP8)을 포함하고, 상기 소정의 값들이 2, 4, 6 및 8인 예가 도시되어 있다. 도 19에 도시된 예에서, 제2 프로그램 루프(LOOP2)가 수행되면, 제1 및 제2 프로그램 루프(LOOP1, LOOP2)에서 오프-셀들이 된 멀티-레벨 셀들은 제1 그룹(GROUP1)으로 표시될 수 있다. 예를 들어, 제1 중간 프로그램 상태(IP1)의 멀티-레벨 셀들 및 제2 중간 프로그램 상태(IP2)의 일부 멀티-레벨 셀들이 제1 그룹(GROUP1)으로 표시될 수 있다. 또한, 제4 프로그램 루프(LOOP4)가 수행되면, 제3 및 제4 프로그램 루프(LOOP3, LOOP4)에서 오프-셀들이 된 멀티-레벨 셀들은 제2 그룹(GROUP2)으로 표시될 수 있다. 예를 들어, 제2 중간 프로그램 상태(IP2)의 다른 일부 멀티-레벨 셀들, 제3 중간 프로그램 상태(IP3)의 멀티-레벨 셀들, 및 제4 중간 프로그램 상태(IP4)의 일부 멀티-레벨 셀들이 제2 그룹(GROUP2)으로 표시될 수 있다. 또한, 제6 프로그램 루프(LOOP6)가 수행되면, 제5 및 제6 프로그램 루프(LOOP5, LOOP6)에서 오프-셀들이 된 멀티-레벨 셀들은 제3 그룹(GROUP3)으로 표시될 수 있다. 예를 들어, 제4 중간 프로그램 상태(IP4)의 다른 일부 멀티-레벨 셀들, 제5 중간 프로그램 상태(IP5)의 멀티-레벨 셀들, 및 제6 중간 프로그램 상태(IP6)의 일부 멀티-레벨 셀들이 제3 그룹(GROUP3)으로 표시될 수 있다. 또한, 제8 프로그램 루프(LOOP8)가 수행되면, 제7 및 제8 프로그램 루프(LOOP7, LOOP8)에서 오프-셀들이 된 멀티-레벨 셀들은 제4 그룹(GROUP4)으로 표시될 수 있다. 예를 들어, 제6 중간 프로그램 상태(IP6)의 다른 일부 멀티-레벨 셀들, 및 제7 중간 프로그램 상태(IP7)의 멀티-레벨 셀들이 제4 그룹(GROUP4)으로 표시될 수 있다. 이와 같이, 상기 멀티-레벨 셀들 각각이 프로그램된 것으로 검증될 때까지 수행된 프로그램 루프의 수에 따라 상기 멀티-레벨 셀들을 제1 내지 제4 그룹들(GROUP1, GROUP2, GROUP3, GROUP4)로 분할함으로써 상기 멀티-레벨 셀들 각각이 제1 내지 제4 그룹들(GROUP1, GROUP2, GROUP3, GROUP4) 중 어느 그룹에 속하는지를 나타내는 셀 그룹 정보가 생성될 수 있다.

다시 도 18을 참조하면, 복수의 프로그램 루프들이 수행되고, 모든 멀티-레벨 셀들이 프로그램된 것으로 검증된 경우(S850: 예), 상기 제1 프로그램 동작이 완료된다. 상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로그램 방법의 제1 프로그램 동작에서, 상기 멀티-레벨 셀들 각각이 프로그램된 것으로 검증될 때까지 수행된 프로그램 루프의 수에 따라 상기 멀티-레벨 셀들을 복수의 그룹들로 분할함으로써, 상기 멀티-레벨 셀들 각각이 상기 복수의 그룹들 중 어느 그룹에 속하는지를 나타내는 셀 그룹 정보가 생성될 수 있다.

도 20은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치에 포함된 페이지 버퍼의 일 예를 나타내는 블록도이다.

도 20을 참조하면, 각 페이지 버퍼(860)는 제1 내지 제3 데이터 래치들(861, 862, 863) 및 제1 및 제2 셀 그룹 정보 래치들(864, 865)을 포함할 수 있다.

제1 내지 제3 데이터 래치들(861, 862, 863)에는 메모리 컨트롤러 또는 싱글 레벨 셀 블록으로부터 멀티-비트 데이터가 저장될 수 있다. 제1 및 제2 셀 그룹 정보 래치들(864, 865)에는 멀티-레벨 셀들 각각이 복수의 그룹들 중 어느 그룹에 속하는지를 나타내는 셀 그룹 정보가 생성될 수 있다.

도 19에 도시된 예에서, 제1 그룹(GROUP1)에 속하는 멀티-레벨 셀들에 대한 제1 및 제2 셀 그룹 정보 래치들(864, 865)에는 “00”이 저장되고, 제2 그룹(GROUP2)에 속하는 멀티-레벨 셀들에 대한 제1 및 제2 셀 그룹 정보 래치들(864, 865)에는 “01”이 저장되고, 제3 그룹(GROUP3)에 속하는 멀티-레벨 셀들에 대한 제1 및 제2 셀 그룹 정보 래치들(864, 865)에는 “10”이 저장되고, 제4 그룹(GROUP4)에 속하는 멀티-레벨 셀들에 대한 제1 및 제2 셀 그룹 정보 래치들(864, 865)에는 “11”이 저장될 수 있다.

일 실시예에서, 제1 및 제2 셀 그룹 정보 래치들(864, 865)에 저장된 상기 셀 그룹 정보는, 제1 프로그램 동작이 수행된 후, 적어도 하나의 싱글 레벨 셀 블록에 프로그램될 수 있다. 이 후, 제2 프로그램 동작 및/또는 제3 프로그램 동작이 수행될 때, 상기 셀 그룹 정보가 상기 적어도 하나의 싱글 레벨 셀 블록으로부터 제1 및 제2 셀 그룹 정보 래치들(864, 865)에 로드될 수 있다.

도 21은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작의 일 예를 설명하기 위한 도면이다.

도 21을 참조하면, 제2 프로그램 동작 및/또는 제3 프로그램 동작은 제1 프로그램 동작에서 생성된 셀 그룹 정보를 이용하여 복수의 그룹들에 서로 다른 프로그램 전압들(PGM1, PGM2, PGM3, PGM4)을 인가함으로써 수행될 수 있다.

도 19에 도시된 예에서, 제1 그룹(GROUP1)에 속하는 멀티-레벨 셀들에 제1 프로그램 전압(PGM1)이 인가되고, 제2 그룹(GROUP2)에 속하는 멀티-레벨 셀들에 제1 프로그램 전압(PGM1)보다 높은 전압 레벨을 가지는 제2 프로그램 전압(PGM2)이 인가되며, 제3 그룹(GROUP3)에 속하는 멀티-레벨 셀들에 제2 프로그램 전압(PGM2)보다 높은 전압 레벨을 가지는 제3 프로그램 전압(PGM3)이 인가되고, 제4 그룹(GROUP4)에 속하는 멀티-레벨 셀들에 제3 프로그램 전압(PGM3)보다 높은 전압 레벨을 가지는 제4 프로그램 전압(PGM4)이 인가될 수 있다. 일 실시예에서, 제1 프로그램 전압(PGM1), 제2 프로그램 전압(PGM2), 제3 프로그램 전압(PGM3) 및 제4 프로그램 전압(PGM4) 각각은 증가형 스텝 펄스일 수 있다. 예를 들어, 검증 동작(VRF)에 의해 모든 멀티-레벨 셀들이 프로그램된 것으로 검증되지 않은 경우, 제1 프로그램 전압(PGM1), 제2 프로그램 전압(PGM2), 제3 프로그램 전압(PGM3) 및 제4 프로그램 전압(PGM4)은 각각 소정의 스텝 전압만큼 증가되고, 멀티-레벨 셀들에 다시 인가될 수 있다.

한편, 제2 그룹(GROUP2)에 속하는 멀티-레벨 셀들은 제1 그룹(GROUP1)에 속하는 멀티-레벨 셀들보다 일반적으로 높은 문턱 전압들을 가질 수 있고, 이에 따라, 제2 그룹(GROUP2)에 속하는 멀티-레벨 셀들을 프로그램하기 위해서는 제1 그룹(GROUP1)에 속하는 멀티-레벨 셀들보다 높은 전압 레벨의 프로그램 전압이 요구될 수 있다. 또한, 제3 그룹(GROUP3)에 속하는 멀티-레벨 셀들을 프로그램하기 위해서는 제2 그룹(GROUP2)에 속하는 멀티-레벨 셀들보다 높은 전압 레벨의 프로그램 전압이 요구되고, 제4 그룹(GROUP4)에 속하는 멀티-레벨 셀들을 프로그램하기 위해서는 제3 그룹(GROUP3)에 속하는 멀티-레벨 셀들보다 높은 전압 레벨의 프로그램 전압이 요구될 수 있다. 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작에서는, 제1 그룹(GROUP1), 제2 그룹(GROUP2), 제3 그룹(GROUP3) 및 제4 그룹(GROUP4)에 제1 프로그램 전압(PGM1), 제1 프로그램 전압(PGM1)보다 높은 전압 레벨을 가지는 제2 프로그램 전압(PGM2), 제2 프로그램 전압(PGM2)보다 높은 전압 레벨을 가지는 제3 프로그램 전압(PGM3), 및 제3 프로그램 전압(PGM3)보다 높은 전압 레벨을 가지는 제4 프로그램 전압(PGM4)을 각각 인가할 수 있다. 이에 따라, 제1 그룹(GROUP1), 제2 그룹(GROUP2), 제3 그룹(GROUP3) 및 제4 그룹(GROUP4)에 속하는 멀티-레벨 셀들에 대한 프로그램이 실질적으로 동시에 완료되고, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작의 프로그램 시간이 단축될 수 있다.

상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 및/또는 제3 프로그램 동작에서, 복수의 그룹들에 따라 서로 다른 프로그램 전압들을 인가함으로써, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작의 프로그램 시간이 단축될 수 있다.

도 22는 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법에서 제1 프로그램 동작, 제2 프로그램 동작 및 제3 프로그램 동작에서 인가되는 프로그램 전압들의 일 예를 나타내는 도면이다.

도 22를 참조하면, 제1 프로그램 동작에서, 오프-셀들이 될 때까지 수행된 프로그램 루프의 수, 또는 오프-셀들이 되는 프로그램 루프에서의 증가형 스텝 펄스의 전압 레벨에 따라, 멀티-레벨 셀들이 복수의 그룹들로 구분될 수 있다. 예를 들어, 제1 전압 레벨(VISP1) 이하의 상기 증가형 스텝 펄스에 의해 프로그램된 멀티-레벨 셀들은 제1 그룹(GROUP1)으로 분류되고, 제1 전압 레벨(VISP1) 이상 및 제2 전압 레벨(VISP2) 이하의 상기 증가형 스텝 펄스에 의해 프로그램된 멀티-레벨 셀들은 제2 그룹(GROUP2)으로 분류되며, 제2 전압 레벨(VISP2) 이상 및 제3 전압 레벨(VISP3) 이하의 상기 증가형 스텝 펄스에 의해 프로그램된 멀티-레벨 셀들은 제3 그룹(GROUP3)으로 분류되고, 제3 전압 레벨(VISP3) 이상의 상기 증가형 스텝 펄스에 의해 프로그램된 멀티-레벨 셀들은 제4 그룹(GROUP4)으로 분류될 수 있다.

제2 프로그램 동작에서, 상기 복수의 그룹들에 서로 다른 증가형 스텝 펄스들이 인가될 수 있다. 예를 들어, 제1 그룹(GROUP1)에는 제1 증가형 스텝 펄스(VISP1-2)가 인가되고, 제2 그룹(GROUP2)에는 제1 증가형 스텝 펄스(VISP1-2)보다 높은 전압 레벨을 가지는 제2 증가형 스텝 펄스(VISP2-2)가 인가되며, 제3 그룹(GROUP3)에는 제2 증가형 스텝 펄스(VISP2-2)보다 높은 전압 레벨을 가지는 제3 증가형 스텝 펄스(VISP3-2)가 인가되고, 제4 그룹(GROUP4)에는 제3 증가형 스텝 펄스(VISP3-2)보다 높은 전압 레벨을 가지는 제4 증가형 스텝 펄스(VISP4-2)가 인가될 수 있다. 이에 따라, 제1 그룹(GROUP1), 제2 그룹(GROUP2), 제3 그룹(GROUP3) 및 제4 그룹(GROUP4)에 속하는 멀티-레벨 셀들이 실질적으로 동시에 프로그램되고, 상기 제2 프로그램 동작의 프로그램 시간이 단축될 수 있다.

일 실시예에서, 제1 증가형 스텝 펄스(VISP1-2)와 제2 증가형 스텝 펄스(VISP2-2)의 전압 차는 상기 제1 프로그램 동작의 상기 증가형 스텝 펄스의 시작 전압 레벨과 제1 전압 레벨(VISP1)의 전압 차에 상응하고, 제2 증가형 스텝 펄스(VISP2-2)와 제3 증가형 스텝 펄스(VISP3-2)의 전압 차는 상기 제1 프로그램 동작의 상기 증가형 스텝 펄스의 제1 전압 레벨(VISP1)과 제2 전압 레벨(VISP2)의 전압 차에 상응하며, 제3 증가형 스텝 펄스(VISP3-2)와 제4 증가형 스텝 펄스(VISP4-2)의 전압 차는 상기 제1 프로그램 동작의 상기 증가형 스텝 펄스의 제2 전압 레벨(VISP2)과 제3 전압 레벨(VISP3)의 전압 차에 상응할 수 있다. 다른 실시예에서, 제2 증가형 스텝 펄스(VISP2-2), 제3 증가형 스텝 펄스(VISP3-2) 및 제4 증가형 스텝 펄스(VISP4-2) 각각이 상술한 바와 같이 결정된 전압 레벨보다 스텝 전압 또는 스텝 전압의 절반만큼 감소된 전압 레벨을 가질 수 있다. 이 경우, 제2 내지 제3 그룹들(GROUP2, GROUP3, GROUP4)의 문턱 전압 분포들의 폭이 더욱 감소될 수 있다.

제3 프로그램 동작에서, 상기 복수의 그룹들에 서로 다른 증가형 스텝 펄스들이 인가될 수 있다. 예를 들어, 제1 그룹(GROUP1)에는 제5 증가형 스텝 펄스(VISP1-3)가 인가되고, 제2 그룹(GROUP2)에는 제5 증가형 스텝 펄스(VISP1-3)보다 높은 전압 레벨을 가지는 제6 증가형 스텝 펄스(VISP2-3)가 인가되며, 제3 그룹(GROUP3)에는 제6 증가형 스텝 펄스(VISP2-3)보다 높은 전압 레벨을 가지는 제7 증가형 스텝 펄스(VISP3-3)가 인가되고, 제4 그룹(GROUP4)에는 제7 증가형 스텝 펄스(VISP3-3)보다 높은 전압 레벨을 가지는 제8 증가형 스텝 펄스(VISP4-3)가 인가될 수 있다. 이에 따라, 제1 그룹(GROUP1), 제2 그룹(GROUP2), 제3 그룹(GROUP3) 및 제4 그룹(GROUP4)에 속하는 멀티-레벨 셀들이 실질적으로 동시에 프로그램되고, 상기 제3 프로그램 동작의 프로그램 시간이 단축될 수 있다.

도 23은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 또는 제3 프로그램 동작의 다른 예를 설명하기 위한 도면이다.

도 23을 참조하면, 제2 프로그램 동작 및/또는 제3 프로그램 동작은 제1 프로그램 동작에서 생성된 셀 그룹 정보를 이용하여 복수의 그룹들에 서로 다른 비트라인 전압들(VSS, VF1, VF2, VF3)을 인가함으로써 수행될 수 있다.

도 19에 도시된 예에서, 제1 그룹(GROUP1)에 속하는 멀티-레벨 셀들(864)에 연결된 비트라인들(BL4)에 제3 포싱 전압(FC3)이 인가되고, 제2 그룹(GROUP2)에 속하는 멀티-레벨 셀들(863)에 연결된 비트라인들(BL3)에 제3 포싱 전압(FC3)보다 낮은 전압 레벨을 가지는 제2 포싱 전압(FC2)이 인가되며, 제3 그룹(GROUP3)에 속하는 멀티-레벨 셀들(862)에 연결된 비트라인들(BL2)에 제2 포싱 전압(FC2)보다 낮은 전압 레벨을 가지는 제1 포싱 전압(FC1)이 인가되고, 제4 그룹(GROUP4)에 속하는 멀티-레벨 셀들(861)에 연결된 비트라인들(BL1)에 제1 포싱 전압(FC1)보다 낮은 전압 레벨을 가지는 저 레벨의 전압(VSS)이 인가될 수 있다. 또한, 이미 프로그램된 것으로 검증되었거나, 프로그램되지 않는 멀티-레벨 셀들(865)에 연결된 비트라인들(BL5)에는 고 레벨의 전압(VDD)이 인가될 수 있다. 또한, 멀티-레벨 셀들(861, 862, 863, 864, 865)이 연결된 워드라인(WL)에는 프로그램 전압(VPGM)이 인가될 수 있다. 이에 따라, 제3 그룹(GROUP3)에 대한 프로그램 전압(VPGM)의 유효 전압 레벨이 제4 그룹(GROUP4)보다 낮아지고, 제2 그룹(GROUP2)에 대한 프로그램 전압(VPGM)의 유효 전압 레벨이 제3 그룹(GROUP3)보다 낮아지며, 제1 그룹(GROUP1)에 대한 프로그램 전압(VPGM)의 유효 전압 레벨이 제2 그룹(GROUP2)보다 낮아질 수 있다.

상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 프로그램 방법의 제2 프로그램 동작 및/또는 제3 프로그램 동작에서, 복수의 그룹들에 서로 다른 비트라인 전압들이 인가됨으로써, 상기 복수의 그룹들에 속하는 멀티-레벨 셀들이 실질적으로 동시에 프로그램되고, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작의 프로그램 시간이 단축될 수 있다.

도 24는 종래의 비휘발성 메모리 장치의 제2 프로그램 동작 또는 제3 프로그램 동작과 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의제2 프로그램 동작 또는 제3 프로그램 동작을 비교한 도면이다.

도 24를 참조하면, 종래의 비휘발성 메모리 장치의 제2 프로그램 동작 또는 제3 프로그램 동작(910)에서는, 제1 내지 제7 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7)의 멀티-레벨 셀들이 서로 다른 프로그램 루프에서 오프-셀들이 되기 시작되고, 제1 내지 제7 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7)에 대한 프로그램 동작이 서로 다른 프로그램 루프에서 완료되었다.

그러나, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 제2 프로그램 동작 또는 제3 프로그램 동작(920)에서는, 제1 내지 제7 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7)의 오프 셀들이 시작 프로그램 루프에서부터 존재할 수 있고, 제1 내지 제7 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7)에 대한 프로그램 동작이 실질적으로 동시에 완료될 수 있다. 또한, 제1 내지 제7 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 각각의 프로그램 시간이 단축되고, 전체 프로그램 시간 또한 단축될 수 있다.

도 25는 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.

도 25을 참조하면, 비휘발성 메모리 장치(1000)는 메모리 셀 어레이(1010), 페이지 버퍼부(1040), 로우 디코더(1050), 전압 생성기(1060) 및 제어 회로(1070)를 포함한다.

메모리 셀 어레이(1010)는 적어도 하나의 멀티-레벨 셀 블록(1030)을 포함한다. 멀티-레벨 셀 블록(1030)은 워드라인들 및 비트라인들에 연결된 멀티-레벨 셀들을 포함할 수 있다. 상기 멀티-레벨 셀들 각각은 2 비트 이상을 가지는 멀티-비트 데이터를 저장할 수 있다. 상기 멀티-비트 데이터는 제1 프로그램 동작, 제2 프로그램 동작 및 제3 프로그램 동작에 의해 멀티-레벨 셀 블록(1030)에 프로그램될 수 있다. 상기 제1 프로그램 동작이 수행되는 동안 상기 멀티-레벨 셀들에 대한 셀 그룹 정보가 생성되고, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작은 상기 셀 그룹 정보에 기초하여 수행될 수 있다. 이에 따라, 상기 멀티-레벨 셀들이 좁은 문턱 전압 분포들을 가지거나, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작의 프로그램 시간이 단축될 수 있다. 실시예에 따라, 상기 멀티-레벨 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 예를 들어, 상기 전하 저장층을 갖는 셀 구조는, 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조 등이 적용될 수 있다.

메모리 셀 어레이(1010)는 적어도 하나의 싱글 레벨 셀 블록(1020)을 더 포함할 수 있다. 일 실시예에서, 비휘발성 메모리 장치(1000)는 호스트로부터 메모리 컨트롤러를 통하여 제공된 상기 멀티-비트 데이터를 적어도 하나의 싱글 레벨 셀 블록(1020)에 프로그램하고, 적어도 하나의 싱글 레벨 셀 블록(1020)에 저장된 상기 멀티-비트 데이터를 적어도 하나의 멀티-레벨 셀 블록(1030)에 다시 프로그램할 수 있다. 즉, 비휘발성 메모리 장치(1000)는 적어도 하나의 싱글 레벨 셀 블록(1020)을 버퍼로서 활용하는 온-칩 버퍼드 프로그램(On-chip Buffered Program; OBP)을 수행할 수 있다. 또한, 일 실시예에서, 비휘발성 메모리 장치(1000)는 상기 제1 프로그램 동작 동안 생성된 상기 셀 그룹 정보를 적어도 하나의 셀 그룹 정보 페이지(1025)에 저장하고, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작 수행 시 상기 셀 그룹 정보를 셀 그룹 정보 페이지(1025)로부터 페이지 버퍼부(1040)에 로드할 수 있다.

페이지 버퍼부(1040)는 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 페이지 버퍼부(1040)는 독출 모드에서 감지 증폭기로서 동작하고, 프로그램 모드에서 기입 드라이버로서 동작할 수 있다. 페이지 버퍼부(1040)는 상기 비트라인들에 연결되고, 상기 멀티-비트 데이터를 일시적으로 저장하는 페이지 버퍼들을 포함할 수 있다. 상기 페이지 버퍼들 각각은 상기 비트라인들 중 상응하는 비트라인에 연결되고, 상기 멀티-비트 데이터를 일시적으로 저장하는 데이터 래치들을 포함할 수 있다. 또한, 상기 페이지 버퍼들 각각은 상기 셀 그룹 정보를 일시적으로 저장하는 적어도 하나의 셀 그룹 정보 래치를 더 포함할 수 있다.

로우 디코더(1050)는 로우 어드레스에 응답하여 워드라인을 선택할 수 있다. 로우 디코더(1050)는 전압 생성기(1060)로부터 제공되는 워드라인 전압들을 선택 및 비선택된 워드라인들로 전달한다. 프로그램 동작 시, 로우 디코더(1050)는 선택된 워드라인에 프로그램 전압을 전달하고, 비선택된 워드라인에 패스 전압을 전달할 수 있다.

전압 생성기(1060)는 제어 회로(1070)의 제어에 따라 프로그램을 위한 프로그램 전압, 패스 전압, 중간 검증 전압, 검증 전압 및 독출 전압과 같은 워드라인 전압들을 생성할 수 있다.

제어 회로(1070)는 상기 멀티-비트 데이터를 메모리 셀 어레이(1010)에 프로그램하기 위하여 페이지 버퍼부(1040), 로우 디코더(1050) 및 전압 생성기(1060)를 제어할 수 있다.

비휘발성 메모리 장치(1000)는 제1 프로그램 동작을 수행하는 동안 셀 그룹 정보를 생성하고, 상기 셀 그룹 정보에 기초하여 제2 프로그램 동작 및/또는 제3 프로그램 동작을 수행할 수 있다. 이에 따라, 상기 멀티-레벨 셀들이 좁은 문턱 전압 분포들을 가지거나, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작의 프로그램 시간이 단축될 수 있다.

도 26은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.

도 26을 참조하면, 메모리 시스템(1100)은 메모리 컨트롤러(1110) 및 비휘발성 메모리 장치(1120)를 포함한다.

비휘발성 메모리 장치(1120)는 메모리 셀 어레이(1121) 및 페이지 버퍼부(1122)를 포함한다. 페이지 버퍼부(1122)는 비트라인들에 연결되고, 멀티-비트 데이터를 일시적으로 저장하는 페이지 버퍼들을 포함할 수 있다. 메모리 셀 어레이(1121)는 워드라인들 및 상기 비트라인들에 연결된 멀티-레벨 셀들을 포함할 수 있다. 상기 멀티-레벨 셀들에 대한 제1 프로그램 동작이 수행되는 동안 셀 그룹 정보가 생성되고, 상기 셀 그룹 정보에 기초하여 상기 멀티-레벨 셀들에 대한 제2 프로그램 동작 및/또는 제3 프로그램 동작이 수행될 수 있다. 이에 따라, 상기 멀티-레벨 셀들이 좁은 문턱 전압 분포들을 가지거나, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작의 프로그램 시간이 단축될 수 있다.

메모리 컨트롤러(1110)는 비휘발성 메모리 장치(1120)를 제어한다. 메모리 컨트롤러(1110)는 외부의 호스트(미도시)와 비휘발성 메모리 장치(1120) 사이의 데이터 교환을 제어할 수 있다. 메모리 컨트롤러(1110)는 중앙 처리 장치(1111), 버퍼 메모리(1112), 호스트 인터페이스(1113) 및 메모리 인터페이스(1114)를 포함할 수 있다. 중앙 처리 장치(1111)는 상기 데이터 교환을 위한 동작을 수행할 수 있다. 버퍼 메모리(1112)는 DRAM(Dynamic random access memory), SRAM(Static random access memory), PRAM(Phase random access memory), FRAM(Ferroelectric random access memory), RRAM(Resistive random access memory), 또는 MRAM(Magnetic random access memory)으로 구현될 수 있다. 실시예에 따라, 버퍼 메모리(1112)는 메모리 컨트롤러(1110)의 내부 또는 외부에 위치할 수 있다.

호스트 인터페이스(1113)는 상기 호스트와 연결되고, 메모리 인터페이스(1114)는 비휘발성 메모리 장치(1120)와 연결된다. 중앙 처리 장치(1111)는 호스트 인터페이스(1113)를 통하여 상기 호스트와 통신할 수 있다. 예를 들어, 호스트 인터페이스(1113)는 USB(Universal Serial Bus), MMC(Multi-Media Card), PCI-E(Peripheral Component Interconnect-Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 호스트와 통신하도록 구성될 수 있다. 또한, 중앙 처리 장치(1111)는 메모리 인터페이스(1114)를 통하여 비휘발성 메모리 장치(1120)와 통신할 수 있다. 실시예에 따라, 메모리 컨트롤러(1110)는 에러 정정을 위한 에러 정정 블록(1115)을 더 포함할 수 있다. 실시예에 따라, 메모리 컨트롤러(1110)가 비휘발성 메모리 장치(1120)에 빌트-인(built-in)되어 구현되거나, 메모리 컨트롤러(1110) 및 비휘발성 메모리 장치(1120) 각각 별도의 칩으로 구현될 수 있다.

메모리 시스템(1100)은 메모리 카드(memory card), 솔리드 스테이트 드라이브(solid state drive) 등과 같은 형태로 구현될 수 있다. 비휘발성 메모리 장치(1120), 메모리 컨트롤러(1110), 및/또는 메모리 시스템(1100)은 다양한 형태들의 패키지를 이용하여 구현될 수 있는데, 예를 들어, PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지를 이용하여 구현될 수 있다.

도 27은 본 발명의 실시예들에 따른 메모리 시스템이 메모리 카드에 응용된 예를 나타내는 도면이다.

도 27을 참조하면, 메모리 카드(1200)는 복수의 접속 핀들(1210), 메모리 컨트롤러(1220) 및 비휘발성 메모리 장치(1230)를 포함한다.

호스트(미도시)와 메모리 카드(1200) 사이의 신호들이 송수신되도록 복수의 접속 핀들(1210)은 상기 호스트에 연결될 수 있다. 복수의 접속 핀들(1210)은 클록 핀, 커맨드 핀, 데이터 핀 및/또는 리셋 핀을 포함할 수 있다.

메모리 컨트롤러(1220)는, 상기 호스트로부터 데이터를 수신하고, 상기 수신된 데이터를 비휘발성 메모리 장치(1230)에 저장할 수 있다.

비휘발성 메모리 장치(1230)는 멀티-레벨 셀들을 포함한다. 상기 멀티-레벨 셀들에 대한 제1 프로그램 동작이 수행되는 동안 셀 그룹 정보가 생성되고, 상기 셀 그룹 정보에 기초하여 상기 멀티-레벨 셀들에 대한 제2 프로그램 동작 및/또는 제3 프로그램 동작이 수행될 수 있다. 이에 따라, 상기 멀티-레벨 셀들이 좁은 문턱 전압 분포들을 가지거나, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작의 프로그램 시간이 단축될 수 있다.

예를 들어, 메모리 카드(1200)는 멀티미디어 카드(MultiMedia Card; MMC), 임베디드 멀티미디어 카드(embedded MultiMedia Card; eMMC), 하이브리드 임베디드 멀티미디어 카드(hybrid embedded MultiMedia Card; hybrid eMMC), SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA(Personal Computer Memory Card International Association) 카드, 칩 카드(Chip Card), USB 카드, 스마트 카드(Smart Card), CF 카드(Compact Flash Card)등과 같은 메모리 카드일 수 있다.

실시예에 따라, 메모리 카드(1200)는 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console) 등과 같은 호스트에 장착될 수 있다.

도 28은 본 발명의 실시예들에 따른 메모리 시스템이 솔리드 스테이트 드라이브에 응용된 예를 나타내는 도면이다.

도 23을 참조하면, 솔리드 스테이트 드라이브(Solid State Drive; SSD, 1300)는 메모리 컨트롤러(1310) 및 복수의 비휘발성 메모리 장치들(1320)을 포함한다.

메모리 컨트롤러(1310)는, 호스트(미도시)로부터 데이터를 수신하고, 상기 수신된 데이터를 복수의 비휘발성 메모리 장치들(1320)에 저장할 수 있다.

복수의 비휘발성 메모리 장치들(1320)은 멀티-레벨 셀들을 포함한다. 상기 멀티-레벨 셀들에 대한 제1 프로그램 동작이 수행되는 동안 셀 그룹 정보가 생성되고, 상기 셀 그룹 정보에 기초하여 상기 멀티-레벨 셀들에 대한 제2 프로그램 동작 및/또는 제3 프로그램 동작이 수행될 수 있다. 이에 따라, 상기 멀티-레벨 셀들이 좁은 문턱 전압 분포들을 가지거나, 상기 제2 프로그램 동작 및/또는 상기 제3 프로그램 동작의 프로그램 시간이 단축될 수 있다.

실시예에 따라, 솔리드 스테이트 드라이브(1300)는 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console) 등과 같은 호스트에 장착될 수 있다.

도 29는 본 발명의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.

도 29를 참조하면, 컴퓨팅 시스템(1400)은 프로세서(1410), 메모리(1420), 사용자 인터페이스(1430) 및 메모리 시스템(1100)을 포함한다. 실시예에 따라, 컴퓨팅 시스템(1400)은 베이스밴드 칩 셋(baseband chipset)과 같은 모뎀(1440)을 더 포함할 수 있다.

프로세서(1410)는 특정 계산들 또는 태스크들을 실행하는 특정 소프트웨어를 실행하는 것과 같이 다양한 컴퓨팅 기능들을 실행할 수 있다. 예를 들어, 프로세서(1410)는 마이크로프로세서 또는 중앙 처리 장치(CPU)일 수 있다. 프로세서(1410)는 어드레스 버스, 제어 버스 및/또는 데이터 버스와 같은 버스(1450)를 통하여 메모리(1420)에 연결될 수 있다. 예를 들어, 메모리(1420)는 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. 또한, 프로세서(1410)는 주변 구성요소 상호연결(peripheral component interconnect, PCI) 버스와 같은 확장 버스에 연결될 수 있다. 이에 따라, 프로세서(1410)는 키보드 또는 마우스와 같은 하나 이상의 입력 장치, 프린터 또는 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함하는 사용자 인터페이스(1430)를 제어할 수 있다. 모뎀(1440)은 외부 장치와 무선으로 데이터를 송수신할 수 있다. 비휘발성 메모리 장치(1120)에는 프로세서(1410)에 의해 처리된 데이터 또는 모뎀(1440)을 통하여 수신된 데이터 등이 메모리 컨트롤러(1110)를 통해 저장될 수 있다. 컴퓨팅 시스템(1400)은 동작 전압을 공급하기 위한 파워 서플라이를 더 포함할 수 있다. 또한, 컴퓨팅 시스템(1400)은, 실시예에 따라, 응용 칩셋(application chipset), 카메라 이미지 프로세서(camera image processor, CIS) 등을 더 포함할 수 있다.

본 발명은 멀티-레벨 셀을 포함하는 비휘발성 메모리 장치, 및 이를 를 이용하는 다양한 장치 및 시스템에 적용될 수 있다. 따라서, 본 발명은 비휘발성 메모리 장치를 구비하는 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive; SSD), 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console) 등과 같은 전자 기기에 확대 적용될 수 있을 것이다.

상기에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술분야에서 통상의 지식을 가진 자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 멀티-비트 데이터를 페이지 버퍼부에 로드하는 단계;
    상기 멀티-비트 데이터에 기초하여 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들을, 복수의 목표 프로그램 상태들에 각각 상응하는 복수의 중간 프로그램 상태들로서 제1 중간 프로그램 상태 및 상기 제1 중간 프로그램 상태보다 상위인 제2 중간 프로그램 상태를 포함하는 상기 복수의 중간 프로그램 상태들로 프로그램하는 단계;
    상기 멀티-레벨 셀들이 상기 복수의 중간 프로그램 상태들로 프로그램되었는지 여부를 검증하는 단계;
    상기 제2 중간 프로그램 상태에 대한 검증의 결과가 소정의 기준을 만족하는지 여부를 확인하여 상기 제1 중간 프로그램 상태에 대한 셀 그룹 정보를 생성하는 단계; 및
    상기 셀 그룹 정보에 기초하여 상기 멀티-레벨 셀들을 상기 멀티-비트 데이터에 상응하는 상기 복수의 목표 프로그램 상태들로 프로그램하는 단계를 포함하는 비휘발성 메모리 장치의 프로그램 방법.
  2. 제1 항에 있어서, 상기 소정의 기준은,
    상기 제2 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 오프-셀(off-cell)들의 수가 소정의 값 이상인 것, 또는 상기 제2 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 적어도 하나가 오프-셀이 되는 프로그램 루프 이후 수행된 프로그램 루프들의 수가 소정의 값 이상인 것을 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
  3. 제1 항에 있어서, 상기 셀 그룹 정보는,
    상기 멀티-레벨 셀들 각각이 문턱 전압의 증가가 상대적으로 빠른 멀티-레벨 셀들을 포함하는 고속 셀(fast cell) 그룹 또는 문턱 전압의 증가가 상대적으로 느린 멀티-레벨 셀들을 포함하는 저속 셀(slow cell) 그룹 중 어느 그룹에 속하는지를 나타내는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
  4. 제3 항에 있어서, 상기 멀티-레벨 셀들을 상기 복수의 목표 프로그램 상태들로 프로그램하는 단계는,
    상기 셀 그룹 정보에 기초하여 상기 고속 셀 그룹에 속하는 멀티-레벨 셀들에 제1 프로그램 전압을 인가하는 단계; 및
    상기 셀 그룹 정보에 기초하여 상기 저속 셀 그룹에 속하는 멀티-레벨 셀들에 상기 제1 프로그램 전압보다 높은 전압 레벨을 가지는 제2 프로그램 전압을 인가하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
  5. 제3 항에 있어서, 상기 멀티-레벨 셀들을 상기 복수의 목표 프로그램 상태들로 프로그램하는 단계는,
    상기 셀 그룹 정보에 기초하여 상기 저속 셀 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 제1 전압 레벨의 전압을 인가하는 단계;
    상기 셀 그룹 정보에 기초하여 상기 고속 셀 그룹에 속하는 멀티-레벨 셀들에 연결된 비트라인들에 상기 제1 전압 레벨보다 높은 제2 전압 레벨을 가지는 포싱 전압을 인가하는 단계; 및
    선택된 워드라인에 프로그램 전압을 인가하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
  6. 제1 항에 있어서, 상기 셀 그룹 정보를 생성하는 단계는,
    상기 제2 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 상기 제2 중간 프로그램 상태에 상응하는 제2 중간 검증 전압보다 높은 문턱 전압들을 가지는 오프-셀들을 카운트하는 단계; 및
    상기 카운트된 오프-셀들의 수가 소정의 값 이상인 경우, 상기 제1 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 상기 제1 중간 프로그램 상태에 상응하는 제1 중간 검증 전압보다 낮은 문턱 전압들을 가지는 온-셀들을 저속 셀(slow cell)들로 표시하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
  7. 제1 항에 있어서, 상기 셀 그룹 정보를 생성하는 단계는,
    상기 제2 중간 프로그램 상태로 프로그램되는 멀티-레벨 셀들 중 적어도 하나가 상기 제2 중간 프로그램 상태에 상응하는 제2 중간 검증 전압보다 높은 문턱 전압을 가지는 오프-셀이 되는 프로그램 루프 이후 수행된 프로그램 루프들을 카운트하는 단계; 및
    상기 카운트된 프로그램 루프들의 수가 소정의 값 이상인 경우, 상기 제1 중간 프로그램 상태에 상응하는 멀티-레벨 셀들 중 상기 제1 중간 프로그램 상태에 상응하는 제1 중간 검증 전압보다 낮은 문턱 전압들을 가지는 온-셀들을 느린 셀(slow cell)들로 표시하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
  8. 제1 항에 있어서,
    호스트로부터 제공된 상기 멀티-비트 데이터를 적어도 하나의 싱글 레벨 셀 블록에 프로그램하는 단계를 더 포함하고,
    상기 멀티-비트 데이터를 상기 페이지 버퍼부에 로드하는 단계는,
    상기 멀티-비트 데이터를 상기 적어도 하나의 싱글 레벨 셀 블록으로부터 상기 페이지 버퍼부에 로드하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
  9. 제8 항에 있어서,
    상기 셀 그룹 정보를 상기 적어도 하나의 싱글 레벨 셀 블록에 프로그램하는 단계; 및
    상기 멀티-레벨 셀들을 상기 복수의 목표 프로그램 상태들로 프로그램하도록 상기 멀티-비트 데이터 및 상기 셀 그룹 정보를 상기 적어도 하나의 싱글 레벨 셀 블록으로부터 상기 페이지 버퍼부에 로드하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
  10. 멀티-비트 데이터를 페이지 버퍼부에 로드하는 단계;
    상기 멀티-비트 데이터에 기초하여 멀티-레벨 셀 블록에 포함된 멀티-레벨 셀들을 복수의 중간 프로그램 상태들로 프로그램하는 단계;
    상기 멀티-레벨 셀들이 상기 복수의 중간 프로그램 상태들로 프로그램 되었는지 여부를 검증하는 단계;
    상기 멀티-레벨 셀들 각각이 프로그램된 것으로 검증될 때까지 수행된 프로그램 루프의 수에 따라 상기 멀티-레벨 셀들을 복수의 그룹들로 분할하여 상기 멀티-레벨 셀들 각각이 상기 복수의 그룹들 중 어느 그룹에 속하는지를 나타내는 셀 그룹 정보를 생성하는 단계; 및
    상기 셀 그룹 정보에 기초하여 상기 복수의 그룹들에 따라 서로 다른 프로그램 전압들을 인가하여 상기 멀티-레벨 셀들을 상기 멀티-비트 데이터에 상응하는 복수의 목표 프로그램 상태들로 프로그램하는 단계를 포함하는 비휘발성 메모리 장치의 프로그램 방법.
KR20110073416A 2011-07-25 2011-07-25 비휘발성 메모리 장치의 프로그램 방법 KR101821604B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20110073416A KR101821604B1 (ko) 2011-07-25 2011-07-25 비휘발성 메모리 장치의 프로그램 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20110073416A KR101821604B1 (ko) 2011-07-25 2011-07-25 비휘발성 메모리 장치의 프로그램 방법
US13546120 US8767475B2 (en) 2011-07-25 2012-07-11 Method of programming a nonvolatile memory device

Publications (2)

Publication Number Publication Date
KR20130012308A true KR20130012308A (ko) 2013-02-04
KR101821604B1 true KR101821604B1 (ko) 2018-01-24

Family

ID=47597099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20110073416A KR101821604B1 (ko) 2011-07-25 2011-07-25 비휘발성 메모리 장치의 프로그램 방법

Country Status (2)

Country Link
US (1) US8767475B2 (ko)
KR (1) KR101821604B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130071686A (ko) * 2011-12-21 2013-07-01 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
KR101716998B1 (ko) * 2013-03-14 2017-03-15 실리콘 스토리지 테크놀로지 인크 비휘발성 메모리 프로그램 알고리즘 디바이스 및 방법
KR101449933B1 (ko) * 2013-09-02 2014-10-15 (주)피델릭스 노이즈 피크를 줄이면서 프로그램 소요시간을 저감하는 플래시 메모리 장치 및 그의 프로그램 방법
KR20150029405A (ko) 2013-09-10 2015-03-18 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 프로그램 방법
US9058881B1 (en) * 2013-12-05 2015-06-16 Sandisk Technologies Inc. Systems and methods for partial page programming of multi level cells
KR20160005840A (ko) 2014-07-07 2016-01-18 에스케이하이닉스 주식회사 반도체 장치
KR20160014860A (ko) * 2014-07-29 2016-02-12 삼성전자주식회사 불휘발성 메모리, 데이터 저장 장치, 및 데이터 저장 장치의 동작 방법
US9679652B2 (en) * 2015-05-04 2017-06-13 Phison Electronics Corp. Threshold based multi-level cell programming for reliability improvement
US9633719B2 (en) * 2015-05-29 2017-04-25 Micron Technology, Inc. Programming memory cells to be programmed to different levels to an intermediate level from a lowest level
US9953703B2 (en) 2015-10-16 2018-04-24 Samsung Electronics Co., Ltd. Programming method of non volatile memory device
KR20170056254A (ko) 2015-11-13 2017-05-23 에스케이하이닉스 주식회사 비휘발성 메모리 장치
KR20170085774A (ko) * 2016-01-15 2017-07-25 삼성전자주식회사 프로그램 전압을 보정하는 플래시 메모리 장치, 3차원 메모리 장치, 메모리 시스템 및 그의 프로그램 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090147573A1 (en) 2007-12-07 2009-06-11 Gerrit Jan Hemink Faster programming of multi-level non-volatile storage through reduced verify operations

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7251158B2 (en) * 2004-06-10 2007-07-31 Spansion Llc Erase algorithm for multi-level bit flash memory
US7130210B2 (en) * 2005-01-13 2006-10-31 Spansion Llc Multi-level ONO flash program algorithm for threshold width control
US7391642B2 (en) * 2005-01-25 2008-06-24 Intel Corporation Multilevel programming of phase change memory cells
US7430138B2 (en) * 2005-03-31 2008-09-30 Sandisk Corporation Erasing non-volatile memory utilizing changing word line conditions to compensate for slower erasing memory cells
US7447078B2 (en) * 2005-04-01 2008-11-04 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
JP4282636B2 (ja) * 2005-06-22 2009-06-24 株式会社東芝 不揮発性半導体記憶装置とそのデータ書き込み方法
US7499338B2 (en) * 2006-10-13 2009-03-03 Sandisk Corporation Partitioned soft programming in non-volatile memory
US7535766B2 (en) * 2006-10-13 2009-05-19 Sandisk Corporation Systems for partitioned soft programming in non-volatile memory
JP4693859B2 (ja) 2008-03-21 2011-06-01 株式会社東芝 不揮発性半導体記憶装置及びその制御方法
KR101412974B1 (ko) * 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US7800956B2 (en) * 2008-06-27 2010-09-21 Sandisk Corporation Programming algorithm to reduce disturb with minimal extra time penalty
US7768836B2 (en) * 2008-10-10 2010-08-03 Sandisk Corporation Nonvolatile memory and method with reduced program verify by ignoring fastest and/or slowest programming bits
KR101528886B1 (ko) 2009-04-09 2015-06-16 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
KR20110131648A (ko) * 2010-05-31 2011-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 메모리 카드 및 그것의 프로그램 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090147573A1 (en) 2007-12-07 2009-06-11 Gerrit Jan Hemink Faster programming of multi-level non-volatile storage through reduced verify operations

Also Published As

Publication number Publication date Type
US8767475B2 (en) 2014-07-01 grant
KR20130012308A (ko) 2013-02-04 application
US20130028018A1 (en) 2013-01-31 application

Similar Documents

Publication Publication Date Title
US20070183210A1 (en) Program method of flash memory capable of compensating read margin reduced due to charge loss
US20130124783A1 (en) Method of operating nonvolatile memory devices storing randomized data generated by copyback operation
US20110051520A1 (en) Nonvolatile memory device, driving method thereof, and memory system having the same
US8254181B2 (en) Nonvolatile memory device and programming method
US20080172520A1 (en) Nonvolatile memory devices including multiple user-selectable program modes and related methods of operation
US20100124120A1 (en) Nonvolatile memory device
US8305811B2 (en) Flash memory device and method of reading data
US20090296486A1 (en) Memory device and memory programming method
US20110119432A1 (en) Nonvolatile memory devices having improved read performance resulting from data randomization during write operations
US20100321999A1 (en) Nonvolatile memory device and related programming method
US20090003057A1 (en) Non-volatile memory devices and systems including multi-level cells using modified read voltages and methods of operating the same
US20120044771A1 (en) Method of programming non-volatile memory device and apparatuses for performing the method
US20100259993A1 (en) Semiconductor memory device and related method of programming
US20110051514A1 (en) Nonvolatile memory device, memory system incorporating same, and method of operating same
US20110188292A1 (en) Variable resistance memory, operating method and system
US20130194883A1 (en) Operating method and data read method in nonvolatile memory device
US20110292724A1 (en) Nonvolatile memory device, system and programming method with dynamic verification mode selection
US20150095558A1 (en) Storage and programming method thereof
US20100034019A1 (en) Systems and methods for performing a program-verify process on a nonvolatile memory by selectively pre-charging bit lines associated with memory cells during the verify operations
US20110013457A1 (en) Nonvolatile memory devices and programming methods thereof in which a program inhibit voltage is changed during programming
US20100195387A1 (en) Non-volatile memory device and ispp programming method
US20090016104A1 (en) Nonvolatile semiconductor memory device and programming method thereof
US20110116322A1 (en) Charge recycling memory system and a charge recycling method thereof
US7489543B1 (en) Programming multilevel cell memory arrays
US20110235415A1 (en) Read method for nonvolatile memory device, and data storage system using the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant