KR101010468B1 - 불휘발성 메모리 소자의 프로그램 방법 - Google Patents

불휘발성 메모리 소자의 프로그램 방법 Download PDF

Info

Publication number
KR101010468B1
KR101010468B1 KR1020090058482A KR20090058482A KR101010468B1 KR 101010468 B1 KR101010468 B1 KR 101010468B1 KR 1020090058482 A KR1020090058482 A KR 1020090058482A KR 20090058482 A KR20090058482 A KR 20090058482A KR 101010468 B1 KR101010468 B1 KR 101010468B1
Authority
KR
South Korea
Prior art keywords
data
verification
latch
sensing node
program
Prior art date
Application number
KR1020090058482A
Other languages
English (en)
Other versions
KR20110001091A (ko
Inventor
임상오
Original Assignee
주식회사 하이닉스반도체
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 하이닉스반도체 filed Critical 주식회사 하이닉스반도체
Priority to KR1020090058482A priority Critical patent/KR101010468B1/ko
Priority to US12/826,402 priority patent/US8289769B2/en
Publication of KR20110001091A publication Critical patent/KR20110001091A/ko
Application granted granted Critical
Publication of KR101010468B1 publication Critical patent/KR101010468B1/ko

Links

Images

Classifications

    • 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/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
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 비트라인과 워드라인에 연결되는 메모리 셀과, 하나 이상의 비트라인에 연결되며 페이지 버퍼들을 갖는 불휘발성 메모리 소자의 프로그램 방법에 있어서, 프로그램을 위해 선택된 메모리 셀들에 포함되는 제 1 및 제 2 논리 페이지 중, 상기 제 1 논리 페이지 프로그램 및 검증을 수행하는 단계; 상기 제 2 논리 페이지에 프로그램할 데이터를 상기 페이지 버퍼의 제 1 내지 제 3 래치로 로딩한 후, 데이터 세팅을 수행하는 단계; 및 상기 제 1 내지 제 3 래치의 데이터 상태에 따라 상기 메모리 셀들의 문턱전압 분포가 제 1 내지 제 4 문턱전압 분포중 하나에 포함되도록 상기 제 2 논리 페이지를 프로그램하고 검증을 수행하는 단계를 포함하고, 상기 제 2 및 제 3 문턱전압 분포에 대한 프로그램 검증을 수행하는데 있어서 각각 두 개의 검증전압을 이용한 프로그램 검증을 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법을 제공한다.
더블 검증, 데이터 세팅, 래치

Description

불휘발성 메모리 소자의 프로그램 방법{Method of programming a non volatile memory device}
본 발명은 불휘발성 메모리 소자의 프로그램 방법에 관한 것이다.
불휘발성 메모리 소자는 데이터의 기록 및 삭제가 자유로운 램(RAM; Random Access Memory)의 장점과 전원의 공급 없이도 저장된 데이터를 보존하는 롬(ROM; Read Only Memory)의 장점을 동시에 지니고 있어 최근 디지털 카메라, PDA(Personal Digital Assistant), MP3 플레이어 등 휴대용 전자기기의 저장매체로 널리 채택되고 있다.
이러한 불휘발성 메모리 소자의 하나의 메모리 셀에는 통상의 메모리 장치와는 달리 2비트 이상의 멀티 레벨 형태의 데이터를 저장할 수 있다. 즉 메모리 셀의 플로팅 게이트에 충전되는 전하량을 조절하여 문턱전압의 크기를 상이하게 함으로써 여러 상태의 데이터를 저장할 수 있다. 이러한 멀티 레벨 셀 프로그램 방법은 불휘발성 메모리 셀의 용량을 획기적으로 증가시키는 점이 있어 많이 사용되고 있다. 멀티 레벨 셀 프로그램 방법에서는 하나의 물리 페이지에 둘 이상의 논리 페이지 데이터가 프로그램된다. 다만, 하나의 물리(Physical) 페이지에 여러 개의 논 리(Logical) 페이지가 프로그램됨에 따라 프로그램 동작에 소요되는 시간이 길고 복잡하고, 문턱전압 분포의 개수가 늘어남에 따라 문턱전압 분포간의 폭이 좁아져서 리드 마진(Read Margin)이 줄여들어 데이터 독출에 어려움이 발생된다.
따라서 본 발명이 이루고자 하는 기술적 과제는 멀티 레벨 셀을 프로그램하고 검증할 때, 페이지 버퍼의 래치의 개수를 많이 늘리지 않으면서 더블 검증 방식을 여러 개의 문턱전압 분포에 대해서 수행하여 문턱전압 분포의 폭을 좁혀 데이터 독출 마진을 높일 수 있는 불휘발성 메모리 소자의 프로그램 방법을 제공하는데 있다.
본 발명의 특징에 따른 불휘발성 메모리 소자의 프로그램 방법은,
비트라인과 워드라인에 연결되는 메모리 셀과, 하나 이상의 비트라인에 연결되는 페이지 버퍼들을 갖는 불휘발성 메모리 소자의 프로그램 방법에 있어서, 프로그램을 위해 선택된 메모리 셀들에 포함되는 제 1 및 제 2 논리 페이지 중, 상기 제 1 페이지 프로그램 및 검증을 수행하는 단계; 상기 논리 제 1 페이지 프로그램이 완료된 이후, 상기 논리 제 2 페이지 프로그램을 위한 데이터를 상기 페이지 버퍼의 제 1 내지 제 3 래치에 로딩한 후, 상기 메모리 셀들의 프로그램 상태에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시킨 후, 상기 메모리 셀들의 프로그램 상태와, 상기 제 1 래치의 데이터 상태에 따라 상기 제 2 래치의 데이터를 변경시키고, 상기 제 1 래치를 리셋한 후, 상기 제 1 논리 페이지의 프로그램 결과를 상기 제 1 래치에 저장하는 단계를 수행하는 세팅단계를 수행하는 데이터 세팅 단계; 및 상기 세팅된 제 1 내지 제3 래치의 상태에 따라서 메모리 셀의 문턱전압 분포가 제 1 내지 제 4 문턱전압 분포로 이동하도록 프로그램 및 검증 단계를 수행하는데 있어서, 상기 제 2 및 제3 문턱전압 분포에 대해 각각 두 개의 검증전압을 이용한 프로그램 검증을 수행하는 것을 특징으로 한다.
상기 제 1 내지 제 3 래치에 데이터를 로딩할 때, 상기 제 2 논리 페이지에 프로그램할 데이터를 상기 제 1 래치로 로딩하는 단계; 및 상기 제 1 래치에 로딩된 상기 제 2 논리 페이지에 프로그램할 데이터를 상기 제 2 및 제 3 래치로 전달하는 단계를 포함한다.
상기 제 1 문턱전압 분포에 포함되는 메모리 셀들은 소거 상태이고, 상기 제 2 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 1 및 제 2 검증전압을 이용한 검증을 수행하고, 상기 제 3 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 3 및 제 4 검증전압을 이용한 검증을 수행하고, 상기 제 4 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 5 검증전압을 이용한 검증을 수행하는 것을 특징으로 하고, 상기 제 1 문턱전압 분포보다 상기 제 2 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높고, 상기 제 2 문턱전압 분포보다 상기 제 3 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높고, 상기 제 3 문턱전압 분포보다 상기 제 4 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높은 것을 특징으로 한다.
상기 데이터 세팅 단계에서 상기 메모리 셀들의 프로그램 상태에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시킨 후, 상기 메모리 셀들의 프로그램 상태와, 상기 제 1 래치의 데이터 상태에 따라 상기 제 2 래치의 데이터를 변경시키는 것 은, 상기 페이지 버퍼의 센싱노드를 프리차지 하는 단계; 상기 메모리 셀들의 프로그램 상태에 따라 상기 센싱 노드의 전압 레벨을 변경시키는 단계; 상기 센싱노드의 전압 레벨에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시키는 단계; 상기 센싱노드를 프리차지 하는 단계; 상기 제 1 래치의 데이터 상태에 따라 상기 센싱노드의 전압 레벨을 변경시키는 단계; 및 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계를 포함한다.
상기 데이터 세팅 단계를 수행한 후, 상기 메모리 셀들 중, 상기 제 3 문턱전압 분포로 프로그램된 메모리 셀이 있는지를 확인하여 상기 제 2 래치의 데이터를 변경시키는 단계를 더 수행하는 것을 특징으로 한다.
상기 제 3 문턱전압 분포로 프로그램된 메모리 셀이 있는지를 확인하는 것은, 상기 센싱노드를 프리차지 하고, 상기 제 3 검증전압을 이용한 데이터 독출 동작을 수행하여 상기 센싱노드의 전압 레벨을 변경시키는 단계; 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계; 상기 센싱노드를 프리차지하고, 상기 제 4 검증전압을 이용한 데이터 독출을 수행하여 상기 센싱노드의 전압 레벨을 변경시키는 단계; 및 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계를 수행하는 것을 특징으로 한다.
상기 프로그램 및 검증 단계에 있어서, 상기 제 2 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은, 상기 제 1 내지 제 3 래치의 데이터 상태에 따라서 상기 메모리 셀의 프로그램을 수행하는 단계; 상기 제 1 검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 1 래치의 상태에 따라 상 기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 3 래치의 데이터를 변경시키는 제 1 검증 단계; 상기 제 2검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 1 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 제 2 래치의 데이터를 변경시키는 제 2 검증단계; 상기 제 1 및 제 2 래치의 데이터 상태에 따라 생성되는 제 1 검증신호를 이용하여 제 1 및 제 2 검증 패스 여부를 판단하는 단계를 수행하는 것을 특징으로한다.
상기 제 1 검증신호에 의해서 상기 제 1 및 제 2 검증이 패스된 경우, 상기 제 1 및 제 2 검증을 수행하지 않도록 블라인드 처리하는 것을 특징으로 한다.
상기 프로그램 및 검증 단계에 있어서, 상기 제 3 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은, 상기 제 3 검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 2 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 3 래치의 데이터를 변경시키는 제 3 검증 단계; 및 상기 제 4 검증전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시킨 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 제 4 검증단계를 수행하는 것을 특징으로 한다.
상기 프로그램 및 검증 단계에 있어서, 상기 제 4 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은, 상기 제 5 검증전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시킨 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 제 5 검증단계 및 상기 제 2 및 제 3 래치의 데이터 상 태에 따라 따라 생성되는 제 2 검증신호를 이용하여 제 3 내지 제 5 검증 패스 여부를 판단하는 단계를 수행하는 것을 특징으로 한다.
상기 제 1 또는 제 2 검증신호에 의해 검증 패스가 되지 않은 경우 프로그램 전압을 상승시켜 다시 프로그램을 수행하고, 상기 제 1 내지 제 5 검증을 수행하는 단계를 포함한다.
본 발명의 다른 특징에 따른 불휘발성 메모리 소자의 프로그램 방법은,
비트라인과 워드라인에 연결되는 메모리 셀과, 하나 이상의 비트라인에 연결되며 페이지 버퍼들을 갖는 불휘발성 메모리 소자의 프로그램 방법에 있어서, 프로그램을 위해 선택된 메모리 셀들에 포함되는 제 1 및 제 2 논리 페이지 중, 상기 제 1 논리 페이지 프로그램 및 검증을 수행하는 단계; 상기 제 2 논리 페이지에 프로그램할 데이터를 상기 페이지 버퍼의 제 1 내지 제 3 래치로 로딩한 후, 데이터 세팅을 수행하는 단계; 및 상기 제 1 내지 제 3 래치의 데이터 상태에 따라 상기 메모리 셀들의 문턱전압 분포가 제 1 내지 제 4 문턱전압 분포중 하나에 포함되도록 상기 제 2 논리 페이지를 프로그램하고 검증을 수행하는 단계를 포함하고, 상기 제 2 및 제 3 문턱전압 분포에 대한 프로그램 검증을 수행하는데 있어서 각각 두 개의 검증전압을 이용한 프로그램 검증을 수행하는 것을 특징으로 한다.
상기 제 2 및 제 3 문턱전압 분포에 대한 프로그램 검증을 수행하는데 있어서 각각 두 개의 검증전압을 이용한 프로그램 검증을 수행하게 하기 위하여, 상기 논리 제 1 페이지 프로그램이 완료된 이후, 상기 논리 제 2 페이지 프로그램을 위한 데이터를 상기 페이지 버퍼의 제 1 내지 제 3 래치에 로딩하는 데이터 로딩 단 계; 상기 메모리 셀들의 프로그램 상태에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시킨 후, 상기 메모리 셀들의 프로그램 상태와, 상기 제 1 래치의 데이터 상태에 따라 상기 제 2 래치의 데이터를 변경시키는 데이터 변경 단계; 및 상기 제 1 래치를 리셋한 후, 상기 제 1 논리 페이지의 프로그램 결과를 상기 제 1 래치에 저장하는 단계를 수행하는 세팅단계를 수행하는 데이터 세팅 단계를 수행하여, 프로그램할 데이터를 세팅하는 것을 특징으로 한다.
상기 데이터 로딩 단계는, 상기 제 2 논리 페이지에 프로그램할 데이터를 상기 제 1 래치로 로딩하는 단계; 및 상기 제 1 래치에 로딩된 상기 제 2 논리 페이지에 프로그램할 데이터를 상기 제 2 및 제 3 래치로 전달하는 단계를 포함한다.
상기 제 1 문턱전압 분포에 포함되는 메모리 셀들은 소거 상태이고, 상기 제 2 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 1 및 제 2 검증전압을 이용한 검증을 수행하고, 상기 제 3 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 3 및 제 4 검증전압을 이용한 검증을 수행하고, 상기 제 4 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 5 검증전압을 이용한 검증을 수행하는 것을 특징으로 하고, 상기 제 1 문턱전압 분포보다 상기 제 2 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높고, 상기 제 2 문턱전압 분포보다 상기 제 3 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높고, 상기 제 3 문턱전압 분포보다 상기 제 4 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높은 것을 특징으로 한다.
상기 데이터 변경 단계는, 상기 페이지 버퍼의 센싱노드를 프리차지 하는 단 계; 상기 메모리 셀들의 프로그램 상태에 따라 상기 센싱 노드의 전압 레벨을 변경시키는 단계; 상기 센싱노드의 전압 레벨에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시키는 단계; 상기 센싱노드를 프리차지 하는 단계; 상기 제 1 래치의 데이터 상태에 따라 상기 센싱노드의 전압 레벨을 변경시키는 단계; 및 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계를 포함한다.
상기 데이터 세팅 단계를 수행한 후, 상기 메모리 셀들 중, 상기 제 3 문턱전압 분포로 프로그램된 메모리 셀이 있는지를 확인하여 상기 제 2 래치의 데이터를 변경시키는 단계를 더 수행하는 것을 특징으로 한다.
상기 제 3 문턱전압 분포로 프로그램된 메모리 셀이 있는지를 확인하는 것은, 상기 센싱노드를 프리차지 하고, 상기 제 3 검증전압을 이용한 데이터 독출 동작을 수행하여 상기 센싱노드의 전압 레벨을 변경시키는 단계; 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계; 상기 센싱노드를 프리차지하고, 상기 제 4 검증전압을 이용한 데이터 독출을 수행하여 상기 센싱노드의 전압 레벨을 변경시키는 단계; 및 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계를 수행하는 것을 특징으로 한다.
상기 프로그램 및 검증 단계에 있어서, 상기 제 2 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은, 상기 제 1 내지 제 3 래치의 데이터 상태에 따라서 상기 메모리 셀의 프로그램을 수행하는 단계; 상기 제 1 검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 1 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 3 래치의 데이터를 변경시키는 제 1 검증 단계; 상기 제 2검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 1 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 제 2 래치의 데이터를 변경시키는 제 2 검증단계; 상기 제 1 및 제 2 래치의 데이터 상태에 따라 생성되는 제 1 검증신호를 이용하여 제 1 및 제 2 검증 패스 여부를 판단하는 단계를 수행하는 것을 특징으로 한다.
상기 제 1 검증신호에 의해서 상기 제 1 및 제 2 검증이 패스된 경우, 상기 제 1 및 제 2 검증을 수행하지 않도록 블라인드 처리하는 것을 특징으로 한다.
상기 프로그램 및 검증 단계에 있어서, 상기 제 3 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은, 상기 제 3 검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 2 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 3 래치의 데이터를 변경시키는 제 3 검증 단계; 및 상기 제 4 검증전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시킨 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 제 4 검증단계를 수행하는 것을 특징으로 한다.
상기 프로그램 및 검증 단계에 있어서, 상기 제 4 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은, 상기 제 5 검증전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시킨 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 제 5 검증단계 및 상기 제 2 및 제 3 래치의 데이터 상태에 따라 따라 생성되는 제 2 검증신호를 이용하여 제 3 내지 제 5 검증 패스 여 부를 판단하는 단계를 수행하는 것을 특징으로 한다.
상기 제 1 또는 제 2 검증신호에 의해 검증 패스가 되지 않은 경우 프로그램 전압을 상승시켜 다시 프로그램을 수행하고, 상기 제 1 내지 제 5 검증을 수행하는 단계를 포함한다.
이상에서 설명한 바와 같이, 본 발명에 따른 불휘발성 메모리 소자의 프로그램 방법은 페이지 버퍼에 래치를 추가하지 않고 더블 검증 수행하는 문턱전압 분포의 개수를 늘림으로써 면적을 크게 하지 않도록 데이터 독출 마진을 확보하여 데이터 신뢰성을 높일 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1a는 불휘발성 메모리 소자이다.
도 1a를 참조하면, 불휘발성 메모리 소자(100)는 메모리 셀 어레이(110), 페이지 버퍼부(120), Y 디코더(130), X 디코더(140), 전압 제공부(150) 및 제어부(160)를 포함한다.
메모리 셀 어레이(110)는 복수개의 메모리 셀들이 비트라인(Bit Line; BL)과 워드라인(Word Line)으로 연결된다. 본 발명의 실시예에 따른 불휘발성 메모리 소자(100)의 메모리 셀들은 2비트의 데이터를 저장할 수 있는 멀티 레벨 셀(Multi Level Cell)이다.
따라서 물리적인 페이지에 해당하는 각각의 워드라인마다 LSB(Least Significant Bit) 페이지와 MSB(Most Significant Bit) 페이지의 논리 페이지들을 포함한다.
페이지 버퍼부(120)는 하나 이상의 비트라인(BL)마다 연결되는 페이지 버퍼(PB)들이 포함된다. 본 발명의 실시 예에서는 이븐 비트라인(Even Bit Line; BLe)과 오드 비트라인(Odd Bit Line; BLo)이 포함된 하나의 비트라인 쌍마다 하나의 페이지 버퍼(PB)가 연결된다.
페이지 버퍼(PB)들은 프로그램 및 데이터 독출 동작에 이용된다.
Y 디코더(130)는 제어부(160)의 제어신호에 따라서 페이지 버퍼(PB)들의 데이터 입출력 경로를 제공한다.
X 디코더(140)는 제어부(160)의 제어신호에 따라서 워드라인을 선택하고, 동작을 위한 전압을 제공하는 글로벌 라인들과 연결한다.
전압 제공부(150)는 프로그램 및 검증, 데이터 독출 또는 소거 동작에 필요한 전압을 생성하여 글로벌 라인으로 제공한다.
제어부(160)는 프로그램 및 검증, 데이터 독출, 소거 동작등을 위한 제어신호를 출력한다.
본 발명의 실시 예에 따른 페이지 버퍼(PB)는 다음과 같이 구성된다.
도 1b는 도 1a의 페이지 버퍼를 나타낸다.
도 1b를 참조하면, 페이지 버퍼(PB)는 비트라인 선택부(121), 제 1 센싱부(122), 프리차지부(123), 제 1 내지 제 3 래치부(124 내지 126), 제 1 및 제 2 검증부(127, 128), 제 2 센싱부(129) 및 데이터 입출력부(129a)를 포함한다.
비트라인 선택부(121)는 이븐 비트라인(BLe)과 오드 비트라인(BLo)들 중 하나를 선택하고, 제 1 센싱부(122)는 비트라인 선택부(121)에 의해서 선택된 비트라인의 전압 레벨을 센싱하여 제 1 센싱노드(SO1)에 반영한다.
프리차지부(123)는 제 1 센싱노드(SO1)를 프리차지하고, 제 1 내지 제 3 래치부(124 내지 126)는 프로그램을 위한 데이터를 임시 저장하고 프로그램 검증 결과를 래치하거나, 메모리 셀에 저장된 데이터를 독출하여 저장한다.
제 1 및 제 2 검증부(127, 128)는 제 1 내지 제 3 래치부(124 내지 126)에서 래치한 프로그램 검증 결과를 제 1 및 제 2 검증신호(PVER1, PVER2)로서 출력한다.
제 2 센싱부(129)는 제 1 센싱노드(SO1)의 전압 레벨을 센싱하여 제 2 센싱노드(SO2)를 접지노드와 연결하고, 데이터 입출력부(129a)는 제 1 래치부(124)와 연결되어 프로그램할 데이터나 독출된 데이터의 입출력을 수행한다. 또한 데이터 입출력부(129a)를 통해서 제 1 센싱노드(SO1)를 통해 연결된 비트라인을 통해 흐르는 셀전류 측정을 수행할 수도 있다.
상기한 페이지 버퍼(PB)의 회로 구성을 보다 상세히 설명하면 다음과 같다.
비트라인 선택부(121)는 제 1 내지 제 4 NMOS 트랜지스터(N1 내지 N4)를 포함하고, 제 1 센싱부(122)는 제 5 NMOS 트랜지스터(N5)를 포함한다. 그리고 프리차 지부(123)는 제 1 PMOS 트랜지스터(P1)를 포함한다.
제 1 내지 제 3 래치부(124 내지 126)는 제 6 내지 제 15 NMOS 트랜지스터(N6 내지 N15)와 제 1 내지 제 3 래치(L1 내지 L3)를 포함한다.
제 1 및 제 2 검증부(127, 128)는 제 16 내지 제 19 NMOS 트랜지스터(N16 내지 N19)를 포함하고, 제 2 센싱부(129)는 제 20 NMOS 트랜지스터(N20)를 포함한다.
데이터 입출력부(129a)는 제 21 내지 제 23 NMOS 트랜지스터(N21 내지 N23)를 포함한다.
제 1 및 제 2 NMOS 트랜지스터(N1, N2)는 이븐 비트라인(BLe)과 오드 비트라인(BLo)의 사이에 직렬로 연결된다. 제 1 NMOS 트랜지스터(N1)의 게이트에는 이븐 디스차지 제어신호(DISCHe)가 입력되고, 제 2 NMOS 트랜지스터(N2)의 게이트에는 오드 디스차지 제어신호(DISCHo)가 입력된다.
제 1 및 제 2 NMOS 트랜지스터(N1, N2)의 접속점에는 가변전압(VIRPWR)이 입력된다.
제 3 NMOS 트랜지스터(N3)는 이븐 비트라인(BLe)과 노드(K1)의 사이에 연결되고, 제 4 NMOS 트랜지스터(N4)는 오드 비트라인(BLo)과 노드(K1)의 사이에 연결된다. 제 3 NMOS 트랜지스터(N3)의 게이트에는 이븐 선택 신호(BSLe)가 입력되고, 제 4 NMOS 트랜지스터(N4)의 게이트에는 오드 선택 신호(BSLo)가 입력된다.
제 5 NMOS 트랜지스터(N5)는 노드(K1)와 제 1 센싱노드(SO1)의 사이에 연결되고, 제 5 NMOS 트랜지스터(N5)의 게이트에는 센싱 제어신호(PBSENSE)가 입력된다.
제 1 PMOS 트랜지스터(P1)는 전원전압 입력단과 제 1 센싱노드(SO1)의 사이에 연결되고, 제 1 PMOS 트랜지스터(P1)의 게이트에는 프리차지 제어신호(PRECH_N)가 입력된다.
제 6 NMOS 트랜지스터(N6)는 제 1 센싱노드(SO1)와 노드(QC_N)의 사이에 연결되고, 제 6 NMOS 트랜지스터(N6)의 게이트에는 제 1 데이터 전송신호(CTRAN_N)가 입력된다.
제 1 래치(L1)는 노드(QC)와 노드(QC_N)의 사이에 두 개의 인버터를 이용한 래치 회로서 연결된다.
제 7 NMOS 트랜지스터(N7)는 노드(QC)와 제 2 센싱노드(SO2)의 사이에 연결되고, 제 8 NMOS 트랜지스터(N8)는 노드(QC_N)와 제 2 센싱노드(SO2)의 사이에 연결된다. 제 7 NMOS 트랜지스터(N7)의 게이트에는 제 1 리셋 신호(CRST)가 입력되고, 제 8 NMOS 트랜지스터(N8)의 게이트에는 제 1 세트신호(CSET)가 입력된다.
제 9 NMOS 트랜지스터(N9)는 제 1 센싱노드(SO1)와 노드(QV)의 사이에 연결되고, 제 10 NMOS 트랜지스터(N10)는 제 1 센싱노드(SO1)와 노드(QV_N)의 사이에 연결된다. 제 9 NMOS 트랜지스트(N9)의 게이트에는 제 2 데이터 전송신호(VTRAN)가 입력되고, 제 10 NMOS 트랜지스터(N10)의 게이트에는 제 3 데이터 전송신호(VTRAN_N)가 입력된다. 제 2 데이터 전송신호(VTRAN)의 반전신호가 제 3 데이터 전송신호(VTRAN_N)이다.
제 2 래치(L2)는 노드(QV)와 노드(QV_N)의 사이에 두 개의 인버터를 이용한 래치 회로서 연결된다.
제 11 NMOS 트랜지스터(N11)는 노드(QV)와 제 2 센싱노드(SO2)의 사이에 연결되고, 제 12 NMOS 트랜지스터(N12)는 노드(QV_N)와 제 2 센싱노드(SO2)의 사이에 연결된다. 제 11 NMOS 트랜지스터(N11)의 게이트에는 제 2 리셋신호(VRST)가 입력되고, 제 12 NMOS 트랜지스터(N12)의 게이트에는 제 2 세트신호(VSET)가 입력된다.
제 13 NMOS 트랜지스터(N13)는 제 1 센싱노드(SO1)와 노드(QA_N)의 사이에 연결된다. 제 13 NMOS 트랜지스터(N13)의 게이트에는 제 4 데이터 전송신호(ATRAN_N)가 입력된다.
제 3 래치(L3)는 노드(QA)와 노드(QA_N)의 사이에 두 개의 인버터를 이용한 래치 회로서 연결된다.
제 14 NMOS 트랜지스터(N14)는 노드(QA)와 제 2 센싱노드(SO2)의 사이에 연결되고, 제 15 NMOS 트랜지스터(N15)는 노드(QA_N)와 제 2 센싱노드(SO2)의 사이에 연결된다. 제 14 NMOS 트랜지스터(N14)의 게이트에는 제 3 리셋 신호(ARST)가 입력되고, 제 15 NMOS 트랜지스터(N15)의 게이트에는 제 3 세트신호(ASRT)가 입력된다.
제 16 및 제 17 NMOS 트랜지스터(N16, N17)는 접지노드와 제 1 검증신호(PVER1) 출력단의 사이에 연결된다. 제 16 NMOS 트랜지스터(N16)의 게이트는 노드(QV)에 연결되고, 제 17 NMOS 트랜지스터(N17)의 게이트는 노드(QC_N)에 연결된다.
제 18 및 제 19 NMOS 트랜지스터(N18, N19)는 접지노드와 제 2 검증신호(PVER2)의 출력단 사이에 직렬로 연결되고, 제 18 NMOS 트랜지스터(N18)의 게이트는 노드(QA_N)에 연결되고, 제 19 NMOS 트랜지스터(N19)의 게이트는 노드(QV_N) 에 연결된다.
제 20 NMOS 트랜지스터(N20)는 제 2 센싱노드(SO2)와 접지노드 사이에 연결되고, 제 20 NMOS 트랜지스터(N20)의 게이트는 제 1 센싱노드(SO1)에 연결된다.
제 21 NMOS 트랜지스터(N21)는 노드(QC)와 노드(BITOUT)의 사이에 연결되고, 제 22 NMOS 트랜지스터(N22)는 노드(QC_N)와 노드(BITOUT_N)의 사이에 연결된다. 제 21 및 제 22 NMOS 트랜지스터(N21, N22)의 게이트에는 페이지 버퍼 선택신호(PBSEL[i])가 연결된다.
제 23 NMOS 트랜지스터(N23)는 제 1 센싱노드(SO1)는 노드(BITOUT)의 사이에 연결되고, 제 23 NMOS 트랜지스터(N23)의 게이트에는 셀 전류 측정 모드 신호(CELLIV[i])가 연결된다.
상기 데이터 입출력부(129a)는 페이지 버퍼(PB)에 포함되기도 하고, Y 디코더(130)에 포함되기도 한다.
상기와 같은 불휘발성 메모리 소자(100)와 페이지 버퍼(PB)의 회로를 이용하여 2비트의 데이터를 저장하면, 다음과 같이 메모리 셀들의 문턱전압 분포가 나타난다.
도 2는 도1의 메모리 셀들의 프로그램에 따른 문턱전압 분포를 나타낸다.
도 2를 참조하면, 2비트의 데이터를 저장할 수 있는 멀티 레벨 셀들은 프로그램을 통해서 4 개의 문턱 전압 분포로 나뉜다.
최초에 소거 상태의 메모리 셀들은 0V 이하의 문턱전압을 갖고 있다. 그리고 LSB 페이지의 프로그램이 진행되면, 소거상태의 문턱전압 분포(211)와 프로그램된 상태의 문턱전압 분포(212)로 나뉜다. 프로그램이 진행된 메모리 셀들은 문턱전압이 높아지기 때문이다.
이후에 MSB 페이지의 프로그램이 진행되면, 4개의 문턱전압 분포(221 내지 224)로 나뉜다. 즉 소거 상태의 문턱전압 분포(211)에 포함되는 메모리 셀들이 프로그램 동작에 의해서 제 1 및 제 2 문턱전압 분포(221, 222)로 변경되고, LSB 프로그램 상태인 문턱전압 분포(212)에 포함되는 메모리 셀들이 프로그램 동작에 의해서 제 3 및 제 4 문턱전압 분포(223, 224)로 변경된다.
LSB 프로그램이 완료된 메모리 셀들의 문턱전압이 프로그램을 통해서 제 1 및 제 2 문턱전압 분포(221, 222)로 변경되는 경우를 제 1 케이스(A) 및 제 2 케이스(B)라 하고, 제 3 및 제 4 문턱전압 분포(223, 224)로 변경되는 경우를 제 3 및 제 4 케이스(C, D)라고 정의한다.
그리고 제 2 및 제 3 케이스(B, C)로 프로그램되는 메모리 셀들에 대해서는 두 개의 검증전압을 이용해서 프로그램 검증을 수행하는 더블 검증 방식을 적용한다.
따라서 MSB 페이지의 프로그램을 수행하면서 이용되는 검증전압은 제 1 내지 제 5 검증전압(MPV0 내지 MPV4)이다.
본 발명의 실시 예에 따른 도 1b에 나타난 페이지 버퍼(PB)를 이용해서 도 2와 같은 문턱전압 분포가 되도록 하는 프로그램 동작은 다음과 같이 수행된다.
다음의 설명은 LSB 페이지의 프로그램은 이미 완료된 상태에서, MSB 페이지 프로그램 동작을 설명한다.
도 3은 본 발명의 제 1 실시 예에 따른 프로그램 동작에서 페이지 버퍼의 데이터 초기화 동작을 설명하기 위한 순서도이다.
도 3을 참조하면, LSB 페이지의 프로그램이 완료된 후, 프로그램을 위한 데이터가 먼저 제 1 래치(L1; 노드 QC_N)로 입력된다(S301).
이때, 제 1 내지 제 4 문턱전압 분포(221 내지 제 224)로 프로그램되는 4 가지 경우에 대해서 동시에 설명하기 위해서 제 1 내지 제 4 케이스(ABCD)에 대해 노드의 상태를 나타내기로 한다. 그리고 제 1 내지 제 3 래치(L1 내지 L3)의 데이터라 함은 각각 노드(QC_N, QV_N, QA_N)의 상태를 말한다.
다음의 동작 설명에 따른 제 1 내지 제 3 래치(L1 내지 L3)의 상태는 다음의 표와 같다.
Figure 112009039567227-pat00001
표 1은 플래그로 표시된 부분은 플래그 메모리 셀에 연결된 페이지 버퍼의 상태를 나타내는 것으로, 제 2 케이스(B)와 동일하게 동작한다. 그 이유는 MSB 페이지의 프로그램 여부만을 나타내기 때문에 프로그램 된 상태와 프로그램되지 않은 상태를 구분할 수만 있으면 된다. 따라서 제 2 케이스(B)와 동일하게 프로그램하는 정도로 플래그 셀의 데이터 구분이 충분히 가능하기 때문이다. 그리고 필요에 따라서 플래그 셀은 제 3 케이스(C)와 같이 프로그램하는 경우에는 제 3 케이스(C)에 데이터 상태에 따라 설정하면 된다.
각각의 경우에 데이터가 입력되면 제 1 래치(L1)의 상태는 '1010'이 된다.
그리고 제 2 및 제 3 래치(L2, L3)의 상태는 모두 '1111'이다.
제 1 래치(L1)에 로딩된 데이터는 제 2 및 제 3 래치(L2, L3)로 전달된다(S303). 따라서 표 1 나타난 바와 같이 제 1 내지 제 3 래치(L1 내지 L3)가 모두 '1010'이 된다.
이후에 제 1 독출전압(RD1)을 이용해서 선택된 메모리 셀의 프로그램 상태를 로딩하여 제 2 및 제 3 래치에 저장한다(S307).
단계S307의 동작을 페이지 버퍼(PB)를 참조하여 보다 상세히 설명하면 다음과 같다.
선택된 메모리 셀이 이븐 비트라인에 연결된 메모리 셀이라면, 먼저 프리차지 제어신호(PRECH_N)를 로우 레벨로 인가하여 제 1 센싱노드(SO1)를 하이 레벨로 프리차지 한다. 그리고 센싱 제어신호(PBSENSE)를 제 1 전압(V1) 레벨로 인가하고, 이븐 선택 신호(BSLe)를 하이 레벨로 입력하여 이븐 비트라인과 노드(K1)를 연결한다. 이에 따라 이븐 비트라인(BLe)은 프리차지된다.
그리고 이븐 선택 신호(BSLe)를 로우 레벨로 변경하여 이븐 비트라인(BLe)이 플로팅 상태로 만들고, 선택된 메모리 셀이 연결되는 워드라인에는 제 1 독출전압(RD1)을 인가하고, 나머지 워드라인들에는 패스전압(Vpass)을 인가하여 이벨류에이션(Evaluation) 동작을 수행한다.
만약 선택된 메모리 셀이 도 2에서 소거 셀 상태(211)라면 이븐 비트라인(BLe)은 디스차지된다. 그러나 선택된 메모리 셀이 LSB 프로그램된 상태라면 이븐 비트라인(BLe)은 프리차지 상태를 유지한다.
이벨류에이션이 끝난 후에, 센싱 제어신호(PBSENSE)를 제 2 전압(V2) 레벨로 인가하고, 이븐 선택 신호(BSLe)를 하이 레벨로 인가하여 이븐 비트라인(BLe)과 노드(K1)을 연결한다. 이때 제 1 센싱노드(SO1)는 프리차지된 상태이다.
이븐 비트라인(BLe)이 디스차지 되었다면, 제 5 NMOS 트랜지스터(N5)는 턴온 되고, 제 1 센싱노드(SO1)는 챠지 쉐어링에 의해 디스차지된다(erase). 그러나 이븐 비트라인(BLe)이 프리차지 상태라면, 제 5 NMOS 트랜지스터(N5)는 턴 오프 상태로 유지되고, 제 1 센싱노드(SO1)도 프리차지 상태를 유지하게 된다(pgm). 제 5 NMOS 트랜지스터(N5)의 동작은 NMOS 트랜지스터의 특성에 의한 것이므로 상세히 설명하지 않는다.
그리고 제 2 및 제 3 래치(L2, L3)에 독출 결과를 래치하기 위해서, 제 2 리셋 신호(VRST)와 제 3 세트신호(ASET)를 하이 레벨로 인가한다.
메모리 셀이 소거 셀 상태라면, 제 1 센싱노드(SO1)는 로우 레벨이다. 따라서 제 20 NMOS 트랜지스터(N20)는 턴온 되지 않는다. 즉, 제 1 및 제 2 케이스(A, B)의 경우에는 제 2 및 제 3 래치(L2, L3)의 데이터 변경이 없다.
그러나 제 3 및 제 4 케이스(C, D)의 경우는 다르다. 즉 메모리 셀이 LSB 프로그램이 된 상태라면, 제 1 센싱노드(SO1)는 프리차지 상태를 유지하고 있기 때문에 제 20 NMOS 트랜지스터(N20)가 턴온 된다.
제 20 NMOS 트랜지스터(N20)가 턴온되면, 제 2 센싱노드(SO2)는 접지노드에 연결된다. 그리고 제 2 리셋 신호(VRST)와 제 3 세트신호(CSET)가 하이 레벨로 인가되면, 노드(QV)와 노드(QA_N)가 접지노드에 연결된다.
따라서 제 2 래치(L2)는 제 3 및 제 4 케이스(C, D)가 '11'이 되고, 제 3 래치(L3)는 제 3 및 제 4 케이스(C, D)가 '00'이 된다.
단계S307 이후에는 제 1 독출전압(RD1)을 이용해서 제 1 센싱노드(SO1)의 전압을 변경시킨 후, 제 1 래치(L1)의 데이터 상태에 따라 제 1 센싱노드(SO1)를 변경시킨다(S309).
그리고 제 1 센싱노드(SO1)가 전압 레벨 상태에 따라 제 2 래치(L2)의 데이터를 변경시킨다(S311). 이러한 동작을 센싱노드 컨트롤에 따르는 데이터 변경이라고 한다.
즉, 제 1 독출전압(RD1)을 이용해서 선택된 메모리 셀을 독출하면 제 1 센싱노드(SO1)의 상태는 제 1 내지 제 4 케이스(A, B, C, D)마다 '0011'의 상태가 된다. 제 1 및 제 2 케이스(A, B)는 제 1 독출전압(RD1)보다 문턱전압이 낮은 메모리 셀들이고, 제 3 및 제 4 케이스(C, D)는 제 1 독출전압(RD1)보다 문턱전압이 높은 메모리 셀이기 때문이다.
그리고 제 1 데이터 전송신호(CTRAN_N)를 하이 레벨로 인가하여 노드(QC_N)와 제 1 센싱노드(SO1)의 전압 레벨을 변경시킨다. 이에 따라 제 1 내지 제 4 케이스(A, B, C, D)에 따른 제 1 센싱노드(SO1)의 상태는 '0010'이 된다.
노드(QC_N)가 '0'이면 제 1 센싱노드(SO1)는 '0'으로 변경된다. 그리고 노드(QC_N)'가 '1'인 상태에서 제 1 센싱노드(SO1)가 '1' 상태이면 제 1 센싱노드(SO1)는 '1'상태를 그대로 유지한다.
그러나 노드(QC_N)가 '1'이고, 제 1 센싱노드(SO1)의 상태가 '0'인 경우에는, 노드(QC_N)의 '1'상태에 의해서 제 1 센싱노드(SO1)의 상태가 '1'로 변경되기에는 부족하다. 따라서 제 1 센싱노드(SO1)는 '0'이 유지된다.
상기와 같이 제 1 센싱노드(SO1)의 상태가 '0010'인 상태에서, 제 2 세트신호(VSET)를 하이 레벨로 인가하면, 제 3 케이스(C)에서만 제 20 NMOS 트랜지스터(N20)가 턴온되고, 노드(QV_N)가 접지노드에 연결된다.
따라서 노드(QV_N)의 제 1 내지 제4 케이스(A 내지 D)의 상태는 '1001'이 된다.
이후에는 제 1 래치(L1)를 리셋한다(S313). 제 1 래치(L1)의 리셋 동작은 프리차지 제어신호(PRECH_N)를 로우 레벨로 인가하여 제 1 센싱노드(SO1)를 하이 레벨로 프리차지하고, 제 1 리셋 신호(CRST)를 하이 레벨로 인가함으로써 노드(QC_N)를 '1'로 변경한다.
그리고 독출전압(RD1)을 이용해서 메모리 셀의 데이터 상태를 로딩하여 제 1 래치(L1)에 저장한다(S315). 독출전압(RD1)을 이용해서 메모리 셀의 데이터 상태를 로딩하면 제 1 센싱노드(SO1)는 '0011'이 된다. 그리고 제 1 세트신호(CSET)를 하이 레벨로 인가하면, 노드(QC_N)는 '1100'이 된다.
상기 단계 S301 내지 단계 S315는 프로그램을 처음 시작할 때 데이터 세팅 동작이다. 세팅이 완료된 이후에는 확인을 위해 제 3 및 제 4 검증전압(MPV2, MPV3)을 이용해서 데이터를 읽어 제 2 래치(L2)의 데이터를 변경시킨다(S317, S319). 이는 프로그램 속도가 빠른 메모리 셀의 경우에 이미 제 3 또는 제 4 검증전압(MPM2, MPV3) 이상으로 문턱전압이 상승되어 있는 경우가 있기 때문이다.
프로그램 검증 방식으로 더블 검증을 이용할 때, 비트라인의 전압은 세가지로 나눌 수 있다.
메모리 셀의 프로그램을 진행하기 위해 비트라인을 0V, AV 또는 전원전압(Vcc)으로 각각의 메모리 셀의 상태에 인가한다.
도 1을 예로 들 때, 제 1 및 제 2 검증전압(MPV0, MPV1)으로 제 2 문턱전압 분포(222)에 포함되는 메모리 셀들을 더블 검증하면 제 1 검증전압(MPV0)보다 낮은 문턱전압을 갖는 메모리 셀이 연결되는 비트라인에는 0V를 인가한다.
그리고 제 1 검증전압(MPV0)과 제 2 검증전압(MPV1)의 사이에 문턱전압을 갖는 메모리 셀이 연결되는 비트라인에는 AV를 인가한다. AV 는 0V 보다는 높고, 전원전압(Vcc)보다는 낮는 전압레벨로써 프로그램의 속도를 늦출 수 있다.
그리고 프로그램이 되지 않아야 하는 메모리 셀이 연결되는 비트라인에 전원전압(Vcc)을 인가하여 프로그램을 금지(inhibit)시킨다.
따라서 제 2 문턱전압 분포(222)에 포함되도록 프로그램해야 하는 메모리 셀이 연결되는 비트라인에 초기에는 0V가 인가되고, 제 1 검증전압(MPV0)에 대해서 패스가 되면 AV를 인가하고, 제 2 검증전압(MPV1)에 대해서 패스되면 전원전압을 인가한다.
이를 위해서 제 2 및 제 3 래치(L2, L3)의 상태에 의해서 비트라인에 인가되는 전압이 결정된다.
제 2 및 제 3 래치(L2,L3)의 상태가 '11'이면 비트라인에 전원전압(Vcc)이 인가된다. 그리고 제 2 및 제 3 래치(L2, L3)에 상태가 '00'또는 '10'이면 비트라인에 0V 전원이 인가된다.
그리고 제 2 및 제 3 래치(L3)의 상태가 '01'이되면 비트라인에 AV를 인가한다. 상기한 비트라인 전압 인가 방식은 이미 사용되고 있는 기술이므로 상세한 설명을 생략한다.
한편, 데이터 세팅이 완료된 이후에 프로그램동작은 다음과 같다.
도 4a 및 도 4b는 도 3의 프로그램 세팅 이후의 프로그램 동작을 설명하기 위한 순서도이다.
도 4a 및 도 4b를 참조하면, 프로그램 펄스가 인가되면 프로그램을 진행한다(S401).
본 발명의 제 1 실시 예에서는 2비트를 저장할 수 있는 메모리 셀에 대한 프로그램 설명을 한다. 따라서 도 1에 나타난 제 1 내지 제 4 문턱전압 분포(221 내지 224)에 대한 프로그램 과정이 설명될 것이고, 제 2 및 제 3 문턱전압 분포(222, 223)에 대해서 더블 검증을 수행하기 위해 제 1 내지 제 5 검증전압(MPV0 내지 MPV4)이 사용된다. 그리고 각각의 검증전압을 이용하는 검증 동작을 제 1 내지 제 5 검증이라고 하기로 한다.
단계S401에서 프로그램을 진행하는 동작은 일반적인 프로그램 동작과 동일하므로 상세한 설명은 생략하기로 한다. 이때 제 1 내지 제 3 래치(L1 내지 L3)의 데이터 상태에 따라서 비트라인에는 0V, AV 또는 전원전압(Vcc)이 인가된다.
표 2는 프로그램 동작을 하는 동안 제 1 내지 제 3 래치(L1 내지 L3)의 상태변경을 제 1 내지 제4 케이스(A 내지 D) 별로 나타낸 것이다. 각각의 C, V, A 는 노드(QC_N, QV_N, QA_N)을 가리킨다.
Figure 112009039567227-pat00002
그리고 프로그램이후에 검증을 수행하는데, 먼저 제 1 및 제 2 검증전압(MPV0, MPV1)에 대한 제 1 및 제 2 검증이 블라인드(Blind)가 되어있는지 여부를 판단한다(S403). 프로그램 검증을 수행할 때 초기의 프로그램 동작에서는 메모리 셀들의 문턱전압이 크게 상승되지 않을 수도 있고, 또한 프로그램/소거 사이클의 진행에 따라 메모리 셀들의 상태가 열화될 때를 대비하여 프로그램 초기 시작 전압을 낮게 설정하는 대신에 설정된 개수의 프로그램 펄스에 대해서는 프로그램 검증을 수행하지 않도록 하는 블라인드(Blind)를 설정할 수 있다. 또한 제 1 및 제 2 검증 결과가 이미 패스된 상태에서도 제 1 및 제 2 검증을 블라인드 처리하여 불필요한 검증을 하지 않도록 설정한다.
따라서 만약 제 1 및 제 2 검증이 블라인드 상태라면 제 3 내지 제 5 검증도 본 발명의 실시 예에서는 ISPP(Increment Step Pluse Programming) 방식을 이용하기 때문에 프로그램 펄스가 인가될 때마다 스텝 전압 만큼 상승된 프로그램 전압이 인가된다.
제 1 및 제 2 검증이 블라인드가 아니라면, 제 1 검증전압(MPV0)을 이용한 제 1 검증을 수행하는데, 이를 위해서 제 1 센싱노드(SO1)를 프리차지 한 후, 제 1 검증전압(MPV1)으로 선택된 메모리 셀을 독출하여 제 1 센싱노드(SO1)에 상태를 변경시킨다.
즉, 제 1 검증에서 패스된 메모리 셀들이 연결된 페이지 버퍼의 제 1 센싱노드(SO1)는 '0'상태가 되고, 제 1 검증에서 패스되지 않은 메모리 셀들이 연결된 페이지 버퍼의 제 1 센싱노드(SO1)는 '1'상태가 된다.
그리고 제 1 래치(L1; 노드 QC_N)의 데이터에 따라서 제 1 센싱노드(SO1)의 상태를 변경시킨다(S407). 그리고는 제 1 센싱노드(SO1)의 상태에 따라서 제 3 래치(L3; 노드 QA_N)의 데이터를 변경시킨다. 이를 위해서 제 3 리셋 신호(ARST)를 하이 레벨로 인가한다(S409).
예를 들어 프로그램 진행 결과, 제 2 문턱전압 분포(222)로 프로그램되어야 하는 메모리 셀들중 제 1 검증전압 이상의 문턱전압을 갖지 못한 메모리 셀 경우에 단계S405의 수행결과 제 1 센싱노드(SO1)의 상태는 '0011'이 된다.
그리고 제 1 래치(L1)의 상태가 '1100'이므로 단계S407을 수행한 결과 제 1 센싱노드(SO1)의 상태는 '0000'이 된다. 따라서 단계S409를 수행하면 제 3 래치(L3)의 상태는 변경되지 않고 '1000'을 유지한다.
그러나 제 2 문턱전압 분포(222)로 프로그램되어야 하는 메모리 셀들 중 제 1 검증전압 이상의 문턱전압을 갖게된 메모리 셀의 경우에 단계S405를 수행한 결과 제 1 센싱노드(SO1)의 상태는 '0111'이 된다. 그리고 단계S407을 수행하면 제 1 센싱노드(SO1)의 상태는 '0100'이 되고, 단계S409의 수행결과에 따라서 제 3 래치(L3; 노드 QA_N)의 상태는 '1100'이 된다. 따라서 제 2 케이스(B)로 프로그램되어야 하는 메모리 셀의 제 2 및 제 3 래치(L2, L3; 노드 QV_N, QA_N)의 상태는 '01'이 된다. 이에 따라 이후에 프로그램 동작에서 비트라인에 AV가 인가된다.
제 1 검증이 완료된 이후에는 제 2 검증을 수행한다. 이를 위해 제 1 센싱노드(SO1)를 프리차지 시킨 후, 제 2 검증전압(MPV1)에 의한 독출을 수행하여 제 1 센싱노드(SO1)를 변경시킨다(S411).
그리고 제 1 래치(L1; 노드 QC_N)의 상태에 따라 제 1 센싱노드(SO1)를 변경시킨 후(S413), 제 2 리셋 신호(VRST)를 하이 레벨로 인가하여 제 1 센싱노드(SO1)의 상태에 따라 제 2 래치(L2; QV_N)의 데이터를 변경시킨다(S415).
예를 들어, 제 2 검증전압(MPV1)보다 문턱전압이 낮는 상태의 메모리 셀과 연결된 페이지 버퍼는 단계S411을 수행한 결과 제 1 센싱노드(SO1)의 상태가 '0011'이다. 그리고 단계S413을 수행하면 제 1 센싱노드(SO1)의 상태가 '0000'이 되므로 단계S415의 수행결과 제 2 래치(L2; 노드 QV_N)의 상태는 변경되지 않는다.
그러나 제 2 검증전압(MPV1)보다 높은 문턱전압으로 프로그램이된 메모리 셀의 경우에, 이미 제 3 래치(L3; 노드 QA_N)의 상태는 '1100'이 된 메모리 셀들이다. 그리고 단계 S411을 수행하면 제 1 센싱노드(SO1)의 상태는'0111'된다.
그리고 단계S413의 수행결과 제 1 센싱노드(SO1)는 '0100'이 되고, 단계S415를 수행한 결과, 제 2 래치(L2; 노드 QV_N)의 상태는 '1101'이 된다. 따라서 제 2 케이스(B)에서 제 2 및 제 3 래치(L2, L3; 노드 QV_N, QA_N)의 상태가 '11'이 되어 이후의 프로그램에 대해서 프로그램 금지가 된다.
제 1 및 제 2 검증을 수행한 이후에는 제 1 검증신호(PVER1)를 확인한다(S417). 제 1 검증신호(PVER1)가 하이 레벨이면 제 1 및 제 2 검증이 모두 패스된 상태로 판단하고(S419), 이후의 제 1 및 제 2 검증을 수행하지 않도록 블라인드 처리한다(S421).
제 1 및 제 2 검증이 블라인드 처리되거나, 제 1 검증신호(PVER1)가 '1'이 되지 않은 것을 확인한 이후에는 제 3 검증이 블라인드 처리되었는지를 확인한다(S423).
불휘발성 메모리 소자는 프로그램 동작에서 높은 문턱전압 분포에 포함되는 메모리 셀에 대해서는 검증을 시작하도록 하는 프로그램 펄스의 개수를 다르게 설정해 놓는다. 이러한 이유는 높은 문턱전압으로 프로그램되어야 하는 메모리 셀에 대해서 초기부터 검증을 해도 패스될 확률은 적고 프로그램 검증 시간은 늘어나기 때문이다. 따라서 본 발명의 실시 예에서는 제 3 및 제 4 문턱전압 분포(223, 224)에 포함되도록 프로그램되는 메모리 셀들에 대한 검증은 설정된 개수의 프로그램 펄스가 인가된 이후부터 수행하도록 블라인드 처리를 한다.
그리고 설정된 개수의 프로그램펄스가 인가된 이후에 블라인드가 해제된다.
제 3 검증에 대해 블라인드 되어있는 상태라면 제 4 및 제 5 검증도 당연히 블라인드 상태이므로 다시 프로그램 펄스를 인가해서 프로그램을 진행하는 단계S401부터 동작을 반복한다.
그리고 제3 검증에 대해 블라인드 되지 않았다면 제 3 검증을 수행한다. 이를 위해서 제 1 센싱노드(SO1)를 프리차지시킨 후, 제 3 검증전압(MPV2)을 이용해서 제 1 센싱노드(SO1)의 상태를 변경시킨다(S425). 그리고 제 2 래치(L2; 노드 QV)의 데이터 상태에 따라 제 1 센싱노드(SO1)의 상태를 다시 변경시킨다(S427). 이때 제 2 래치(L2)의 노드(QV)의 상태를 이용해서 제 1 센싱노드(SO1)를 변경시키 위해 제 1 데이터 전송신호(VTRAN)를 하이 레벨로 인가하여 제 1 센싱노드(SO1)의 상태를 변경시킨다. 그리고 제 1 센싱노드(SO1)의 상태에 따라 제 3 리셋 신호(ARST)를 하이 레벨로 인가하여 제 3 래치(L3; 노드 QA_N)의 데이터를 변경시킨다(S429).
이를 상세히 설명하면 다음과 같다.
제 3 검증전압(MPV2) 이상으로 프로그램된 메모리 셀이 없는 경우, 제 3 검증전압(MPV2)에 대해서 제 1 센싱노드(SO1)의 상태는 '0000'이 된다. 그리고 제 2 래치(L2; 노드 QV)의 상태는'0110' 또는 '0010이다.
제 2 래치(L2; 노드 QV)의 상태에 의해서 단계S427을 수행하면 제 1 센싱노드(SO1)는 '0000'이 된다. 그리고 단계S429를 수행하면 제 3 래치(L3; 노드 QA_N)의 상태는 '1100'이 유지된다.
그리고 제 3 검증전압(MPV2) 이상으로 프로그램된 메모리 셀이 있는 경우, 단계S425를 수행하면 제 1 센싱노드(SO1)는 '0011'이 되고, 단계S427을 수행하면 제 1 센싱노드(SO1)는 '0010'이 된다. 그리고 단계S429를 수행하면 제 3 래치(L3; 노드 QA_N)의 상태는 '1110'이 된다.
이에 따라서 제 3 케이스(C)의 경우 제 2 및 제 3 래치(L2, L3; 노드 QV_N, QA_N)의 상태는 '01'이 된다. 따라서 이후의 프로그램 동작에서 비트라인에 AV가 인가된다.
제 3 검증 이후에, 제 4 검증을 시작하기 전에 제 4 검증전압(MPV3)에 의한 제 4 검증이 블라인드 되어 있는지를 확인하고(S431), 블라인드 되어 있지 않다면 제 4 검증전압(MPV3)을 이용해서 독출동작을 수행하여 제 1 센싱노드(SO1)를 변경시킨다(S433). 그리고 제 1 센싱노드(SO1)의 상태에 따라서 제 1 리셋 신호(VRST)를 하이 레벨로 인가하여 제 2 래치(L2; 노드 QV_N)의 상태를 변경시킨다(S435).
제 4 검증전압(MPV3)에 의해서 변경된 제 1 센싱노드(SO)의 상태는 '0001' 또는 '0011'이다. 그리고 제 3 검증까지 완료된 상태의 제 2 래치(L2; 노드 QV_N)의 상태는 '1001' 또는 '1101'이다.
그리고 단계S435를 수행하면 제 2 래치(L2; 노드 QV_N)의 상태는 '1011' 또는 '1111'이 된다. 즉 제 3 케이스(C)의 경우만 제 4 검증이 패스되면 제 2 래치(L2; 노드 QV_N)의 상태가 '1'로 변경되는 것을 의미한다.
제 3 케이스(C)로 프로그램되어야 하는 메모리 셀의 경우 제 4 검증이 패스되면 제 2 및 제 3 래치(L2, L3; 노드 QV_N, QA_N)의 상태는 '11'이 되므로 이후의 프로그램에 대해 금지가 된다.
마지막으로 제 5 검증전압(MPV4)를 이용한 제 5 검증을 수행하기 전에 블라인드 되어있는지를 확인하고(S437). 제 5 검증전압(MPV4)을 이용해서 프로그램 검증을 하고 검증 결과를 제 2 래치(QA_N)로 저장한다.
제 5 검증전압(MPV4)에 의한 제 5 검증은 제 4 케이스(D)만 영향을 받는다. 그리고 제 4 케이스(D)의 메모리 셀이 연결된 페이지 버퍼의 상태는 제 5 검증이 패스되면 제 2 및 제 3 래치(L2, L3; 노드 QV_N, QA_N)가 '11'이 되어 프로그램 금지로 변경된다.
따라서 제 1 내지 제 4 케이스(A 내지 D)에 대해 모두 프로그램 패스가 되면 제 2 및 제 3 래치(L2, L3; 노드 QV_N, QA_N)는 모두 '1111'이 된다.
앞서 언급한 동작 방식에 따라서 세 개의 래치회로를 구비한 페이지 버퍼(PB)를 이용하여 제 2 및 제3 케이스(B, C)에 대해 더블 검증을 수행할 수 있다.
한편, 메모리 셀 어레이(110)가 부분 프로그램 방식을 적용할 수 있는 경우에 초기 데이터 세팅 과정은 조금 다르다. 도 3에 나타난 데이터 세팅 과정에서 단S301 내지 S315까지의 세팅 과정은 동일하다.
그러나 이후에 플래그 셀의 데이터 상태를 확인하는 과정이 다르다.
도 5a 및 도 5b는 본 발명의 제 2 실시 예에 따른 프로그램 데이터 세팅 과정을 설명하기 위한 도면이다.
도 5a는 부분 프로그램 방식에 의해서 이미 프로그램된 메모리 셀이 있는 경우 문턱전압 변경 케이스를 나타낸 것이고, 도 5b는 이에 따른 데이터 세팅에 동작을 설명하는 순서도이다.
도 5a를 참조하면, 부분 프로그램 방식은 메모리 셀 어레이(110)에 플래그 셀들을 포함하고 있다. 그리고 부분적인 프로그램이 진행된 경우 플래그 셀을 프로그램하여 '0'데이터가 저장되도록 만든다.
이때 LSB 페이지의 프로그램은 종래와 동일하다. 그러나 MSB 페이지에 대해서 부분 프로그램이 이미 있는 경우 플래그 셀은 '0'을 갖도록 프로그램이 이미 된 상태이다.
따라서 일부 메모리 셀들은 이미 제 1 내지 제 4 문턱전압 분포(510 내지 540)에 포함되도록 프로그램이 완료된 상태이고, 나머지 MSB 페이지의 프로그램이 되지 않은 메모리 셀들은 제 1 및 제 3 문턱전압 분포(510, 530)에 포함되도록 프로그램이 되어 있다.
따라서 프로그램이 진행되는 경우는 제 1 내지 제 6 케이스(CA 내지 CF)가 된다. 실제 프로그램이 진행되는 경우는 제 5 및 제 6 케이스(CE, CF)이고 나머지 경우는 모두 프로그램 금지로 세팅이 되어야 한다.
따라서 도 5b와 같이 프로그램 세팅 과정이 수행된다.
참고로 각 케이스별로 페이지 버퍼의 래치들의 상태는 다음의 표3과 같이 변경된다.
Figure 112009039567227-pat00003
표 3에서 플래그 셀로 표시된 부분은 플래그 셀이 연결되는 페이지 버퍼의 래치 상태를 별도로 나타낸 것이다. MSB 프로그램을 수행하면서 플래그 셀도 프로그램을 진행해야 하기 때문에 '0'데이터가 처음에 입력된다. 그리고 플래그 셀의 경우에는 제 2 케이스(CB)와 동일하게 프로그램이 진행되도록 설정할 수 있다. 그 이유는 플래그 셀은 프로그램이 된 상태와 되지 않은 상태의 두가지 상태로 구분하기 때문에 여러 가지 문턱전압 레벨을 구분할 필요가 없어서이다. 따라서 제 2 케이스(CB)와 같이 프로그램되면 플래그 셀의 상태를 이용해서 프로그램 진행 여부를 판단하는 것이 가능하다.
도 5b를 참조하면, 먼저 제 1 내지 제 6 케이스(CA 내지 CF)의 경우에 대해서 제 1 래치(L1; 노드 QC_N)에 데이터가 로딩되고(S501), 제 2 및 제3 래치(L2, L2; 노드 QV_N, QA_N)에 데이터를 전달한다(S503, S505).
그리고 제 1 독출전압(RD1)을 이용해서 제 2 및 제 3 래치(L2, L3; 노드 QV_N, QA_N)의 상태를 변경시킨다(S507).
먼저 제 1 센싱노드(SO1)를 프리차지 시키고, 제 1 독출전압(RD)을 이용해서 제 1 센싱노드(SO1)를 변경시키면, 제 1 내지 제 6 케이스(CA 내지 CF)에 대해서 각각 '011101'이 된다.
그리고 제 2 리셋신호(VRST)를 하이 레벨로 인가하면, 제 2 래치(L2; 노드 QV_N)는 '111101'로 변경된다.
그리고 제 3 세트신호(CSET)를 하이 레벨로 인가하면 제 3 래치(L3; 노드 QA_N)는 '10000'로 변경된다.
그리고 제 1 독출전압(RD)을 이용헤서 제 1 센싱노드(SO1)를 변경시킨후, 제 1 래치(L1; 노드 QC_N)의 상태에 따라 제 1 센싱노드(SO1)를 다시 변경시킨다(S509).
제 1 독출전압(RD)을 이용해서 제 1 센싱노드(SO1)를 변경시키면, '011101'이고, 제 1 데이터 전송신호(CTRAN_N)를 하이 레벨로 인가하여 제 1 래치(L1; 노드QC_N)의 상태에 따라 다시 변경시키면 제 1 센싱노드(SO1)는 '011100'이 된다.
그리고 제 1 센싱노드(SO1)의 상태에 따라 제 2 세트신호(VSET)를 하이 레벨로 인가하여 제 1 래치(L1; 노드QC_N)의 상태를 변경시키면, '100001'이 된다.
그리고 제 1 래치(L1; 노드 QC_N)를 리셋한 후(S513), 제 1 독출전압(RD1)을 이용해서 제 1 센싱노드(SO1)의 상태를 변경시킨 후, 제 1 센싱노드(SO1)의 상태에 따라서 제 1 래치(L1; 노드 QC_N)를 변경시킨다(S515).
제 1 래치(L1; 노드 QC_N)의 리셋은 제 1 센싱노드(SO1)를 하이 레벨로 프리차지시킨 후, 제 1 리셋 신호(CRST)를 하이 레벨로 인가하여 노드(QC_N)를 '11111'상태로 만든다.
그리고 제 1 독출전압(RD1)을 이용해서 제 1 센싱노드(SO1)의 상태를 변경시키면, '011101'이고, 제 1 세트신호(CSET)를 하이 레벨로 인가하면 제 1 래치(L1; 노드 QC_N)의 상태는 '100010'이 된다.
단계S501 내지 S515의 데이터 세팅 동작은 상기 도 3에서 설명한 세팅 동작과 동일하다. 하지만 제 2 실시 예에서는 부분 프로그램이 이미 진행되었기 때문에 플래그 셀의 데이터 확인 과정이 필요하다.
즉, 플래그 셀의 데이터가 '0'인지 여부를 확인하고(S517), 플래그 셀의 데이터가 '0'상태라면 이미 프로그램이 진행되었음을 의미하므로 플래그 셀이 연결된 페이지 버퍼(PB)의 래치에 '1'데이터를 입력하여(S519) 플래그 셀이 프로그램 금지되도록 한다.
이를 위해서 제 1 독출전압(RD1)을 이용해서 제 1 센싱노드(SO1)의 상태를 '011101'로 만들고, 제 1 센싱노드(SO1)의 상태를 다시 제 2 래치(L2; 노드 QV)에 따라서 변경시킨 후, 변경된 제 1 센싱노드(SO1)의 상태에 따라서 제 1 내지 제 3 래치(L1 내지 L3; 노드 QC_N, QV_N, QA_N)의 상태를 변경시킨다(S521).
제 2 데이터 전송신호(VTRAN)를 하이 레벨로 인가하여 제 2 래치(L2; 노드 QV)의 상태에 따라서 제 1센싱노드(SO1)를 변경시키면 제 1 센싱노드(SO1)는 '011100'이 된다.
그리고 제 1 내지 제 3 리셋 신호(CRST, VRST, ARST)를 하이 레벨로 입력하면, 제 1 센싱노드(SO1)의 상태에 따라서 제 1 래치(L1; 노드 QC_N)는'11110'이 되고, 제 2 래치(L2; 노드 QV_N)는 '111101'이 되고, 제 3 래치(L3; 노드 QA_N)는 '111100'이 된다.
또한 표 3에 나타난 바와 같이 플래그 셀의 래치 상태는 제 1 내지 제 3 래치(L1 내지 L3; QC_N, QV_N, QA_N)가 각각 '110'이 되어 표 1에 나타난 제 2 케이스(B)와 동일하게 고정된다. 앞서 언급한 바와 같이 플래그 셀은 제 2 케이스(B 또는 CB)와 같이 프로그램되어야 한다. 플래그 셀의 프로그램 상태가 도 2에서 나타난 제 2 케이스(B)와 같이 되어야 정상적으로 플래그 셀 프로그램이 진행된다. 왜냐하면 도 5a에서의 제 2 케이스(CB)는 프로그램 금지가 되도록 세팅하기 때문에 플래그 셀이 프로그램되지 않을 수 있어서 이다.
이상과 같이 세팅된 메모리 셀은 도 4a 및 도 4b에서 설명한 바와 같이 프로그램된다. 부분 프로그램이 진행된 제 2 실시 예의 경우에는 실제 더블 검증을 수행하는 것은 제 5 케이스(CE)밖에 없다.
플래그 셀에 대한 데이터 세팅 이후에는 도 3과 같이 제 3 및 제 4 검증(MPV2, MPV3)을 하여 이미 프로그램된 메모리 셀들도 프로그램 금지 될 수 있게 한다(S523, S525).
한편, 프로그램을 진행하는 동안 제 1 래치(L1)가 더 이상 사용되지 않는 경우, 즉 1 및 제 2 검증이 패스된 이후에는 지능형 검증을 위한 페일 비트 카운팅을 수행한다. 이를 위해서 제 1 및 제 2 검증 패스가 된 이후에 프로그램 검증을 수행할때마다 페일 비트 확인을 위한 컬럼 스캔을 할 수 있다. 그러나 페일 비트 확인은 많은 시간이 들어가기 때문에 프로그램 시간을 길게 만들지 않기 위해 마지막 프로그램 펄스 또는 마지막 몇 번의 프로그램 펄스에 대해서만 한정적으로 수행하기도 한다.
도 6은 마지막 프로그램 펄스가 인가된 이후에 지능형 검증을 위한 페일 비트 확인 동작을 설명하기 위한 순서도이다.
도 6을 참조하면, 마지막 프로그램 펄스에 따른 프로그램 동작과 프로그램 검증이 수행된 이후에 페일 비트 확인 동작만을 나타낸다. 프로그램 검증은 앞서 설명한 도 4a 및 도 4b와 같이 수행된다.
그리고 이미 제 1 및 제 2 검증이 패스된 상태이므로 제 1 래치(L1)는 사용하지 않는다.
따라서 표 4와 같이 래치상태 변경이 된다.
Figure 112009039567227-pat00004
이때, 마지막 프로그램 펄스로 인한 프로그램 및 검증이 완료된 이후에(S601), 제 4 및 제 5 검증에 대해서 페일이 발생된 경우, 제 2 래치(L2; 노드 QV_N)이 상태는 '1101'이 되고, 제 3 래치(L3; 노드 QA_N)의 상태는 '1110'일때를 가정하고 페일 비트 카운팅을 위한 데이터 변경을 설명하기로 한다. 그리고 제 1 래치(L1)는 사용하지 않는 상태이다.
컬럼 스캔을 위해서는 제 2 및 제 3 래치(L2, L3)의 페일 정보를 하나로 결합시켜 한번에 출력하도록 한다. 도 1b에 나타난 페이지 버퍼(PB)는 제 1 래치(L1)에만 데이터 입출력부(129a)가 연결되므로 제 2 및 제 3 래치(L2, L3)이 페일 정보를 하나의 래치로 결합하여 제 1 래치(L1)를 통해 출력해야 한다.
이를 위해서, 먼저 제 2 래치(L2)의 데이터를 제 3 래치(L3)로 전달한다(S603). 먼저 제 1 센싱노드(SO1)를 프리차지시키고, 제 2 데이터 전송신호(VTRAN)를 인가하여 제 1 센싱노드(SO1)를 변경시킨다.
제 2 래치(L2)의 상태가 표 4와 같으므로 제 1 센싱노드(SO1)의 상태는 '0011'이 되고, 제 3 세트신호(ASET)를 하이 레벨로 인가하면 '1100'이 된다. 래치의 상태가 '0'인 경우가 페일이 발생한 상태가 되므로 이로서 제 4 및 제 5 검증(MPV3, MPV4)이 검증이 모두 페일인 경우의 데이터가 제 3 래치(L3)에 저장되어, 제 3 및 제 4 케이스(C, B)가 '0'이 된다.
그리고 제 2 래치(L2)를 리셋하고(S605), 제 1 래치(L1)의 데이터를 제2 래치(L2)로 옮긴다(S607). 이는 만약 캐시 프로그램 동작을 하는 경우 제 1 래치(L1)에 캐시 데이터가 저장되어 있을 수 있기 때문에 캐시 데이터의 보호를 위해서이다.
제 2 래치(L2)의 리셋은 제 1 센싱노드(SO1)를 프리차지하고, 제 2 세트신호(VSET)를 하이 레벨로 인가한다. 그리고 제 1 래치(L1)의 데이터를 제 2 래치(L2)로 옮기기 위해서 제 1 데이터 전송신호(CTRAN_N)와 제 2 리셋 신호(VRST)를 하이 레벨로 인가한다.
그리고 제 1 래치(L1)를 다시 리셋한 후(S609), 제 3 래치(L3)의 데이터를 제 1 래치(L1)로 옮겨 컬럼 스캔을 수행한다(S613).
제 1 래치(L1)의 세팅은 제 1 세트신호(CSET)를 하이 레벨로 인가하고, 제 3 래치(L3)의 데이터를 제 1 래치(L1)로 옮기는 것은 제 4 데이터 전송신호(ATRAN_N)와 제 1 리셋신호(CRST)를 하이 레벨로 인가하여 수행한다.
컬럼 스캔이 수행된 이후에는 물론, 제 2 래치(L2)에 저장된 캐시 데이터를 제 1 및 제 3 래치로 옮기도 상기 도 3 또는 도 5b와 같은 데이터 세팅 동작을 수행하게 된다.
이상과 같은 동작에 의해서 세 개의 래치를 갖는 페이지 버퍼(PB)에서 제 2 및 제 3 문턱전압 분포(222, 223)에 대한 더블 검증을 수행할 수 있다.
하나 이상의 비트 정보를 저장할 수 있는 멀티 레벨 셀(Multi Level Cell)에 연결되는 페이지 버퍼(PB)에는 프로그램 동작을 위해서 비트라인의 전압을 컨트롤하기 위한 두 개의 래치가 필요하고, 더블 검증을 수행하기 위한 플래그 래치의 동작을 수행하기 위한 래치가 필요하다. 특히 더블 검증을 두개의 문턱전압 분포에 대해서 하는 경우에는 플래그 래치도 두개가 필요하다. 따라서 문턱전압 분포의 개선을 위해서 더블 검증을 수행하는 문턱전압 분포가 늘어날수록 페이지 버퍼(PB)에 포함되어야 하는 래치의 개수는 늘어나게 된다.
앞서 설명한 본 발명의 실시 예에서는 캐시 래치에 해당하는 제 1 래치(L1)에서 플래그 래치의 동작을 할 수 있도록 하고, 비트라인 컨트롤을 위해 동작하는 제 2 및 제 3 래치(L2, L3)에서도 상태 구분을 위한 플래그 래치의 기능을 하도록 함으로써 두 개의 문턱전압 분포에 대한 더블 검증을 수행할 때, 세 개의 래치만으로도 프로그램이 가능하다.
또한, 3비트의 데이터를 저장할 수 있는 멀티 레벨 셀에 연결되는 페이지 버퍼라면, 캐시 래치에서 플래그 래치의 기능을 하고, 비트라인 전압 제어를 위한 래치들에서도 플래그 래치의 기능을 하도록 데이터 세팅을 함으로써 래치의 개수를 줄이면서 여러개의 문턱전압에 대한 더블 검증을 하게 할 수도 있다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시 예에서 구체적으로 기술되었으나, 상기한 실시 예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
도 1a는 불휘발성 메모리 소자이다.
도 1b는 도 1a의 페이지 버퍼를 나타낸다.
도 2는 도1의 메모리 셀들의 프로그램에 따른 문턱전압 분포를 나타낸다.
도 3은 본 발명의 제 1 실시 예에 따른 프로그램 동작에서 페이지 버퍼의 데이터 초기화 동작을 설명하기 위한 순서도이다.
도 4a 및 도 4b는 도 3의 프로그램 세팅 이후의 프로그램 동작을 설명하기 위한 순서도이다.
도 5a 및 도 5b는 본 발명의 제 2 실시 예에 따른 프로그램 데이터 세팅 과정을 설명하기 위한 도면이다.
도 6은 마지막 프로그램 펄스가 인가된 이후에 지능형 검증을 위한 페일 비트 확인 동작을 설명하기 위한 순서도이다.
*도면의 주요 부분의 간단한 설명*
100 : 불휘발성 메모리 소자 110 : 메모리 셀 어레이
120 : 페이지 버퍼부 130 : Y 디코더
140 : X 디코더 150 : 전압 제공부
160 : 제어부

Claims (23)

  1. 비트라인과 워드라인에 연결되는 메모리 셀과, 하나 이상의 비트라인에 연결되는 페이지 버퍼들을 갖는 불휘발성 메모리 소자의 프로그램 방법에 있어서,
    프로그램을 위해 선택된 메모리 셀들에 포함되는 제 1 및 제 2 논리 페이지 중, 상기 제 1 페이지 프로그램 및 검증을 수행하는 단계;
    상기 논리 제 1 페이지 프로그램이 완료된 이후, 상기 논리 제 2 페이지 프로그램을 위한 데이터를 상기 페이지 버퍼의 제 1 내지 제 3 래치에 로딩한 후, 상기 메모리 셀들의 프로그램 상태에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시킨 후, 상기 메모리 셀들의 프로그램 상태와, 상기 제 1 래치의 데이터 상태에 따라 상기 제 2 래치의 데이터를 변경시키고, 상기 제 1 래치를 리셋한 후, 상기 제 1 논리 페이지의 프로그램 결과를 상기 제 1 래치에 저장하는 단계를 수행하는 세팅단계를 수행하는 데이터 세팅 단계; 및
    상기 세팅된 제 1 내지 제3 래치의 상태에 따라서 메모리 셀의 문턱전압 분포가 제 1 내지 제 4 문턱전압 분포로 이동하도록 프로그램 및 검증 단계를 수행하는데 있어서, 상기 제 2 및 제3 문턱전압 분포에 대해 각각 두 개의 검증전압을 이용한 프로그램 검증을 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  2. 제 1 항에 있어서,
    상기 제 1 내지 제 3 래치에 데이터를 로딩할 때,
    상기 제 2 논리 페이지에 프로그램할 데이터를 상기 제 1 래치로 로딩하는 단계; 및
    상기 제 1 래치에 로딩된 상기 제 2 논리 페이지에 프로그램할 데이터를 상기 제 2 및 제 3 래치로 전달하는 단계를 포함하는 불휘발성 메모리 소자의 프로그램 방법.
  3. 제 1항에 있어서,
    상기 제 1 문턱전압 분포에 포함되는 메모리 셀들은 소거 상태이고,
    상기 제 2 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 1 및 제 2 검증전압을 이용한 검증을 수행하고,
    상기 제 3 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 3 및 제 4 검증전압을 이용한 검증을 수행하고,
    상기 제 4 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 5 검증전압을 이용한 검증을 수행하는 것을 특징으로 하고,
    상기 제 1 문턱전압 분포보다 상기 제 2 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높고, 상기 제 2 문턱전압 분포보다 상기 제 3 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높고, 상기 제 3 문턱전압 분포보다 상기 제 4 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높은 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  4. 제 3항에 있어서,
    상기 데이터 세팅 단계에서 상기 메모리 셀들의 프로그램 상태에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시킨 후, 상기 메모리 셀들의 프로그램 상태와, 상기 제 1 래치의 데이터 상태에 따라 상기 제 2 래치의 데이터를 변경시키는 것은,
    상기 페이지 버퍼의 센싱노드를 프리차지 하는 단계;
    상기 메모리 셀들의 프로그램 상태에 따라 상기 센싱 노드의 전압 레벨을 변경시키는 단계;
    상기 센싱노드의 전압 레벨에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시키는 단계;
    상기 센싱노드를 프리차지 하는 단계;
    상기 제 1 래치의 데이터 상태에 따라 상기 센싱노드의 전압 레벨을 변경시키는 단계; 및
    상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계를 포함하는 불휘발성 메모리 소자의 프로그램 방법.
  5. 제 4 항에 있어서,
    상기 데이터 세팅 단계를 수행한 후,
    상기 메모리 셀들 중, 상기 제 3 문턱전압 분포로 프로그램된 메모리 셀이 있는지를 확인하여 상기 제 2 래치의 데이터를 변경시키는 단계를 더 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  6. 제 4항에 있어서,
    상기 제 3 문턱전압 분포로 프로그램된 메모리 셀이 있는지를 확인하는 것은,
    상기 센싱노드를 프리차지 하고, 상기 제 3 검증전압을 이용한 데이터 독출 동작을 수행하여 상기 센싱노드의 전압 레벨을 변경시키는 단계;
    상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계;
    상기 센싱노드를 프리차지하고, 상기 제 4 검증전압을 이용한 데이터 독출을 수행하여 상기 센싱노드의 전압 레벨을 변경시키는 단계; 및
    상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계를 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  7. 제 6항에 있어서,
    상기 프로그램 및 검증 단계에 있어서,
    상기 제 2 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은,
    상기 제 1 내지 제 3 래치의 데이터 상태에 따라서 상기 메모리 셀의 프로그램을 수행하는 단계;
    상기 제 1 검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 1 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 3 래치의 데이터를 변경시키는 제 1 검증 단계;
    상기 제 2검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 1 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 제 2 래치의 데이터를 변경시키는 제 2 검증단계;
    상기 제 1 및 제 2 래치의 데이터 상태에 따라 생성되는 제 1 검증신호를 이용하여 제 1 및 제 2 검증 패스 여부를 판단하는 단계를 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  8. 제 7항에 있어서,
    상기 제 1 검증신호에 의해서 상기 제 1 및 제 2 검증이 패스된 경우, 상기 제 1 및 제 2 검증을 수행하지 않도록 블라인드 처리하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  9. 제 7항에 있어서,
    상기 프로그램 및 검증 단계에 있어서,
    상기 제 3 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은,
    상기 제 3 검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시 키고, 상기 제 2 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 3 래치의 데이터를 변경시키는 제 3 검증 단계; 및
    상기 제 4 검증전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시킨 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 제 4 검증단계를 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  10. 제 9항에 있어서,
    상기 프로그램 및 검증 단계에 있어서,
    상기 제 4 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은,
    상기 제 5 검증전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시킨 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 제 5 검증단계 및
    상기 제 2 및 제 3 래치의 데이터 상태에 따라 따라 생성되는 제 2 검증신호를 이용하여 제 3 내지 제 5 검증 패스 여부를 판단하는 단계를 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  11. 제 10항에 있어서,
    상기 제 1 또는 제 2 검증신호에 의해 검증 패스가 되지 않은 경우 프로그램 전압을 상승시켜 다시 프로그램을 수행하고, 상기 제 1 내지 제 5 검증을 수행하는 단계를 포함하는 불휘발성 메모리 소자의 프로그램 방법.
  12. 비트라인과 워드라인에 연결되는 메모리 셀과, 하나 이상의 비트라인에 연결되며 페이지 버퍼들을 갖는 불휘발성 메모리 소자의 프로그램 방법에 있어서,
    프로그램을 위해 선택된 메모리 셀들에 포함되는 제 1 및 제 2 논리 페이지 중, 상기 제 1 논리 페이지 프로그램 및 검증을 수행하는 단계;
    상기 제 2 논리 페이지에 프로그램할 데이터를 상기 페이지 버퍼의 제 1 내지 제 3 래치로 로딩한 후, 데이터 세팅을 수행하는 단계; 및
    상기 제 1 내지 제 3 래치의 데이터 상태에 따라 상기 메모리 셀들의 문턱전압 분포가 제 1 내지 제 4 문턱전압 분포중 하나에 포함되도록 상기 제 2 논리 페이지를 프로그램하고 검증을 수행하는 단계를 포함하고,
    상기 제 2 및 제 3 문턱전압 분포에 대한 프로그램 검증을 수행하는데 있어서 각각 두 개의 검증전압을 이용한 프로그램 검증을 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  13. 제 12항에 있어서,
    상기 제 2 및 제 3 문턱전압 분포에 대한 프로그램 검증을 수행하는데 있어서 각각 두 개의 검증전압을 이용한 프로그램 검증을 수행하게 하기 위하여,
    상기 논리 제 1 페이지 프로그램이 완료된 이후, 상기 논리 제 2 페이지 프 로그램을 위한 데이터를 상기 페이지 버퍼의 제 1 내지 제 3 래치에 로딩하는 데이터 로딩 단계;
    상기 메모리 셀들의 프로그램 상태에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시킨 후, 상기 메모리 셀들의 프로그램 상태와, 상기 제 1 래치의 데이터 상태에 따라 상기 제 2 래치의 데이터를 변경시키는 데이터 변경 단계; 및
    상기 제 1 래치를 리셋한 후, 상기 제 1 논리 페이지의 프로그램 결과를 상기 제 1 래치에 저장하는 단계를 수행하는 세팅단계를 수행하는 데이터 세팅 단계를 수행하여, 프로그램할 데이터를 세팅하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  14. 제 13 항에 있어서,
    상기 데이터 로딩 단계는,
    상기 제 2 논리 페이지에 프로그램할 데이터를 상기 제 1 래치로 로딩하는 단계; 및
    상기 제 1 래치에 로딩된 상기 제 2 논리 페이지에 프로그램할 데이터를 상기 제 2 및 제 3 래치로 전달하는 단계를 포함하는 불휘발성 메모리 소자의 프로그램 방법.
  15. 제 13항에 있어서,
    상기 제 1 문턱전압 분포에 포함되는 메모리 셀들은 소거 상태이고,
    상기 제 2 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 1 및 제 2 검증전압을 이용한 검증을 수행하고,
    상기 제 3 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 3 및 제 4 검증전압을 이용한 검증을 수행하고,
    상기 제 4 문턱전압 분포로 프로그램될 메모리 셀들을 검증하기 위해 제 5 검증전압을 이용한 검증을 수행하는 것을 특징으로 하고,
    상기 제 1 문턱전압 분포보다 상기 제 2 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높고, 상기 제 2 문턱전압 분포보다 상기 제 3 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높고, 상기 제 3 문턱전압 분포보다 상기 제 4 문턱전압 분포에 포함되는 메모리 셀들의 문턱전압이 높은 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  16. 제 15항에 있어서,
    상기 데이터 변경 단계는,
    상기 페이지 버퍼의 센싱노드를 프리차지 하는 단계;
    상기 메모리 셀들의 프로그램 상태에 따라 상기 센싱 노드의 전압 레벨을 변경시키는 단계;
    상기 센싱노드의 전압 레벨에 따라 상기 제 2 및 제 3 래치의 데이터를 변경시키는 단계;
    상기 센싱노드를 프리차지 하는 단계;
    상기 제 1 래치의 데이터 상태에 따라 상기 센싱노드의 전압 레벨을 변경시키는 단계; 및
    상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계를 포함하는 불휘발성 메모리 소자의 프로그램 방법.
  17. 제 16 항에 있어서,
    상기 데이터 세팅 단계를 수행한 후,
    상기 메모리 셀들 중, 상기 제 3 문턱전압 분포로 프로그램된 메모리 셀이 있는지를 확인하여 상기 제 2 래치의 데이터를 변경시키는 단계를 더 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  18. 제 16항에 있어서,
    상기 제 3 문턱전압 분포로 프로그램된 메모리 셀이 있는지를 확인하는 것은,
    상기 센싱노드를 프리차지 하고, 상기 제 3 검증전압을 이용한 데이터 독출 동작을 수행하여 상기 센싱노드의 전압 레벨을 변경시키는 단계;
    상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계;
    상기 센싱노드를 프리차지하고, 상기 제 4 검증전압을 이용한 데이터 독출을 수행하여 상기 센싱노드의 전압 레벨을 변경시키는 단계; 및
    상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 단계를 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  19. 제 18항에 있어서,
    상기 프로그램 및 검증 단계에 있어서,
    상기 제 2 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은,
    상기 제 1 내지 제 3 래치의 데이터 상태에 따라서 상기 메모리 셀의 프로그램을 수행하는 단계;
    상기 제 1 검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 1 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 3 래치의 데이터를 변경시키는 제 1 검증 단계;
    상기 제 2검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 1 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 제 2 래치의 데이터를 변경시키는 제 2 검증단계;
    상기 제 1 및 제 2 래치의 데이터 상태에 따라 생성되는 제 1 검증신호를 이용하여 제 1 및 제 2 검증 패스 여부를 판단하는 단계를 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  20. 제 19항에 있어서,
    상기 제 1 검증신호에 의해서 상기 제 1 및 제 2 검증이 패스된 경우, 상기 제 1 및 제 2 검증을 수행하지 않도록 블라인드 처리하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  21. 제 19항에 있어서,
    상기 프로그램 및 검증 단계에 있어서,
    상기 제 3 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은,
    상기 제 3 검증 전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시키고, 상기 제 2 래치의 상태에 따라 상기 센싱노드의 전압 레벨을 변경한 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 3 래치의 데이터를 변경시키는 제 3 검증 단계; 및
    상기 제 4 검증전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시킨 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 제 4 검증단계를 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  22. 제 21항에 있어서,
    상기 프로그램 및 검증 단계에 있어서,
    상기 제 4 문턱전압 분포로 프로그램될 메모리 셀들을 검증하는 것은,
    상기 제 5 검증전압을 이용한 독출동작을 수행하여 상기 센싱노드를 변경시 킨 후, 상기 센싱노드의 전압 레벨에 따라 상기 제 2 래치의 데이터를 변경시키는 제 5 검증단계 및
    상기 제 2 및 제 3 래치의 데이터 상태에 따라 따라 생성되는 제 2 검증신호를 이용하여 제 3 내지 제 5 검증 패스 여부를 판단하는 단계를 수행하는 것을 특징으로 하는 불휘발성 메모리 소자의 프로그램 방법.
  23. 제 22항에 있어서,
    상기 제 1 또는 제 2 검증신호에 의해 검증 패스가 되지 않은 경우 프로그램 전압을 상승시켜 다시 프로그램을 수행하고, 상기 제 1 내지 제 5 검증을 수행하는 단계를 포함하는 불휘발성 메모리 소자의 프로그램 방법.
KR1020090058482A 2009-06-29 2009-06-29 불휘발성 메모리 소자의 프로그램 방법 KR101010468B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090058482A KR101010468B1 (ko) 2009-06-29 2009-06-29 불휘발성 메모리 소자의 프로그램 방법
US12/826,402 US8289769B2 (en) 2009-06-29 2010-06-29 Method of programming nonvolatile memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090058482A KR101010468B1 (ko) 2009-06-29 2009-06-29 불휘발성 메모리 소자의 프로그램 방법

Publications (2)

Publication Number Publication Date
KR20110001091A KR20110001091A (ko) 2011-01-06
KR101010468B1 true KR101010468B1 (ko) 2011-01-21

Family

ID=43380561

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090058482A KR101010468B1 (ko) 2009-06-29 2009-06-29 불휘발성 메모리 소자의 프로그램 방법

Country Status (2)

Country Link
US (1) US8289769B2 (ko)
KR (1) KR101010468B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11657885B2 (en) 2020-09-02 2023-05-23 SK Hynix Inc. Memory device and method of operating the memory device

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101802815B1 (ko) * 2011-06-08 2017-12-29 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 프로그램 방법
US8493792B2 (en) * 2010-12-02 2013-07-23 Hynix Semiconductor Inc. Programming method of non-volatile memory device
KR101211840B1 (ko) * 2010-12-30 2012-12-12 에스케이하이닉스 주식회사 반도체 메모리 장치의 프로그램 방법
JP5426600B2 (ja) * 2011-03-30 2014-02-26 株式会社東芝 半導体メモリ
KR20150041260A (ko) * 2013-10-07 2015-04-16 에스케이하이닉스 주식회사 반도체 장치 및 그것의 동작 방법
US9595345B2 (en) * 2014-08-07 2017-03-14 Sandisk Technologies Llc Adaptive selective bit line pre-charge for current savings and fast programming
KR102248835B1 (ko) 2014-09-29 2021-05-10 삼성전자주식회사 불 휘발성 메모리 장치 및 그것의 동작 방법
KR20200116265A (ko) * 2019-04-01 2020-10-12 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작 방법
USD1002407S1 (en) * 2021-05-19 2023-10-24 Hunan Lianke Technology Co., Ltd Automotive diagnostic device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090037571A (ko) * 2007-10-12 2009-04-16 주식회사 하이닉스반도체 페이지 버퍼, 이를 구비하는 메모리 소자 및 그 동작 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
JP4157065B2 (ja) * 2004-03-29 2008-09-24 株式会社東芝 半導体記憶装置
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
KR100771882B1 (ko) * 2006-09-06 2007-11-01 삼성전자주식회사 멀티-레벨 불휘발성 메모리 장치의 프로그램 방법
US7609548B2 (en) * 2006-09-29 2009-10-27 Hynix Semiconductor Inc. Method of programming a multi level cell
US7876618B2 (en) * 2009-03-23 2011-01-25 Sandisk Corporation Non-volatile memory with reduced leakage current for unselected blocks and method for operating same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090037571A (ko) * 2007-10-12 2009-04-16 주식회사 하이닉스반도체 페이지 버퍼, 이를 구비하는 메모리 소자 및 그 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11657885B2 (en) 2020-09-02 2023-05-23 SK Hynix Inc. Memory device and method of operating the memory device

Also Published As

Publication number Publication date
KR20110001091A (ko) 2011-01-06
US8289769B2 (en) 2012-10-16
US20100329032A1 (en) 2010-12-30

Similar Documents

Publication Publication Date Title
KR101010468B1 (ko) 불휘발성 메모리 소자의 프로그램 방법
KR101066746B1 (ko) 페이지 버퍼 회로 및 이를 구비한 불휘발성 메모리 소자와 그 동작 방법
US8059460B2 (en) Method of programming nonvolatile memory device
US9013924B2 (en) Semiconductor device and operating method thereof
KR101049663B1 (ko) 페이지 버퍼 회로와 이를 구비한 불휘발성 메모리 소자 및 그 동작 방법
US8208308B2 (en) Method of programming nonvolatile memory device
KR101063571B1 (ko) 페이지 버퍼 회로 및 이를 구비한 불휘발성 메모리 소자와 그 동작 방법
KR20130070928A (ko) 반도체 메모리 장치 및 그의 동작 방법
KR100685532B1 (ko) 독출속도를 향상시키기 위한 버퍼 메모리를 갖는 불휘발성메모리 장치
KR20110078727A (ko) 불휘발성 메모리 소자의 동작 방법
KR100933838B1 (ko) 불휘발성 메모리 소자의 테스트 방법
KR100953055B1 (ko) 불휘발성 메모리 소자의 동작 방법
KR20130072669A (ko) 반도체 메모리 장치 및 그의 동작 방법
KR100965067B1 (ko) 불휘발성 메모리 소자의 동작 방법
KR20110078726A (ko) 불휘발성 메모리 소자 및 그 동작 방법
KR101201888B1 (ko) 반도체 장치의 프로그램 방법
KR100705222B1 (ko) 불휘발성 메모리 장치 및 그것의 소거 검증 방법
KR100769803B1 (ko) 면적이 감소된 비휘발성 메모리 장치의 페이지 버퍼 및그것을 이용하여 비트라인을 프리챠지시키는 방법
KR100904731B1 (ko) 멀티 레벨 셀 플래시 메모리소자의 페이지 버퍼 및프로그램 방법
KR20060102911A (ko) 비휘발성 메모리 소자의 시퀀셜 프로그램 검증 방법
KR100980375B1 (ko) 불휘발성 메모리 소자 및 그 동작 방법
KR101068495B1 (ko) 불휘발성 메모리 소자의 데이터 독출 방법
KR20120005828A (ko) 불휘발성 메모리 장치의 동작 방법
KR20120005844A (ko) 반도체 메모리 장치 및 그 프로그램 방법
KR20120069117A (ko) 반도체 메모리 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee