KR101000546B1 - 비휘발성 메모리 기록 동작에서의 지속적 검증 - Google Patents

비휘발성 메모리 기록 동작에서의 지속적 검증 Download PDF

Info

Publication number
KR101000546B1
KR101000546B1 KR1020087018467A KR20087018467A KR101000546B1 KR 101000546 B1 KR101000546 B1 KR 101000546B1 KR 1020087018467 A KR1020087018467 A KR 1020087018467A KR 20087018467 A KR20087018467 A KR 20087018467A KR 101000546 B1 KR101000546 B1 KR 101000546B1
Authority
KR
South Korea
Prior art keywords
programming
voltage
programmed
verify level
target state
Prior art date
Application number
KR1020087018467A
Other languages
English (en)
Other versions
KR20080089459A (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
Priority claimed from US11/322,011 external-priority patent/US7307887B2/en
Priority claimed from US11/322,001 external-priority patent/US7352629B2/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20080089459A publication Critical patent/KR20080089459A/ko
Application granted granted Critical
Publication of KR101000546B1 publication Critical patent/KR101000546B1/ko

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
    • 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/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3486Circuits or methods to prevent overprogramming of nonvolatile memory cells, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)

Abstract

비휘발성 메모리 셀 그룹을 프로그래밍 하는 동안 일시적 록아웃을 제공하여 상기 메모리 셀들을 보다 정확하게 프로그래밍하게 한다. 메모리 셀의 문턱 전압이 의도된 상태에 대한 레벨에 도달한 것을 성공적으로 검증한 후, 상기 문턱 전압이 상기 그룹의 다른 메모리 셀들의 프로그래밍을 완료하는데 필요한 프로그래밍 과정의 추가적인 반복 동안 상기 검증 레벨 아래로 감소시키는 것이 가능하다. 메모리 셀들은 이미 상기 타겟 문턱 전압에 도달한 것으로 검증된 후 상기 검증 레벨 아래로 떨어졌는지를 판단하기 위하여(예컨데, 각 반복 후에) 모니터링된다. 검증을 통과한 이후에 검증 실패한 셀들은 추가적으로 프로그래밍된다. 예를 들어, 소정 메모리 셀의 비트라인 전압을 적절히 높은 전압으로 설정하여 각각의 이후 프로그래밍 펄스에 의해 달성되는 프로그래밍의 속도를 늦추거나 그 양을 줄일 수 있다. 이러한 방식으로, 검증에서 벗어난 메모리 셀을 과도-프로그래밍하는 위험 없이 다시 노멀 프로그래밍 플로우에 있게 할 수 있다.
재검증, 과도-프로그래밍, 문턱전압, 검증 레벨

Description

비휘발성 메모리 기록 동작에서의 지속적 검증{CONTINUED VERIFICATION IN NON-VOLATILE MEMORY WRITE OPERATIONS}
본 발명은 일반적으로 비휘발성 메모리 장치들을 프로그래밍하기 위한 반도체 기술에 관한 것이다.
반도체 메모리 장치들은 다양한 전자 장치들에서 보다 대중적으로 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리는 셀룰라폰, 디지털 카메라, PDA(Personal Digital Assistants), 이동 컴퓨팅 장치, 비이동 컴퓨팅 장치 및 그 밖의 장치들에 사용된다. 가장 대중적인 비휘발성 반도체 메모리들에는 플래시 EEPROM(Electrical Erasable Programmable Read Only Memory)을 포함하는 EEPROM 및 EPROM(Electronically Programmable Read Only Memory)가 있다.
플래시 메모리 시스템의 일 예에는 NAND 구조가 이용되는데, 상기 NAND 구조는 직렬로 배열되며 두 개의 선택 게이트들 사이에 개재되는 다수의 트랜지스터들을 포함한다. 상기 직렬의 트랜지스터들 및 선택 게이트들을 통칭하여 NAND 스트링이라고 한다. 도 1은 하나의 NAND 스트링을 도시한 정면도(top view)이고, 도 2는 그 NAND 스트링의 등가 회로이다. 도 1 및 2 에 도시된 NAND 스트링은 4개의 직렬 트랜지스터들(100, 102, 104, 106)을 포함하며, 상기 트랜지스터들(100, 102, 104, 106)은 제 1 선택 게이트(120)과 제 2 선택 게이트(122) 사이에 개재된다. 선택 게이트(120)는 상기 NAND 스트링을 비트 라인(bit line)(126)에 연결시킨다. 선택 게이트(122)는 상기 NAND 스트링을 소스 라인(source line)(128)에 연결시킨다. 선택 게이트(120)는 선택라인(SGD)을 통해 적당한 전압들을 제어 게이트(120CG)에 인가하여 제어된다. 선택 게이트(122)는 선택라인(SGS)을 통해 적당한 전압들을 제어 게이트(122CG)에 인가하여 제어된다. 각각의 트랜지스터(100, 102, 104, 106)는 메모리 셀의 게이트 소자들을 형성하는 제어 게이트 및 플로팅 게이트를 가지고 있다. 예를 들어, 트랜지스터(100)는 제어 게이트(100CG) 및 플로팅 게이트(100FG)를 구비하며, 트랜지스터(102)는 제어 게이트(102CG) 및 플로팅 게이트(102FG)를 포함한다. 트랜지스터(104)는 제어 게이트(104CG) 및 플로팅 게이트(104FG)를 포함하며, 트랜지스터(106)는 제어 게이트(106CG) 및 플로팅 게이트(106FG)를 포함한다. 제어 게이트(100CG)는 워드라인(WL3)에, 제어 게이트(102CG)는 워드라인(WL2)에, 제어 게이트(104CG)는 워드라인(WL1)에, 그리고 제어 게이트(106CG)는 워드라인(WL0)에 각각 연결된다.
도 3은 상기 설명한 NAND 스트링의 단면도를 제공한다. 도 3에 도시된 바와 같이, NAND 스트링의 트랜지스터들은 p-웰 영역(140)에 형성된다. 각 트랜지스터는 제어 게이트(100CG, 102CG, 104CG, 106CG) 및 플로팅 게이트(100FG, 102FG, 104FG, 106FG)로 구성된 적층 게이트 구조를 포함한다. 상기 플로팅 게이트들은, P-웰의 표면 위의 산화물 필름의 상부에 형성된다. 상기 제어 게이트는 상기 플로팅 게이트 상부에 있다. 상기 제어 게이트 및 플로팅 게이트는 인터 폴리실리콘 유전체 층(inter-polysilicon dielectric layer)에 의해 분리된다. 상기 메모리 셀들(100, 102, 104, 106)의 제어 게이트들은 워드 라인들을 형성한다. N+ 확산층들(diffused layer)(130, 132, 134, 136, 138)은 이웃 셀들 간에 공유되어, 상기 셀들이 서로 직렬로 연결되어 NAND 스트링을 형성한다. 이러한 N+ 확산층들은 각 셀들의 소스 및 드레인을 형성한다. 예를 들어, N+ 확산층(130)은 트랜지스터(122)의 드레인 및 트랜지스터(106)의 소스 역할을 하고, N+ 확산층(132)은 트랜지스터(106)의 드레인 및 트랜지스터(104)의 소스 역할을 하며, N+ 확산층(134)은 트랜지스터(104)의 드레인 및 트랜지스터(102)의 소스 역할을 한다. 또한, N+ 확산층(136)은 트랜지스터(102)의 드레인 및 트랜지스터(100)의 소스 역할을 하며, N+ 확산층(138)은 트랜지스터(100)의 드레인 및 트랜지스터(120)의 소스 역할을 한다. N+ 확산층(126)은 상기 NAND 스트링을 위한 비트 라인에 연결되고, N+ 확산층(128)은 다수의 NAND 스트링들을 위한 공통 소스 라인에 연결된다.
여기서, 도 1 내지 3에는 NAND 스트링 내에 4 개의 메모리 셀들이 도시되어 있지만, 4 개의 트랜지스터를 이용하는 것은 단지 일 예로 제공된 것이다. NAND 스트링은 4 개 이하의 메모리 셀 혹은 4 개 이상의 메모리 셀을 포함할 수 있다. 예를 들면, 일부 NAND 스트링들은 8 개의 메모리 셀, 16 개의 메모리 셀, 32 개의 메모리 셀 등을 포함할 것이다. 하기의 논의에서는 NAND 스트링 내의 메모리 셀의 개수가 특정 개수에 한정되지는 않는다. NAND 구조를 이용하는 플래시 메모리 시스템을 위한 일반적인 구조에는 복수의 NAND 스트링들이 포함될 것이다. 예를 들면, 도 4는 보다 많은 NAND 스트링들을 포함하는 메모리 어레이의 3 개의 NAND 스트링 들(202, 204, 206)을 도시하고 있다. 도 4의 NAND 스트링 각각은 두 개의 선택 트랜지스터 혹은 선택 게이트와 4 개의 메모리 셀들로 구성된다. 예를 들면, NAND 스트링(202)는 선택 트랜지스터(220, 230) 및 메모리 셀(222, 224, 226, 228)을 포함한다. NAND 스트링(204)은 선택 트랜지스터(240, 250) 및 메모리 셀(242, 244, 246, 248)을 포함한다. 각 스트링은 하나의 선택 게이트(예를 들어, 선택 게이트(230) 및 선택 게이트(250))에 의해 소스라인에 연결된다. 선택 라인(SGS)은 상기 소스측 선택 게이트들을 제어하는데 사용된다. 다양한 NAND 스트링들은 선택 라인(SGD)이 제어하는 선택 게이트(220, 240, 등)에 의해 각각의 비트 라인에 연결된다. 다른 실시예들에서는, 상기 선택 라인들이 반드시 공통적으로 존재할 필요는 없다. 워드라인(WL3)은 메모리 셀(222) 및 메모리 셀(242)에 대한 제어 게이트들에 연결되고, 워드라인(WL2)은 메모리 셀(224) 및 메모리 셀(244)에 대한 제어 게이트들에 연결되고, 워드라인(WL1)은 메모리 셀(226) 및 메모리 셀(246)에 대한 제어 게이트들에 연결되며, 워드라인(WL0)은 메모리 셀(228) 및 메모리 셀(248)에 대한 제어 게이트들에 연결된다. 이상과 같이, 비트 라인 및 각각의 NAND 스트링은 메모리 셀 어레이의 컬럼(column)을 구성한다. 상기 워드 라인들(WL3, WL2, WL1, WL0)은 메모리 셀 어레이의 다수의 로우(rows)를 구성한다. 각 워드 라인은 상기 로우(Row)에서 각 메모리 셀의 제어 게이트들을 연결시킨다. 예를 들어, 워드라인(WL2)은 상기 메모리 셀들(224, 244, 252)에 대한 제어 게이트들에 연결된다.
각 메모리 셀에는 (아날로그 혹은 디지털) 데이터가 저장될 수 있다. 1 비트의 디지털 데이터를 저장할 경우, 상기 메모리 셀의 가능한 문턱 전압의 범위는 두 가지 범위로 나누어질 수 있으며, 논리 데이터 "1"과 "0"이 할당된다. NAND 타입 플래시 메모리의 일 예에서, 상기 문턱 전압은 메모리 셀이 소거된 후에 음(negative)이 되며 논리 "1"로 정의된다. 상기 문턱 전압은 프로그램 동작 후에 양(positive)이 되며 논리 "0"으로 정의된다. 상기 문턱 전압은 음(negative)이며 상기 제어 게이트에 0 볼트를 인가함으로써 판독을 시도하는 경우, 상기 메모리 셀이 턴온되어 논리 "1"이 저장되어 있음을 알릴 것이다. 상기 문턱 전압은 양(positive)이며 상기 제어 게이트에 0 볼트를 인가하여 판독 동작을 시도하는 경우, 상기 메모리 셀은 턴온되지 않을 것인바, 이는 논리 "0"이 저장되어 있다는 것을 나타낸다. 메모리 셀은 또한 복수 레벨의 정보들, 예를 들어, 복수 비트의 디지털 데이터를 저장할 수 있다. 복수 레벨의 데이터들을 저장할 경우, 상기 가능한 문턱 전압들의 범위는 상기 데이터 레벨의 개수만큼 나눠진다. 예를 들어, 4 레벨의 정보들이 저장된다면, 4 개의 문턱 전압 범위들이 존재하며, 각각에는 "11", "10", "01" "00"의 데이터 값들이 할당될 것이다. NAND 타입 메모리의 일 예로, 소거 동작(erase opration) 후의 문턱 전압은 음이 되고 "11"로 정의된다. 3 개의 서로 다른 양의 문턱 전압들은 "10","01" 및 "00" 상태들에 사용된다.
NAND 타입 플래시 메모리 및 이들의 동작에 대한 관련 예들은 U.S. 특허번호 5,570,315; U.S 특허번호 5,774,397; U.S 특허번호 6,046,935; U.S 특허번호 6,456,528; 및 U.S 특허 출원번호 09/893,277(공개번호 US2003/0002348)에 개시되어 있으며, 이들 특허/특허출원은 본 명세서에 참고로 인용된다.
플래시 메모리 셀을 프로그래밍할 경우, 프로그램 전압이 (선택된 워드라인을 통해) 제어 게이트에 인가되고 비트라인은 접지된다. 상기 p-웰의 전자들(electrons)은 플로팅 게이트에 주입된다. 상기 플로팅 게이트에 전자들이 축적되면, 상기 플로팅 게이트는 음으로 충전되어 셀의 문턱 전압이 상승한다. 메모리 셀의 문턱 전압이 자신의 의도된 상태(intended state)에 대한 타겟 검증 전압에 도달할 때, 상기 셀은 적절한 양의 음전하가 자신의 플로팅 게이트에 위치하므로 추가적인 프로그래밍(further programming)으로부터 록-아웃(locked-out)된다. 이러한 플로팅 게이트 전하 및 셀의 문턱 전압은 저장된 데이터에 해당하는 특정 상태를 나타낼 수 있다.
다른 타입의 메모리 셀은 비휘발성 방식으로 전하를 저장하기 위하여 도전성 플로팅 게이트(conductive floating gate) 대신에 비도전성 유전체 물질(non-conductive dielectric material)을 사용한다. 이러한 셀은 Chan 등의 논문인 "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device"(IEEE Electron Device Letters, Vol.EDL-8, NO. 3, 1987년 3월, 페이지 93-95)에 기재되어 있다. 실리콘 산화물(silicon oxide), 실리콘 질화물(silicon nitride) 및 실리콘 산화물("ONO")로 구성된 3층 유전체는 도전성 제어 게이트와 메모리 셀 채널 상부의 반도체 기판의 표면 사이에 개재된다. 상기 셀은, 셀 채널로부터의 전자들을 질화물(nitride)에 주입함으로써 프로그래밍되는바, 이들 전자들은 제한된 영역내에 포획(trap) 및 저장된다. 이렇게 저장된 전하는 상기 셀의 채널 부분의 문턱 전압을 검출가능한 방식으로 변경한다. 상기 셀은 핫 정공(hot holes)을 상기 질화물에 주입함으로써 소거된다. 또한, Nozaki 등의 "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application (IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, 1991년 4월, 페이지 497-501)"를 보면, 스플릿 게이트 구성을 갖는 유사한 셀이 기술되어 있는데, 상기 스플릿 게이트 구성에서는 도핑된 폴리실리콘 게이트(doped polysilicon gate)가 상기 메모리 셀 채널 부분까지 확장되어 별개의 선택 트랜지스터(select transistor)를 형성한다. 이 두 논문들은 여기에 참고로 인용된다. 또한, William D. Brown과 Joe E. Brewer에 의해서 1998년 IEEE Press에 개재된 "Nonvolatile Semiconductor Memory Technology"의 섹션 1.2 에서 언급된 프로그래밍 기술들은 본 발명에 대한 참고로서 본 명세서에 인용되며, 또한 상기 기술들은 유전체 전하 트래핑 장치들에도 적용가능한 것으로 상기 섹션 1.2에 언급되어 있다.
각 셀에 두 개의 비트를 저장하는 다른 접근방식은 Eitan 등의 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell" (IEEE Electron Device Letters, vol.21, no.11, 2000년 11월, 페이지 543-545)에 의해 설명되었다. ONO 유전체층은 소스 및 드레인 확산들 간의 채널을 가로질러 연장된다. 하나의 데이터 비트를 위한 전하는 상기 드레인에 인접한 유전체층에 국부화(localizing)되고 다른 데이터 비트를 위한 전하는 상기 소스에 인접한 유전체층에 국부화된다. 다중 상태 데이터 저장은, 상기 유전체 내에 공간적으로 분리된 전하 저장 영역들의 이진 상태(binary state)들을 개별적으로 판독함으로써 이루어질 수 있다.
메모리 용량을 계속해서 확장시키기 위해서, 디바이스 치수(device dimensions) 및 인접한 문턱 전압 분포들 사이의 마진(margin)이 지속적으로 감소함에 따라, 프로그래밍 및 프로그램된 데이터의 재판독(reading back)시 야기되는 에러 및 정확성 부족이 더욱 문제가 되고 있다. 예를 들어, 프로그래밍 완료 후 메모리 셀에 대한 전하의 약간의 변동(shift)은, 상태들 사이의 마진이 최소일 때 내부에 저장되어 있는 데이터의 잘못된 판독(erroneous readings)을 야기할 수 있다. 장치들의 치수가 계속적으로 감소함에 따라, 프로그래밍 후 전하가 변동되는 경우가 증가될 수 있다. 특정 메모리 셀의 플로팅 게이트에 저장되어 있는 전하의 의도치 않은 변경으로 인해, 잘못된 판독을 야기하거나 상기 메모리 시스템 내에 ECC(Error Correction Codes)를 필요로 할 수 있다.
본 명세서에 기재되는 기술은, 관심있는 메모리 셀에서 보다 신뢰성 있는 기록 및 원하는 전하 레벨의 보다 나은 유지(maintenance)를 제공하는 방식으로 비휘발성 메모리 장치들을 프로그래밍하는 기술에 관한 것이다. 일 실시예에서, 프로그램 검증은 지속적인 방식으로 구현되어 이전에 검증된 메모리 셀들을 재검증하고 상기 셀들이 자신들의 타겟 상태(target state)에 해당하는 적절한 프로그램 검증 레벨 아래로 떨어졌는지를 판단한다. 만일 상기 셀들이 상기 레벨 아래로 떨어졌다면, 상기 셀들에 대한 추가적인 프로그래밍(further programming)이 가능해질 수 있다.
메모리 셀들을 보다 정확하게 프로그래밍하기 위하여, 비휘발성 메모리 셀 그룹을 프로그래밍하는 동안에 일시적 록-아웃(temporary lock-out)이 제공된다. 메모리 셀의 문턱 전압이 자신의 의도된 상태에 대한 레벨에 도달했다는 것을 성공적으로 검증한 후, 그룹의 다른 메모리 셀들에 대한 프로그래밍을 완료하는데 필요한 프로그래밍 과정을 추가적으로 반복하는 동안에 상기 문턱 전압을 상기 검증 레벨 아래로 감소시키는 것이 가능해진다. 메모리 셀들은 상기 타겟 문턱 전압에 도달하였다는 것을 미리 검증한 후 상기 검증 레벨 아래로 떨어졌는지를 판단하기 위하여 (예를 들어, 각 반복 동작 후에) 모니터링된다. 검증을 거친 후 검증에 실패한 셀들에 대해 추가적인 프로그래밍(further programming)이 수행될 수 있다. 예를 들면, 관심 메모리 셀의 비트라인 전압이 각각의 이후 프로그래밍 펄스에 의해 달성되는 프로그래밍을 늦추거나 그 프로그래밍 양을 감소시키기 위하여 적당히 높은 전압으로 설정될 수 있다. 이러한 방식으로, 검증 범위 밖에 있는 메모리 셀을 과도-프로그래밍(over-programming)의 위험 없이 정상 프로그래밍 플로우(normal programming flow)내에 다시 둘 수 있다.
일 실시예에서, 비휘발성 메모리의 프로그래밍 방법은 일 세트의 비휘발성 저장 소자들을 프로그래밍하는 단계를 포함한다. 상기 세트의 각 비휘발성 저장 소자는 하나 이상의 타겟 상태들 중 하나로 프로그래밍되도록 의도된다. 프로그래밍될 것으로 의도되는 타겟 상태에 해당하는 각각의 검증 레벨에 도달한 각각의 비휘발성 저장 소자에 대해서는 프로그래밍이 금지된다. 프로그래밍될 것으로 의도된 타겟 상태에 해당하는 각각의 검증 레벨에 도달한 후 상기 프로그래밍될 것으로 의도된 타겟 상태에 해당하는 각각의 검증 레벨 아래로 떨어진 각각의 비휘발성 저장 소자에 대해서, 제 1 속도의 프로그래밍(first rate of programming)이 인에이블된다. 프로그래밍될 것으로 의도된 타겟 상태에 해당하는 각각의 검증 레벨에 아직 도달하지 못한 각각의 비휘발성 저장 소자들에 대하여, 제 2 속도의 프로그래밍이 인에이블된다.
일 실시예에서, 비휘발성 메모리 프로그래밍 방법은 일 세트의 비휘발성 저장 소자들을 프로그래밍하는 단계를 포함한다. 각 비휘발성 저장 소자는 하나 이상의 타겟 상태들 중 하나로 프로그래밍될 것이다. 상기 방법은, 프로그래밍될 것으로 의도된 타겟 상태에 해당하는 각각의 검증 레벨에 도달한 각각의 비휘발성 저장 소자의 비트라인에 제 1 전압을 인가하는 단계와; 상기 프로그래밍될 것으로 의도된 타겟 상태에 해당하는 각각의 검증 레벨에 도달한 후 더 이상 상기 검증 레벨에 있지 않거나 혹은 상기 검증 레벨보다 높지 않을 것으로 판단되는 각각의 비휘발성 저장 소자의 비트라인에 제 2 전압을 인가하는 단계와; 상기 프로그래밍될 것으로 의도된 타겟 상태에 해당하는 각각의 검증 레벨에 아직 도달하지 못한 각각의 비휘발성 저장 소자의 비트라인에 제 3 전압을 인가하는 단계를 포함한다.
본 발명의 이 밖의 특징들, 측면 및 목적들은 명세서, 도면 및 특허청구범위를 검토함으로써 얻을 수 있다.
도 1은 NAND 스트링의 정면도이다.
도 2는 도 1에 도시된 NAND 스트링의 등가회로도이다.
도 3은 도 1의 NAND 스트링의 단면도이다.
도 4는 3 개의 NAND 스트링을 도시한 회로도이다.
도 5는 본 발명의 다양한 측면들이 구현될 수 있는 비휘발성 메모리 시스템의 일 실시예를 도시한 블록도이다.
도 6은 메모리 어레이의 구성을 예시적으로 도시하고 있다.
도 7은 실시예들에 따른 선택된 워드라인에 인가될 수 있는 프로그램/검증 전압 신호를 예시적으로 도시하고 있다.
도 8은 컬럼제어회로의 일부를 도시하고 있다.
도 9는 다중 상태 비휘발성 메모리 셀들의 세트에 대한 문턱전압 분포 및 상기 세트의 셀들을 프로그래밍하는 프로그래밍 과정을 예시적으로 도시하고 있다.
도 10은 다중 상태 비휘발성 메모리 셀들의 세트에 대한 문턱전압 분포 및 상기 세트의 셀들을 프로그래밍하는 프로그래밍 과정을 예시적으로 도시하고 있다.
도 11A 내지 11C는 비정밀/정밀 프로그래밍을 이용하는 일 실시예에 따른 프로그래밍 과정을 도시하고 있다.
도 12A 내지 12C는 비정밀/정밀 프로그래밍을 이용하는 일 실시예에 따른 프로그래밍 과정을 도시하고 있다.
도 13은 일 실시예에 따른 일반화된 프로그래밍 방법을 도시한 흐름도이다.
도 14는 일 실시예에 따른 풀 시퀀스(full-sequence) 프로그래밍 방법을 도시한 흐름도이다.
도 15는 상부/하부 페이지 프로그래밍을 이용하는 일 실시예에 따른 하부 페이지 프로그래밍 방법을 도시한 흐름도이다.
도 16은 상부/하부 페이지 프로그래밍을 이용하는 일 실시예에 따른 상부 페 이지 프로그래밍 방법을 도시한 흐름도이다.
도 5는 본 발명의 하나 이상의 실시예들을 구현하는데 이용될 수 있는 플래시 메모리 시스템의 일 실시예를 도시한 블록도이다. 다른 시스템 및 구현예들도 이용될 수 있다. 메모리 셀 어레이(302)는 컬럼 제어 회로(304), 로우 제어 회로(306), C-소스 제어 회로(310) 및 p-웰 제어 회로(308)에 의해 제어된다. 컬럼 제어 회로(304)는 메모리 셀 어레이(302)의 비트 라인들과 연결되어 메모리 셀들에 저장된 데이터를 판독하고, 프로그램 동작 중 상기 메모리 셀들의 상태를 판단하며, 프로그래밍 및 소거를 촉진하거나 억제하기 위하여 상기 비트 라인들의 전위 레벨들을 제어한다. 로우 제어 회로(306)는 워드 라인들에 연결되어 상기 워드 라인들 중 하나를 선택하고, 판독 전압을 인가하며, 상기 컬럼 제어 회로(304)가 제어하는 비트 라인 전위 레벨들과 결합된 프로그램 전압을 인가하며, 소거 전압을 인가한다. C-소스 제어 회로(310)는 상기 메모리 셀들에 연결된 공통 소스라인(도 6에 "소스"라 칭함)을 제어한다. P-웰 제어회로(308)는 p-웰 전압을 제어한다.
상기 메모리 셀들에 저장된 데이터는 상기 컬럼 제어회로(304)에 의해 판독되어 데이터 입출력 버퍼(312)를 통해 외부의 I/O 라인들로 출력된다. 상기 메모리 셀들에 저장될 프로그램 데이터는 상기 외부 I/O 라인들을 통해 상기 데이터 입출력 버퍼(312)로 입력되어, 상기 컬럼 제어회로(304)로 전달된다. 상기 외부 I/O 라인들은 제어부(318)에 연결된다.
상기 플래시 메모리 장치를 제어하기 위한 명령 데이터는 제어부(318)에 입 력된다. 상기 명령 데이터는 요청되는 동작에 대하여 상기 플래시 메모리에 알려준다. 상기 입력된 명령은 제어회로소자(315)의 일부인 상태 머신(316)으로 전달된다. 상태 머신(316)은 컬럼 제어회로(304), 로우 제어회로(306), C-소스 제어회로(310), p-웰 제어회로(308) 및 데이터 입출력 버퍼(312)를 제어한다. 또한, 상태 머신(316)은 READY/BUSY 혹은 PASS/FAIL과 같은 플래시 메모리의 상태 데이터를 출력할 수 있다.
제어부(318)는 개인 컴퓨터, 디지털 카메라 혹은 PDA 등과 같은 호스트 시스템과 연결되거나 연결될 수 있으며, 명령들을 개시하는 호스트와 통신하여 상기 메모리 셀 어레이(302)에 데이터를 저장하거나 그로부터 데이터를 판독해내며 그러한 데이터를 제공 혹은 수신한다. 제어부(318)는 상기와 같은 명령들을 제어회로소자 (315)의 일부인 명령 회로들(314)에 의해 해석 혹은 실행될 수 있는 명령 신호들로 변환한다. 명령 회로들(314)은 상태 머신(316)과 통신한다. 일반적으로, 제어부(318)는 사용자 데이터를 상기 메모리 셀 어레이에 기록하거나 그로부터 판독하기 위한 버퍼 메모리를 포함한다.
하나의 예시적인 메모리 시스템은 상기 제어부(318)를 포함한 하나의 집적회로 및 하나 이상의 집적 회로 칩들을 포함하며, 상기 각각의 하나 이상의 집적회로 칩들은 메모리 어레이 및 관련된 제어, 입출력 및 상태 머신 회로들을 포함한다. 상기 시스템의 메모리 어레이들 및 제어부 회로들을 하나 이상의 집적회로 칩들로 통합시키는 경향이 있다. 상기 메모리 시스템은 상기 호스트 시스템의 일부로 구현될 수 있거나 상기 호스트 시스템에 탈착 가능하게 삽입되는 메모리 카드 (혹은 다 른 패키지)에 포함될 수 있다. 이러한 카드는 (예컨대, 제어부를 포함한) 전체 메모리 시스템을 포함하거나 혹은 (제어부나 제어 기능이 상기 호스트에서 구현되고 있는) 관련 주변 회로들을 갖는 메모리 어레이(들)만을 포함할 수 있다. 따라서, 상기 제어부는 상기 호스트 내에 구현되거나 착탈 가능한 메모리 시스템 내에 포함될 수 있다.
도 6을 참조하면, 메모리 셀 어레이(302)의 예시적인 구조가 도시되어 있다. 일 예로, 1,024개의 블록들로 나뉘어진 NAND 플래시 EEPROM이 설명되어 있다. 각 블록에 저장되는 데이터는 동시에 소거될 수 있다. 일 실시예에서, 상기 블록은 동시에 소거되는 셀들의 최소 단위이다. 상기 예시에서, 각 블록에는 8,512개의 컬럼이 존재한다. 일반적으로 각 블록은 프로그래밍의 단위일 수 있는 다수의 페이지들로 나누어진다. 프로그래밍을 위한 데이터의 다른 단위들도 가능하다고 여겨진다. 일 실시예에서, 개별적인 페이지들은 세그먼트들로 나눌 수 있으며, 이러한 세그먼트들은 기본적인 프로그래밍 동작으로써 한 번에 기록되는 가장 적은 개수의 셀들을 포함할 수 있다. 일반적으로 하나 이상의 데이터 페이지들이 일 로우(row)의 메모리 셀들에 저장된다.
도 6에 도시된 각 블록에는, 짝수 컬럼(column)과 홀수 컬럼으로 구분되는 8,512 컬럼이 존재한다. 비트 라인은 또한 짝수 비트라인(BLe)과 홀수 비트라인(BLo)으로 구분된다. 홀수/짝수 비트라인 구조에서, 공통 워드 라인을 따라 홀수 비트 라인들에 연결되는 메모리 셀들은 한 번에 프로그래밍되는 반면, 공통 워드 라인을 따라 짝수 비트 라인들에 연결되는 메모리 셀들은 다음 번에(at another time) 프로그래밍된다. 도 5는 NAND 스트링을 형성하는 직렬로 연결된 4 개의 메모리 셀들을 도시하고 있다. 4 개의 셀들이 각 NAND 스트링에 포함되는 것으로 도시되어 있지만, 4 개 이하 또는 이상의 메모리 셀들이 이용될 수도 있다. 상기 NAND 스트링의 일 단자(one terminal)는 (선택 게이트 드레인 라인(SGD)에 연결된) 제 1 선택 트랜지스터 혹은 게이트를 통해 해당 비트 라인에 연결되며, 다른 단자(another terminal)는 (선택 게이트 소스 라인(SGS)에 연결된) 제 2 선택 트랜지스터를 통해 c-소스에 연결된다.
다른 실시예들에서, 상기 비트 라인들은 홀수 및 짝수 비트 라인들로 구분되지 않는다. 이러한 구조들을 통상적으로 ABL 구조(all bit line architecture)라고 한다. 전체 비트 라인 구조에서, 한 블록의 모든 비트 라인들은 판독 및 프로그램 동작 중에 동시에 선택된다. 공통 워드 라인을 따라 소정 비트 라인에 연결된 메모리 셀들은 동시에 프로그래밍된다. 여기에 인용되는 2005년 4월 5일에 출원된 미국 특허 출원 No. 11/099,133인 "Compensating for coupling during read operations of non-volatile memory"에는 ABL(all bit line) 프로그래밍 구조와 홀수/짝수 비트라인 프로그래밍 구조에 대한 풀 시퀀스 프로그래밍 및 (이하 설명되는) 이중패스(two-pass) 프로그래밍에 대한 예시들이 기재되어 있다.
일 실시예의 판독 및 프로그래밍 동작 중에, 4,256개의 메모리 셀들이 동시에 선택된다. 상기 선택된 메모리 셀들은 동일한 워드라인(예를 들어, WL2-i)과 동일한 종류의 비트라인(예컨대, 짝수 비트라인)을 갖는다. 따라서, 532 바이트의 데이터를 동시에 판독 혹은 프로그래밍할 수 있다. 이러한 동시에 판독 혹은 프로그래밍되는 532 바이트의 데이터는 논리 페이지를 형성한다. 따라서, 이 예시에서는, 하나의 블록이 적어도 8 개의 페이지를 저장할 수 있다. 각 메모리 셀에 2 비트의 데이터(예컨데, 멀티 레벨 셀)가 저장될 경우, 하나의 블록은 16 개의 페이지를 저장한다. 다른 크기의 블록들 및 페이지들 또한 본 발명과 함께 이용될 수 있다. 또한, 도 5 및 6의 구조를 제외한 구조들도 본 발명을 구현하는데 사용될 수 있다.
판독 및 검증 동작시, 선택된 블록의 선택 게이트들은 하나 이상의 선택 전압들로 상승되고 상기 선택된 블록의 선택되지 않은 워드 라인들(예컨데, WL0, WL1 and WL3)은 판독 패스 전압(read pass voltge)(예컨데, 4.5 볼트)로 상승되어 상기 트랜지스터들이 패스 게이트로 동작하게 만든다. 상기 선택된 블록의 선택된 워드 라인(예컨데, WL2)은 기준 전압에 연결되는데, 이 기준 전압은 상기 소정 메모리 셀(concerned memory cell)의 문턱 전압이 자신의 레벨보다 높은지 혹은 낮은지를 판단하기 위하여 각 판독 및 검증 동작에 대하여 정해진 레벨을 갖는다. 예를 들면, 1 비트 메모리 셀의 판독 동작시, 상기 선택된 워드 라인(WL2)이 접지되어, 상기 문턱 전압이 0 V보다 높은지를 검출하게 된다. 1 비트 메모리 셀의 검증 동작시, 상기 선택된 워드 라인(WL2)은 예를 들어 0.8 V에 연결되어, 프로그래밍이 진행됨에 따라 상기 문턱 전압이 0.8 V에 도달하였는지를 검증하게 된다. 상기 소스 및 p-웰은 판단 및 검증 동작 중에 0 볼트에 있다. 선택된 비트 라인(BLe)은 예를 들어 0.7 V의 레벨로 프리차징된다. 상기 문턱 전압이 판독 혹은 검증 레벨보다 높은 경우, 상기 관련 비도전성 메모리 셀(non-conductive memory cell)로 인해, 상기 소정 비트 라인(BL3)의 전위 레벨은 하이(high) 레벨을 유지한다. 반면에, 문턱 전압이 상기 판독 혹은 검증 레벨보다 낮을 경우, 상기 도전성 메모리 셀(conductive memory cell)로 인해 상기 소정 비트 라인(BLe)의 전위 레벨은 예를 들어 0.5 V 이하의 로우(low) 레벨로 낮아지게 된다. 이러한 메모리 셀의 상태는 상기 비트 라인에 연결되어 결과적으로 얻은 비트 라인 전압을 감지하는 감지 증폭기에 의해 검출된다. 상기 메모리 셀이 프로그래밍되는지 혹은 소거되는지에 대한 차이점은 순(net) 음의 전하가 플로팅 게이트에 저장되어 있는지 여부에 따라 다르다. 예를 들어, 음의 전하가 상기 플로팅 게이트에 저장되어 있는 경우, 상기 문턱 전압이 더 높아져서 트랜지스터가 증가형 동작 모드(enhancement mode of operation)에 있을 수 있다.
일 예에서 메모리 셀의 프로그래밍시, 드레인 및 P-웰은 0 볼트를 수신하는 반면 제어 게이트는 크기(magnitude)가 증가하는 일련의 프로그래밍 펄스를 수신한다. 일 실시예에서, 상기 일련의 펄스의 크기는 12 볼트에서 24 볼트 사이의 범위를 갖는다. 다른 실시예에서, 상기 일련의 펄스의 범위는 다를 수 있으며, 예를 들어, 12 볼트보다 더 높거나 낮은 레벨을 가질 수 있다. 메모리 셀들의 프로그래밍 시, 검증 동작들은 상기 프로그래밍 펄스들 사이의 주기에 수행된다. 즉, 병렬로 프로그래밍되고 있는 셀 그룹의 각 셀의 프로그래밍 레벨은 각 프로그래밍 펄스 사이에서 판독되어 그 레벨이 자신이 프로그래밍되고 있는 검증 레벨에 도달하였는지 혹은 초과하였는지를 판단한다. 프로그래밍을 검증하기 위한 하나의 수단으로는 특정 비교 포인트에서 도전성 테스트를 수행하는 것이다. 충분히 프로그래밍된 것으로 검증되는 셀들은, 모든 후속 프로그래밍 펄스들에 대하여 비트라인 전압을 0 볼 트에서 Vdd(예컨데, 2.5 볼트)로 상승시켜 상기 셀들에 대한 프로그래밍 과정을 종료시킴으로써, 예를 들어, NAND 셀 내에 록아웃된다(locked out). 몇 가지 경우에, 상기 펄스의 개수는 제한될 것이며(예를 들어, 20개의 펄스들), 소정 메모리 셀이 마지막 펄스까지 충분히 프로그래밍되지 않을 경우, 에러가 예상된다. 일부 구현예들에서는, 프로그래밍 이전에 메모리 셀들을 (블록들 혹은 다른 유닛들에서) 소거한다.
도 7은 일 실시예에 따른 프로그램 전압 신호를 도시하고 있다. 상기 신호는 크기가 커지는 일 세트의 펄스를 갖는다. 상기 펄스의 크기는 각 펄스마다 기결정된 스텝 크기(step size)까지 증가한다. 다수 비트의 데이터를 저장하는 메모리 셀들을 포함하는 일 실시예에서, 스텝 사이즈를 0.2 볼트(혹은 0.4 볼트)로 예시하고 있다. 각 프로그램 펄스들 사이에는 검증 펄스들이 있다. 도 6의 신호는 4 개의 상태 메모리 셀을 가정하므로, 3 개의 검증 펄스들을 포함한다. 예를 들면, 프로그래밍 펄스들(330, 332) 사이에 3 개의 연속적인 검증 펄스들이 있다. 제 1 검증 펄스(334)는 0 볼트의 검증 전압 레벨에 표시되어 있다. 제 2 검증 펄스(336)는 상기 제 1 검증 펄스 다음에서 제 2 검증 전압 레벨에 있다. 제 3 검증 펄스(338)는 상기 제 2 검증 펄스(336) 다음에서 제 3 검증 전압 레벨에 있다. 8 개의 상태로 데이터를 저장하는 다중상태 메모리 셀은 7 개의 비교 포인트들에서 검증 동작들을 수행하여야 한다. 그러므로, 7 개의 검증 펄스들이 차례로 인가되어 두 개의 연속하는 프로그래밍 펄스들 사이의 7 개의 검증 펄스들에서 7 번의 검증 동작들이 수행된다. 상기 7 번의 검증 동작들을 바탕으로, 상기 시스템은 상기 메모리 셀들의 상태를 판단한다. 검증에 대한 시간적 부담을 줄이기 위한 하나의 수단으로 보다 효율적인 검증 과정을 이용하는데, 이에 대한 예시로는 여기에 참조로 인용되는 2002년 12월 5일에 출원된 미국 특허출원 No. 10/314,055인 "Smart Verify for Multi-State Memories"와, 2005년 10월 27일에 출원된 미국 특허출원 번호 ------[대리인 문서번호(attorney docket No.) SAND-1051US0]인 "Method for Programming of Multi-State Non-Volatile Memory Using Smart Verify"와, 2005년 10월 27일에 출원된 미국 특허출원 No.11/259,799인 "Apparatus for Programming of Multi-State Non-Volatile Memory Using Smart Verify"에 기재되어 있다.
상기 기술한 판독 및 검증 동작들은 본 분야에 알려진 기술들에 따라 수행된다. 그러므로, 설명되는 많은 상세 내용들은 본 분야에 숙련된 사람에 의해 변경될 수 있다.
도 8은 도 5의 컬럼 제어 회로(304) 일부분을 도시한 개략적인 블록도이다. 컬럼 제어 회로(304)에서 데이터 저장 회로(340)는 2 개의 비트 라인마다, 즉 짝수 번째 비트라인(BLe) 및 홀수 번째 비트 라인(BLo) 마다 배열된다. 상기 컬럼 제어 회로(304)에서, 또한 메모리 셀들에 데이터를 기록하고 상기 메모리 셀들로부터 데이터를 판독하기 위하여, 데이터 저장 회로(340)를 위한 감지 증폭기가 배열된다.
n-채널 MOS 트랜지스터(342)는 컬럼 선택을 위하여 데이터 저장 회로(340)와 짝수 번째 비트 라인(BLe) 사이에 연결된다. 다른 n-채널 MOS 트랜지스터(344)는 컬럼 선택을 위하여 데이터 저장 회로(340)와 홀수 번째 비트 라인(BLo) 사이에 연결된다. 상기 짝수 번째 비트 라인(BLe) 혹은 상기 홀수 번째 비트 라인(BLo)을 선 택하여 데이터 기록 동작 혹은 데이터 판독 동작을 제어한다. 보다 명확히 말하면, evenBL 신호가 논리 레벨 1에 있고 oddBL 신호가 논리 레벨 0에 있을 때, MOS 트랜지스터(342)가 전기적으로 도전성을 띄게 되어 상기 짝수 번째 비트 라인(BLe)을 선택한 후 상기 데이터 저장 회로(340)와 연결된다. 반면에, evenBL 신호가 논리 레벨 0에 있고 oddBL 신호가 논리 레벨 1에 있을 때, MOS 트랜지스터(344)는 전기적으로 도전성을 띄게 되어 상기 홀수 번째 비트 라인(BLo)을 선택한 후 데이터 저장 회로(340)에 연결된다. 여기서, 상기 evenBL 신호는 상기 짝수 번째 비트 라인들을 통해 연결된 컬럼 선택을 위한 모든 n-채널 MOS 트랜지스터들에 인가되는 반면, oddBL 신호는 상기 홀수 번째 비트 라인들을 통해 연결된 컬럼 선택을 위한 모든 n-채널 MOS 트랜지스터들에 인가된다.
각 데이터 저장 회로(340)는 4 개의 바이너리 데이터 저장 섹션들(DS1, DS2, DS3, DS4)를 포함한다. 저장 섹션(DS1)은 내부 데이터 입력/출력 라인(들)에 의해 데이터 입력/출력부(312)에 연결되고 기록될 외부 입력 데이터 및 외부로 출력될 판독 데이터를 저장한다. 데이터 저장 섹션(DS2)은 기록 동작 후 메모리 셀의 문턱값을 확인하기 위한 기록 검증 동작의 검출 결과(detection outcome)를 저장한다. 데이터 저장 섹션(DS3)은 메모리 셀의 데이터를 이 데이터의 기록시 및/또는 판독시 임시적으로 저장한다. DS4는 프로그래밍을 위하여 데이터 저장 회로(340)로 로딩된 데이터의 사본(copy)을 저장한다. 다른 실시예들에서, 상기 데이터 저장 섹션들은 다른 기능들을 가질 수도 있고 혹은 다른 방식으로 구성될 수도 있다. 다양한 실시예들에서, DS1, DS2, DS3 및 DS4는 메모리 유닛의 일부분이거나, 하나 이상의 레지스터들의 일부분이거나 혹은 정보를 저장할 수 있는 다른 장치의 일부분들일 수 있다. 일 실시예에서, DS1, DS2, DS3 및 DS4는 각각 1 비트이다. 다른 실시예들에서, DS1, DS2, DS3 및 DS4 중 하나 이상이 다수의 비트들을 저장할 수 있다. 도 8에 도시된 회로 이외의 회로들 또한 비트라인들을 제어하기 위하여 이용될 수 있다.
여기서, 도 8은 짝수/홀수 비트 라인 구성을 도시하고 있지만, 본 발명은 각 비트 라인이 자신만의 감지 증폭기 및/또는 데이터 저장부를 가지고 있는 구성과 같이 많은 다양한 비트 라인 구성들을 이용할 수 있다. 본 발명을 구현하기에 적합한 몇 가지 구성에서는, 모든 비트 라인들이 홀수 및 짝수 패스(pass)들이 아닌 하나의 패스에서 프로그래밍된다. 예를 들면, 여기에 참조로 인용되는 2002년 9월 24일에 출원된 미국 특허출원 번호 10/254,483인 "Highly Compact Non-volatile Memory and Method Thereof"을 참조할 수 있다.
성공적인 프로그램 과정의 종료시, 메모리 셀들의 문턱 전압들은 프로그래밍된 메모리 셀들을 위한 문턱 전압의 하나 이상의 분포 내에 혹은 적절히 소거된 메모리 셀들에 대한 문턱 전압의 분포 내에 있어야만 한다. 도 9는 각 메모리 셀에 2 비트의 데이터가 저장될 때 메모리 셀 어레이에 대한 문턱 전압 분포를 도시하고 있다. 도9는 소거된 메모리 셀들에 대한 제 1 문턱 전압 분포(E)를 도시하고 있으며, 프로그래밍된 메모리 셀들에 대한 3 가지의 문턱 전압 분포(A, B, C) 또한 도시되어 있다. 일 실시예에서, E 분포에서의 문턱 전압들은 음(negative)이고, A, B 및 C 분포에서의 문턱 전압들은 양(positive)이다.
도 9의 각각의 별개의 문턱 전압 범위는 데이터 비트 세트에 대한 기결정된 값들에 해당한다. 상기 메모리 셀 내에 프로그램된 데이터와 상기 셀의 문턱 전압 레벨들 사이의 특정 관계는 셀들에 적용되는 데이터 인코딩 방식에 따라 다르다. 예컨대, 여기에 참고로 인용하는 미국 특허 번호 6,222,762 및 2003년 6월 13일자 출원된 미국 특허출원번호 10/461,244인 "Tracking Cells for a Memory System"는 다중-상태 플래시 메모리 셀들에 대한 다양한 데이터 인코딩 방식들을 기재하고 하고 있다. 일 실시예에서, 그레이 코드 할당법(Gray code assignment)을 이용하여 문턱 전압 범위들에 데이터 값들을 할당하여, 플로팅 게이트의 문턱 전압이 자신의 이웃 물리적 상태로 잘못 시프트되는 경우 단 1 비트만이 영향을 받는다. 일 예에서는 "11"을 문턱 전압 범위(E)(상태 E), "10"을 문턱 전압 범위(A)(상태 A), "00"을 문턱 전압 범위(B)(상태 B), 및 "01"을 문턱 전압 범위(C)(상태 C)에 할당한다. 그러나, 다른 실시예들에서는 그레이 코드가 이용되지 않는다. 도 9는 4 가지의 상태들을 도시하고 있지만, 본 발명은 또한 4 가지 이상 혹은 이하의 상태들을 포함하는 다른 다중 상태 구조들을 이용할 수도 있다.
도 9는 메모리 셀들로부터 데이터를 판독하기 위한 3 개의 판독 기준 전압들(Vra, Vrb, Vrc)을 도시하고 있다. 소정 메모리 셀의 문턱 전압이 Vra, Vrb 및 Vrc보다 높은지 혹은 낮은지를 테스트함으로써, 시스템에서는 상기 메모리 셀이 어떤 상태에 있는지를 판단할 수 있다. 도 9는 3 개의 검증 기준 전압들(Vva, Vvb 및 Vvc)을 도시하고 있다. 메모리 셀들을 상태 A로 프로그래밍할 경우, 상기 시스템은 그러한 메모리 셀들이 Vva보다 크거나 같은 문턱 전압을 갖고 있는지를 테스트할 것이다. 메모리 셀들을 상태 B로 프로그래밍할 경우, 상기 시스템은 상기 메모리 셀들이 Vvb보다 크거나 같은 문턱 전압을 갖고 있는지를 테스트할 것이다. 메모리 셀들이 상태 C로 프로그래밍되는 경우, 상기 시스템은 상기 메모리 셀들이 Vvc보다 크거나 같은 문턱 전압들을 갖고 있는지를 판단할 것이다. 추가적인 검증 기준 전압들(Vva1, Vvb1, Vvc1)은 비정밀/정밀 프로그래밍 동안의 적용을 위하여 하기에 설명될 것이다.
도 9에 도시된 바와 같은 일 실시예에서는, 풀 시퀀스(full sequence) 프로그래밍으로 알려져 있듯이, 메모리 셀들은 소거된 상태 E에서 프로그래밍된 상태들(A, B 혹은 C) 중 어느 것으로도 직접적으로 프로그래밍될 수 있다. 예를 들어, 프로그래밍될 메모리 셀들의 집단(population)을 먼저 소거함으로써 그 집단에 속한 모든 메모리 셀들은 소거된 상태 E에 있게 된다. 도 7에 도시된 제어 게이트 전압 시퀀스를 이용하는 도 9에 도시된 과정은 메모리 셀들을 상태 A, B 혹은 C로 직접 프로그래밍하기 위하여 이용될 것이다. 일부 메모리 셀들이 상태 E에서 상태 A로 프로그래밍되는 동안에, 다른 메모리 셀들은 상태 E에서 상태 B 및/또는 상태 E에서 상태 C로 프로그래밍되고 있다. 이러한 실시예들에서는, 메모리 셀의 특정 메모리 상태를 위하여 코딩된 비트들이 모두 데이터의 단일 페이지의 일부로 간주될 수 있다.
도 10은 두 가지의 다른 페이지, 즉, 하부 페이지 및 상부 페이지에 대하여 데이터를 저장하는 다중 상태 메모리 셀을 프로그래밍하는 이중-패스(two-pass) 기술의 일 예를 도시하고 있다. 4 가지 상태들은 상태 E(11), 상태 A(10), 상태 B(00) 및 상태 C(01)로 도시된다. 상태 E의 경우, 모든 페이지에는 "1"이 저장되고, 상태 A의 경우, 하부 페이지는 "0"을 상부 페이지는 "1"을 저장한다. 상태 B의 경우, 모든 페이지에는 "0"이 저장되고, 상태 C의 경우, 하부 페이지는 "1"을 상부 페이지는 "0"을 저장한다. 여기서, 각각의 상태들에 특정 비트 패턴이 할당되었지만, 다른 비트 패턴들이 할당될 수도 있다. 제 1 프로그래밍 패스(first programming pass)에서, 메모리 셀의 문턱 전압 레벨은 프로그래밍될 비트에 따라 하부 논리 페이지에 설정된다. 상기 비트가 논리 "1"인 경우, 상기 문턱 전압은 이전에 이미 소거된 결과로 적절한 상태에 있으므로 변경되지 않는다. 그러나, 프로그래밍될 비트가 논리 "0"일 경우, 셀의 문턱 레벨은 증가하여 화살표(350)로 도시된 바와 같이 상태 A가 된다. 이로써 제 1 프로그래밍 패스가 완료된다.
제 2 프로그래밍 패스(second programming pass)에서, 셀의 문턱 전압 레벨은 프로그래밍되는 비트에 따라 상부 논리 페이지에 설정된다. 상기 상부 논리 페이지 비트가 논리 "1"을 저장하게 될 경우, 어떠한 프로그래밍도 발생하지 않는다. 왜냐하면 상기 셀은 하부 페이지 비트의 프로그래밍에 따라 상태 E 혹은 A 중 하나의 상태에 있게 되기 때문이다. 여기서, 상기 상태 E 및 A는 "1"의 상부 페이지 비트를 운반한다. 상기 상부 페이지 비트가 논리 "0"이 될 경우, 상기 문턱 전압은 시프트된다. 상기 제 1 패스의 결과 상기 셀이 소거 상태 E에 남아 있는 경우, 상기 제 2 패스에서 상기 셀이 프로그래밍되며, 이에 따라 문턱 전압이 증가하여 화살표(354)로 도시된 바와 같이 상태 C에 있게 된다. 상기 제 1 프로그래밍 패스의 결과 상기 셀이 상태 A로 프로그래밍되었다면, 상기 메모리 셀은 제 2 패스에서 추가로 프로그래밍되며, 이에 따라 상기 문턱 전압이 증가하게 되어 화살표(352)로 나타낸 바와 같이 상태 B 내에 있게 된다. 상기 제 2 패스의 결과 상기 셀은 하부 페이지에 대한 데이터를 변경하지 않으면서 상부 페이지에 대한 논리 "0"을 저장하기 위해 지정된 상태로 프로그래밍된다.
일 실시예에서, 시스템은 충분한 데이터가 기록되어 전체 페이지가 채워지는 경우에 풀 시퀀스 기록을 수행하도록 설정될 수 있다. 충분한 데이터가 전체 페이지에 기록되지 않은 경우, 프로그래밍 과정에서는 수신된 데이터를 이용하여 상기 하부 페이지를 프로그래밍할 수 있다. 후속 데이터가 수신되면, 상기 시스템은 상위 페이지를 프로그래밍할 것이다. 다른 실시예에서, 상기 시스템은 하부 페이지를 프로그래밍하는 모드에서 기록을 시작할 수 있으며, 충분한 데이터가 계속해서 수신되어 전체 (혹은 대부분의) 워드 라인의 메모리 셀들을 채운 경우 풀 시퀀스 프로그래밍 모드로 전환할 수 있다. 이러한 실시예에 대한 보다 상세한 내용은 "Pipelined programming of non-volatile memories using early data"이라는 제목의 2004년 12월 14일자 미국 특허출원번호 11/013,125(발명자: Sergy Anatolievich Gorobets 및 Yan Li)에 기술되어 있다. 이는 본 명세서에 참고로 인용된다.
도 9 및 10에 도시된 방식과 다른 프로그래밍 방식들이 실시예들에 따라 이용될 수 있다. 예를 들어, 여기에 참조로 인용되는 미국 특허번호 6,657,891인 Shibata 등에 의한 "Semiconductor Memory Device for Storing Multivalued Data"는 이용가능한 대안적인 프로그래밍 방식을 기재하고 있다. 여기에 설명되는 기술은, 특정 메모리 셀에 대하여, 이전 페이지들에 대하여 인접 메모리 셀들에 기록한 후 특정 페이지에 대하여 상기 특정 메모리 셀에 기록함으로써 플로팅 게이트간 결합(coupling)을 감소시키는 비휘발성 메모리의 프로그래밍 방법을 설명하고 있다. 상기 비휘발성 메모리 셀들은 4 가지 데이터 상태들을 이용하여 일 실시예에서 각 메모리 셀 마다 2 비트의 데이터를 저장할 수 있다. 소거된 상태 E는 데이터(11)를, 제 1 프로그래밍 상태 A는 데이터(01)를, 상태 B는 데이터(10)를, 그리고 상태 C는 데이터(00)를 저장할 수 있다. 각 메모리 셀은 도 10에 도시된 바와 같이 상부 페이지 및 하부 페이지로 말할 수 있는 2 개의 페이지들에 대한 데이터를 저장한다. 중간 상태를 사용하는 상기 방법을 통해 순차적으로 프로그래밍된 이웃 셀들로 인한 플로팅 게이트간 결합 효과를 줄일 수 있다.
몇 가지 실시예들에서는, 이중-패스(two-pass) 프로그래밍 과정을 이용하여 상기 프로그래밍 과정을 불합리하게 늦추지 않으면서 조밀한 문턱 전압 분포를 얻을 수 있다. 제 1 위상(phase), 즉, 비정밀(coarse) 프로그래밍 위상은 조밀한 문턱 전압 분포에는 관심을 많이 두지 않으면서 보다 빠른 방식으로 문턱 전압을 상승시키려고 시도한다. 제 2 위상, 즉, 정밀(fine) 프로그래밍 위상은 타겟 문턱 전압에 도달하기 위하여 보다 느린 방식으로 문턱 전압을 상승시키려고 시도하여 더욱 조밀한 문턱 전압 분포를 얻게 된다. 비정밀/정밀 프로그래밍 방법론에 대한 일 예는 여기에 참조로 인용되는 미국 특허 6,643,188에서 찾을 수 있다.
메모리 셀들을 타겟 상태로 프로그래밍할 경우, 두 가지 검증 레벨이 이용된다. 예를 들어, Vva, Vvb, Vvc 등에 해당하는 최종 검증 레벨(Vver1)을 이용할 수 있다. 상태 A로 프로그래밍될 메모리 셀의 문턱 전압이 예를 들어 최종 검증 레 벨(Vva)에 도달한 경우, 상기 메모리 셀에 해당하는 비트 라인에 금지 전압(inhibit voltage)을 인가하여 상기 메모리 셀의 이후(추가적인) 프로그래밍(further programming)을 금지할 것이다. 예를 들어, 비트 라인 전압이 Vdd로 상승될 수 있다. 그러나, 메모리 셀이 상기 최종 타겟 레벨(Vva)에 가까운(그러나 그보다 낮은) 문턱 전압에 도달한 경우, 상기 비트 라인에 특정 바이어스 전압(bias voltage)(예컨데, V1)을 인가하여 이후의 프로그래밍 펄스들 동안에 상기 메모리 셀의 문턱 전압 시프트를 늦춘다(슬로우 다운 시킨다). 일반적으로 V1은 0.3V 내지 0.8V에 속할 수 있다. 문턱 전압 시프트 속도(rate)가 다음 몇 개의 프로그래밍 펄스들 동안 감소되기 때문에, 상기 최종 문턱 전압 분포는 이전의 방법들에서보다 더 좁아질 수 있다. 이 방법을 구현하기 위하여, Vver1 보다 낮은 제 2 검증 레벨이 이용된다. 상기 제 2 검증 레벨들(Vver2)은 도 9 및 10에 Vva1, Vvb1 및 Vvc1로 나타나 있다. 상태 A로 프로그래밍될 메모리 셀의 문턱 전압이 Vva1보다 크지만 Vva보다는 낮을 경우, 상기 메모리 셀로의 문턱 전압 시프트는 비트 라인 바이어스 V1을 인가하여 후속 프로그래밍 펄스들 동안에 감소될 것이다. 여기서, 이 경우, 두 가지의 검증 동작들이 각 상태별로 요구되는데, 이는 비정밀/정밀 프로그래밍 방법론이 적용되는 각 상태에 대한 해당 최종 검증 레벨(예컨데, Vva)에서의 일 검증 동작과, 각 상태에 대한 해당 제 2 검증 레벨(예컨데, Vva1)에서의 일 검증 동작이다. 이에 따라, 메모리 셀들의 프로그래밍에 필요한 총 시간이 증가한다. 그러나, 더 큰 △Vpgm 스텝 크기를 이용하여 상기 과정의 속도를 높일 수 있다.
적당한 프로그래밍 시간을 유지하기 위하여, 일부 실시예들에서는 비정밀/정 밀 프로그래밍 알고리즘들이 가장 높은 메모리 상태(가장 큰 양의 문턱 전압 범위에 해당하는 상태)에는 적용되지 않을 것이다. 도 10에서 상태 C와 같은 가장 높은 상태는 더 높은 상태와 구별될 필요가 없다. 일반적으로, 다음으로 가장 낮은 상태(예컨데, 분포 12로 표시된 상태 B)와 구분하기 위해서는, 이 상태 C의 셀들을 최소 문턱 레벨 이상으로 프로그래밍하는 것만이 필요할 뿐이다. 따라서, 이러한 셀들의 분포는 장치 성능에 악영향을 미치지 않으면서 보다 넓은 문턱 전압 범위를 차지할 수 있다.
몇 가지 예에서, 프로그래밍 동작 중 의도된 상태에 대해 성공적으로 검증하는 메모리 셀들은 상기 의도된 상태의 문턱 전압 범위(최종 검증 레벨 이하)를 순차적으로 벗어나게 된다. 이로 인해 판독 에러 및/또는 ECC(Error Correction Codes)의 사용과 같은 보정 기술에 대한 요구가 야기될 수 있다. 셀들은 계속적으로 스케일링되어 보다 큰 메모리 용량을 제공한다. 이러한 스케일링은 제어 게이트와 플로팅 게이트 사이의 (인터게이트(inter-gate) 혹은 인터폴리(inter-poly) 유전체라고 하는) 유전체의 (실제 혹은 효과적인) 두께를 감소시키는 단계를 포함할 수 있다. 또한, 보다 높은 유전체율(하이-K(high-K))을 갖는 물질들이 이용되고 있는데, 이러한 물질들은 일반적인 ONO 유전체들보다 누설(leakage)에 취약할 수 있다. 메모리 셀의 제어 게이트와 플로팅 게이트 사이에 큰 전위차(large potential)가 존재하는 경우, 음의 전하가 상기 플로팅 게이트로부터 상기 제어 게이트로 이동할 수 있다. 이로 인해, 의도치 않은 문턱 전압 변화가 발생한다. 예를 들어, 도 2 및 3을 참조하면, 전자들은 플로팅 게이트(106FG)로부터 제어 게이트(106CG)로 이동하여 메모리 셀(106)의 문턱 전압 변화를 야기할 수 있다. 예를 들면, 셀이 록아웃되거나(locked-out) 혹은 프로그래밍이 금지된 상태에서, 상기 록아웃된 셀과 동일한 워드 라인에 연결된 다른 셀들을 프로그래밍하기 위해 프로그램 전압이 인가되는 경우, 상기 록아웃된 셀의 제어 게이트와 플로팅 게이트 사이에는 큰 전위차가 존재한다. 전자들은 상기 플로팅 게이트로부터 유출되어 상기 록아웃된 셀의 문턱 전압이 자신의 의도된 상태에 대한 최종 검증 레벨 아래로 하락하게 될 수 있다. 예를 들어, 도 4에서 메모리 셀(224)은 록아웃되는 반면 메모리 셀(244)의 프로그래밍은 프로그램 전압을 WL2로 인가하여 계속적으로 수행될 수 있다. 상기 메모리 셀(224)의 제어 게이트에서의 큰 전위는 전자들을 메모리 셀(224)의 플로팅 게이트 밖으로 끌어낼 것이다.
일반적인 프로그램 동작들에서, 셀들은 상기 의도된 상태를 위한 검증 동작을 거친 후에 그 이상의 프로그래밍으로부터 영구적으로 록아웃된다. 이러한 셀들은 성공적인 검증 후에 추가 검증을 거치지 않는다. 따라서, 이러한 셀들은 성공적으로 검증되었다 할지라도 프로그래밍의 종료시 자신들의 의도된 상태의 검증 레벨 이하인 문턱 전압을 갖게 될 것이다.
일 실시예에 따르면, 검증 후 음의 전하를 분실하는 셀들을 검출하기 위하여, 메모리 셀들은 프로그래밍 내내 검증된다. 예를 들면, 메모리 셀들은 각 프로그래밍 펄스(프로그램 동작) 이후에 자신들이 이미 자신들의 타겟 상태에 대하여 성공적으로 검증되었는지에 관계없이 검증을 거치게 될 수 있다. 이전에 검증된 메모리 셀이 상기 프로그래밍 과정의 이후 반복(further iterations)에서 검증에 실패한다면, 이 셀에 대한 추가적인 프로그래밍이 진행될 수 있다.
도 11A 내지 11C 및 도 12A 내지 12C는 일 실시예에 따른 프로그래밍 과정을 도시하고 있다. 도 11A 및 도 12A는 제어 게이트에 인가되는 프로그래밍 펄스(Vpgm)을 도시하고 있고, 도 11B 및 도 12B는 프로그래밍되고 있는 메모리 셀들의 비트 라인 전압들을 도시하고 있고, 도 11C 및 도 12C는 프로그래밍 되고 있는 메모리 셀들의 문턱 전압을 도시하고 있다. 도 11A-11C 및 도 12A-12C의 과정은 비정밀/정밀 프로그래밍을 이용하여 수행된다. 다른 실시예에서, 비정밀/정밀 프로그래밍은 이용되지 않는다.
도 11A 내지 11C에 도시된 메모리 셀은 크기가 증가하는 4 개의 프로그램 전압 펄스들을 인가한 후 시간 t4에서 자신의 타겟 상태를 위한 Vver2 레벨에 도달한 것으로 판단된다. 예를 들어, Vver2는 Vva1, Vvb1 등에 해당할 수 있다. 상기 셀의 비트 라인 전압은 시간 t4에서 V1으로 상승하여 정밀 프로그래밍 위상에 대한 상기 메모리 셀의 프로그래밍 속도를 늦춘다. 시간 t5에서, 하나의 추가 펄스 이후에, 상기 셀은 자신의 타겟 상태를 위한 Vver1에 도달한 것으로 판단된다. 이에 따라, 상기 비트 라인 전압은 Vdd로 상승하여 상기 셀의 추가 프로그래밍(further programming)을 금지한다. 상기 메모리 셀은 프로그래밍되고 있는 워드 라인의 전체 프로그래밍 과정 메모리 동작이 완료될 때까지 계속해서 검증된다. 도 11C는 상기 메모리 셀의 문턱 전압이 남은 프로그래밍 동안 Vver1 레벨보다 높게 유지되는 것을 도시하고 있다. 따라서, 상기 비트 라인 전압은 Vdd에 남아 프로그래밍을 금지한다.
또한, 도 12A 내지 12C에 도시된 메모리 셀은 시간 t4에서 자신의 의도된 상태를 위한 Vver2 레벨에 도달한다. 상기 비트 라인 전압은 V1으로 상승하며 상기 문턱 전압이 시간 t6에서 Vver1 레벨에 도달하기 전에 2 개의 펄스들이 더 인가된다. 이후, 상기 비트 라인 전압은 Vdd로 상승하여 프로그래밍을 금지한다. 시간 t7에서, 상기 문턱 전압은 여전히 Vver1 보다 높으므로 상기 비트 라인 전압은 Vdd에 유지된다. 그러나, 시간 t8에서, 상기 문턱 전압은 Vver1 레벨 아래로 약간 떨어진다. 제어 회로소자(예를 들어, 컬럼 제어 회로(304)의 프로세서)는 이러한 변화를 검출하여 시간 t8에서 상기 비트 라인 전압을 V2로 낮추어 추가적인 프로그래밍을 가능하게 할 수 있다. 시간 t9에서, 상기 문턱 전압은 다시 Vver1 보다 높고, 상기 비트 라인 전압은 다시 Vdd로 상승한다. 상기 문턱 전압은 남은 프로그래밍 동안 Vver1 보다 높게 유지된다.
도 12A 내지 12C가 도시하는 바와 같이, 메모리 셀은 프로그래밍 과정 동안 일시적으로 록아웃되는 것만으로도 보다 정확하게 프로그래밍된다. 다른 메모리 셀들을 프로그래밍하는 것으로 인한 문턱 전압의 추후 하락(subsequent drop)이 검출되어 이미 검증된 셀이 추가로 더 프로그래밍될 수 있다. 상기 셀을 다시 최종 검증 레벨보다 높게 점진적으로 천천히 프로그래밍하기 위하여, 일 실시예에서 V2는 V1보다 큰 전압일 수 있다. 이러한 방식으로, 과도-프로그래밍(over-programming)을 최소화시키거나 억제시킬 수 있다. 상승한 비트 라인 전압으로 인해 속도가 느려진 프로그래밍(각 펄스에 대해 문턱 전압의 더 적은 시프트)은, 감소된 프로그래밍(reduced programming)이라고 지칭될 수 있다. 낮은 비트 라인 전압(예를 들어, 0 볼트)를 인가하면, 셀은 과도-프로그래밍될 수 있다. 상기 프로그램 전압은 자신의 이전의 성공적인 검증 이후 여러 번의 스텝 사이즈까지 증가하였을 것이다. 상기 셀이 풀 프로그래밍(full programming)(BL=0V)을 위해 잠금해제되면(unlocked), 상기 셀의 문턱 전압은 결과적으로 금지된 지역(forbidden zone)에 있게 되거나 인접한 상태의 문턱 전압 범위내에 있게 될 수 있다. 그러나, 다른 실시예들에서는, V2가 V1보다 작거나 같을 수 있다.
도 13은 도 11A-11C 및 도 12A-12C에 대하여 언급한 바와 같은 개념들을 이용하여 메모리를 프로그래밍하는 일반적인 방법을 도시하는 흐름도이다. 단계 502에서, (예를 들어, 도 4의) 시스템은 메모리를 프로그래밍하라는 명령 및 데이터를 수신한다. 단계 504에서, 초기화가 수행된다. 몇몇 실시예들에서, 메모리 셀들이 프로그래밍 이전에 소거될 수 있다. 소프트 프로그래밍을 통해 상기 소거된 셀들 각각은 좁은 소거된 문턱 전압 분포 내에서 문턱 전압을 갖게 될 것이다. 상태 레지스터들(status registers)이 또한 초기화된다. 단계 506에서, 프로그래밍 펄스가 인가된다. 특정 워드 라인에 연결된 상기 메모리 셀들의 각각의 제어 게이트에서는 상기 펄스를 수신할 것이다. 단계 508에서, 상기 셀들은 자신들의 문턱 전압이 자신들의 의도된 상태에 해당하는 검증 레벨(Vver2)에 도달하였는지를 판단하기 위하여 검증된다. 단계 510에서, 상기 셀들은 자신들의 문턱 전압이 자신들의 의도된 상태에 해당하는 검증 레벨(Vver1)에 도달하였는지를 판단하기 위하여 검증된다.
상기 과정은, 상기 셀이 이전 반복(previous iteration)(n-1, n-2 등)에서 자신의 의도된 상태에 대한 Vver1 레벨에서 성공적으로 검증되었는지에 따라 분기 한다(단계 512). 상기 메모리 셀이 자신의 타겟 상태에 대한 Vver1 레벨에서 이전에 검증되지 않았다면, 상기 과정은 단계 520으로 분기하는바, 단계 520에서는 두 개의 현재(n) 검증 동작들의 상태에 기초하여 상기 과정이 분기된다. Vver2에서 셀 검증이 실패하면(단계 508), 상기 과정은 단계 528로 진행하는바, 단계 528에서는 프로그래밍 전압이 스텝 크기로 증가하며 상기 과정을 위한 카운터(PC)가 증분된다. 카운터는 프로그래밍 동작의 반복 횟수를 제한하는데 이용될 수 있다. 예를 들어, 상기 카운터값은 상기 동작의 지속, 실패 혹은 성공 여부를 판단하기 위하여 단계 528 이전에 확인될 수 있다.
상기 메모리 셀이 검증 레벨 Vver1에서 검증되었다면(단계 510), 상기 과정은 단계 518로 진행하는바, 단계 518에서는 다음 프로그래밍 반복(n+1) 동안에 상기 메모리 셀의 프로그래밍이 록아웃되거나 금지된다. 상기 메모리 셀이 Vver1 레벨이 아닌 Vver2에서 검증되었다면, 상기 메모리 셀의 비트 라인은 단계 522에서 V1으로 설정되어 다음 프로그래밍 반복 동안에 자신의 문턱 전압의 증가 속도를 늦출 수 있다. 상기 페이지의 프로그래밍 과정이 단계 524에서 판단된 바와 같이 성공적이라면, 단계 526에서 성공(pass) 상태가 보고된다. 상기 과정은 모든 셀들 또는 기결정된 개수의 셀들이 자신들의 의도된 상태에 대한 Vver1에 도달할 때 성공한 것으로 볼 수 있다.
상기 메모리 셀이 현재 반복(current iteration) 이전에 성공적으로 검증되었다면, 상기 과정은 단계 512에서 단계 514로 분기된다. 상기 셀이 검증 레벨 Vver1에서 다시 검증되면, 상기 셀의 록아웃 상태나 금지된 상태는 단계 518에서 유지된다. 그러나, 상기 Vver1 레벨에서 상기 셀의 검증이 실패하면, 추가적인 프로그래밍이 진행된다. 단계 516에서, 상기 셀의 비트 라인은 V2로 설정되어 다음 반복 동안에 프로그래밍을 가능하게 한다. 일 실시예에서 V2는 V1 이하이므로, V1이 제공하는 정밀 프로그래밍에 비해 각각의 프로그램 전압 펄스에 대해 문턱 전압을 훨씬 적게 증가시킬 수 있다. 다른 실시예들에서는, 다른 값들을 이용할 수 있다. 일 실시예에서, 상기 메모리 셀이 Vver1에서의 이전 검증 이후에 Vver2에서의 검증에 실패하면, 상기 문턱 전압이 충분히 떨어졌기 때문에 V1을 인가할 수 있으므로 과도-프로그래밍을 방지할 수 있다.
도 14는 예를 들어 도 9에 도시된 바와 같이 풀 시퀀스 프로그래밍을 위한 일 실시예에 따른 프로그래밍 과정을 도시하는 흐름도이다. 도 14에서는 도 5와 관련하여 설명될 것이지만, 다른 구현예들도 이용할 수 있을 것이다. 단계 602에서, 호스트로부터 데이터 로드 혹은 입력 명령이 수신되어 상태 머신(state machine)에 위치한다. 단계 604에서, 기록 동작에 이용될 페이지를 선택하기 위하여 호스트로부터 어드레스 데이터를 수신하여 상기 상태 머신에 저장한다. 단계 606에서, 기록될 데이터를 수신하여 DS1에 저장한다. 단계 608에서, 호스트로부터 기록 혹은 프로그램 명령을 수신하여 상기 상태 머신에 둔다. 단계 610에서, DS1으로부터의 입력 데이터를 DS2 및 DS4로 카피한다(copied). 이 실시예에서, 각 셀이 하나의 논리 페이지에 대하여 2 비트의 데이터를 저장하지만 DS2 및 DS4의 경우 1 비트의 데이터만이 필요하다. DS2 및 DS4는 각각 상태 10, 00 혹은 01로 프로그램될 셀들에 대하여 0으로 설정된다. DS2 및 DS4는 각각 소거 상태(11)에 남아있는 셀에 대하여 1 로 설정된다. 다른 레지스터 구성이 또한 이용될 수 있다.
단계 612에서, 프로그램 전압(Vpgm)이 자신의 시작값(예컨데, 12V)으로 초기화되고, 프로그램 카운터 PC는 자신의 시작값(예컨데, 0)으로 초기화된다. 단계 614에서 각 메모리 셀에 대한 비트 라인 전압들이 설정된다. DS4 및 DS2 모두 0으로 설정되면, 상기 메모리 셀은 자신의 의도된 상태에 대한 Vver2 및 Vver1 어디에도 도달하지 않고 있으며, 상기 비트 라인 전압은 0 볼트로 설정된다. DS4가 0으로 설정되고 DS2가 1로 설정되면, 상기 비트 라인 전압은 V1으로 설정되어 비정밀/정밀 프로그래밍 방식에서 정밀 프로그래밍을 가능하게 한다. DS4가 1로 설정되고 DS2가 0으로 설정되면, 이것은 이전에 검증되었지만 지금은 검증되지 않은 메모리 셀을 나타낸다. 상기 비트 라인 전압은 V2로 설정되어, 정밀 프로그래밍 보다 더욱 느려지거나 더 감소된 프로그래밍을 가능하게 한다. DS4 및 DS2 모두 1로 설정되면, 상기 비트 라인 전압은 Vdd로 설정되어 프로그래밍을 금지한다. 일 실시예에서는 비정밀/정밀 프로그래밍이 사용되지 않는다. 검증은 최종 검증 레벨(Vver1)에서만 수행될 수 있다. 이러한 경우, 상기 비트 라인들은 0 볼트로 설정되어 풀 프로그래밍을 가능하게 하거나, Vdd로 설정되어 프로그래밍을 금지하거나, V2로 설정되어 상기 검증 레벨 아래로 떨어진 이전에 검증된 셀을 서서히 프로그래밍할 것이다.
단계 616에서, 상기 프로그램 전압 펄스가 선택된 워드 라인에 인가된다. 단계 618에서, Vver2 레벨(Vva1)을 이용하여 상태(10)에 대한 검증이 수행된다. 단계618은 상태(10)으로 프로그래밍 될 셀들에 대해서만 수행된다. 상기 셀들이 Vver2 레벨 검증을 통과하면, DS2가 1로 설정된다. 상기 셀들이 통과하지 못하면, DS2는 0으로 설정되거나 0에서 유지된다. 단계 620에서, Vver1 레벨(Vva)을 이용하여 상태(10)에 대한 검증이 수행된다. 상기 셀이 통과하면, DS4는 1로 설정되거나 1에서 유지된다. 상기 셀 검증이 실패하고 DS4가 현재 반복(n)(current iteration)의 시작 전에(즉, n-1 반복의 끝에서) 0과 같아졌다면, DS4는 0으로 유지된다. 그러나, 상기 셀의 검증이 실패하고 DS4가 현재 반복(n)의 시작 전에 1과 같아졌다면, DS4는 1로 유지되고 DS2는 0으로 설정된다. 이러한 조합은 이전에 검증이 되었지만 이후의 검증에서는 실패한 메모리 셀들을 나타낸다. 상기 조합은 다시 Vver1 검증 레벨로의 점진적인 프로그래밍을 위한 다음 반복 동안에 상기 메모리 셀의 비트 라인을 V2로 풀다운시키는 결과를 야기할 것이다. 앞서 언급한 바와 같이, 다른 실시예들에서는 보다 더 세분화된 정밀 레벨을 제공할 수 있다. 예를 들어, 상기 셀이 Vver1 검증 레벨 뿐만 아니라 Vver2 아래로 떨어지는 경우에는, 상기 비트 라인을 V1 값으로 끌어내리기 위하여 또는 V2의 인가로 인해 야기된 속도 이상으로 프로그래밍 속도를 증가시키는 또 다른 값으로 끌어내리기 위하여, 소정의 조합이 이용될 수 있다.
단계 622에서, Vver2 레벨(Vvb1)을 이용하여 상태(00)에 대한 검증을 수행한다. 단계 622는 상태(00)으로 프로그래밍될 셀들에 대해서만 수행된다. 상기 셀이 Vver2 레벨 검증을 통과하면, DS2는 1로 설정된다. 상기 셀이 통과하지 못하면, DS2는 0으로 설정되거나 0에서 유지된다. 단계 624에서, Vver1 레벨(Vvb)을 이용하여 상태(00)에 대한 검증을 수행한다. 상기 셀이 통과하면, DS4는 1로 설정되거나 1에서 유지된다. 검증이 실패하고 DS4가 현재 반복(n)을 시작하기 전에 0과 같아졌 다면, DS4는 0에서 유지된다. 그러나, 상기 셀의 검증이 실패하고 DS4가 현재 반복을 시작하기 전에 1과 같아졌다면, DS4는 1에서 유지되고 DS2는 0으로 설정된다.
단계 626에서, Vver2 레벨(Vvc1)을 이용하여 상태(01)에 대한 검증을 수행한다. 단계 626은 상태(01)로 프로그래밍될 셀들에 대해서만 수행된다. 상기 셀이 Vver2 레벨 검증을 통과하면, DS2는 1로 설정된다. 상기 셀이 통과하지 못하면, DS2는 0으로 설정되거나 0에서 유지된다. 단계 628에서, Vver1 레벨(Vvc)을 이용하여 상태(00)에 대한 검증을 수행한다. 상기 셀이 통과하면, DS4는 1로 설정되거나 1에서 유지된다. 상기 셀이 검증에 실패하고 DS4가 현재 반복(n)을 시작하기 전에 0과 같았다면, DS4는 0에서 유지된다. 그러나, 셀이 검증에 실패하고 DS4가 현재 반복(n)을 시작하기 전에 1과 같았다면, DS4는 1에서 유지되고 DS2는 0으로 설정된다.
단계 630에서, 프로그래밍되고 있는 페이지에 대한 모든 셀들이 자신들의 DS2 레지스터와 DS4 레지스터 각각에 '1'을 저장하고 있는지를 판단한다. 저장하고 있을 경우, 단계 632에서 프로그래밍 과정에 대한 통과(pass) 상태가 보고된다. 일 실시예에서, 소정 개수의 메모리 셀들이 자신들의 DS2 레지스터와 DS4 레지스터 각각에 '1'을 저장하고 있을 경우 통과 상태가 보고된다. 모든 메모리 셀들(혹은 소정 개수의 메모리 셀들)이 DS2 및 DS4에 '1'을 저장하고 있지 않다면, 프로그램 카운터가 최대값 이하인지를 판단한다. 최대값 이하가 아닐 경우, 상기 프로그램 과정이 최종 반복을 완료하였음을 나타낸 후, Vver1 타겟 레벨에 도달하지 못한 메모리 셀들의 개수가 소정 개수인지 혹은 그 이하인지를 판단한다. 소정 개수이거나 그 이하인 경우, 단계 632에서 통과 상태가 보고된다. 프로그램 카운터 PC가 최대값에 도달하지 못한 경우, 단계 636에서 상기 프로그램 전압이 스텝 사이즈로 증가하며 상기 카운터가 증분된다(incremented). 상기 프로그램 전압이 증가한 후, 상기 과정은 단계 614로 되돌아가 적당한 비트 라인 조건을 설정한다. 이전에 검증되었지만 상기 기술된 반복(n) 동안에 검증에 실패한 셀들은 자신들의 비트 라인들을 V2로 설정하여 상기 셀들의 문턱 전압이 조금씩 점진적으로 증가할 수 있게 한다. 이전에 검증되지 못하였지만 Vver2 레벨에 도달한 셀들은 자신들의 비트 라인들을 V1으로 설정하여 정밀 프로그래밍을 가능하게 한다. Vver1 레벨에서 검증을 통과한 셀들은 자신들의 비트 라인들을 Vdd로 설정하여 다음 반복 동안의 프로그래밍을 금지할 수 있다.
여기서 중요한 점은 종래의 영구적인 록아웃(lock-out) 방식과 비교하여, 셀들의 프로그래밍을 록아웃하거나 금지하는 것이 단지 일시적이라는 것이다. 이미 성공적으로 검증된 셀들에 대하여 검증을 수행하고, 이러한 셀들에 대하여 이후에 추가적인 프로그래밍(further programming)이 수행될 수 있다. 이를 달성하기 위하여, 프로그래밍을 위해 로딩된 오리지널 데이터의 사본(copy)이 전 프로그램 과정을 통해 DS1에 의해 유지된다.
도 15는 도 10에 도시된 바와 같은 상부/하부 페이지 방식을 사용할 경우 데이터의 하부 페이지를 프로그래밍하기 위한 일 실시예에 따른 프로그래밍 과정을 도시한 흐름도이다. 또한, 비정밀/정밀 프로그래밍과의 조합은 선택적이다. 또한, 도 15는 바이너리 프로그램 과정에서 이용될 수 있다. 단계 652에서, 호스트로부터 데이터 입력 명령을 수신하여 상태 머신에 둔다. 단계 654에서, 기록 동작에 이용될 페이지를 선택하기 위하여 호스트로부터 어드레스 데이터를 수신하여 상기 상태 머신에 저장한다. 단계 656에서, 기록될 데이터를 수신하여 DS1에 저장한다. 단계 658에서, 호스트로부터 기록 혹은 프로그램 명령을 수신하여 상기 상태 머신에 둔다. 단계 660에서, 상기 DS1으로부터의 입력 데이터를 DS2 및 DS4로 복사한다. 단계 662에서, 상기 프로그램 전압은 자신의 시작값(예컨데, 12V)으로 초기화되고, 프로그램 카운터 PC도 자신의 시작값(예컨데, 0)으로 초기화된다. 단계 664에서 각 메모리 셀에 대하여 비트 라인 전압들이 설정된다. DS4 및 DS2가 모두 0으로 설정되면, 상기 메모리 셀은 자신의 의도된 상태에 대한 Vver2 혹은 Vver1 레벨 어디에도 도달하지 않고 있으며, 상기 비트 라인 전압은 0 볼트로 설정된다. DS4가 0으로 설정되고 DS2가 1로 설정되면, 상기 비트 라인 전압은 V1으로 설정되어 비정밀/정밀 프로그래밍 방식에서의 정밀 프로그래밍을 가능하게 한다. DS4가 1로 설정되고 DS2가 0으로 설정되면, 이는 이전에 검증되었지만 마지막 검증 이후에는 실패한 메모리 셀을 나타낸다. 상기 비트 라인 전압은 V2로 설정되어 정밀 프로그래밍보다 훨씬 더 느린 프로그래밍을 가능하게 한다. DS4 및 DS2 모두 1로 설정되면, 상기 비트 라인 전압은 Vdd로 설정되어 프로그래밍을 금지한다.
단계 666에서, 프로그램 전압 펄스를 선택된 워드 라인에 인가한다. 단계 668에서, 상태(10) Vver2 레벨(Vva1)을 이용하여 검증을 수행한다. 상기 셀이 Vver2 레벨 검증을 통과하면, DS2는 1로 설정된다. 상기 셀이 통과하지 못하면, DS2는 0으로 설정되거나 0에서 유지된다. 단계 670에서 상태(10) Vver1 레벨(Vva) 을 이용하여 검증을 수행한다. 상기 셀이 통과하면, DS4는 1로 설정되거나 1에서 유지된다. 상기 셀의 검증이 실패하고 DS4가 현재 반복(n)을 시작하기 전에 0과 같았다면, DS4는 0에서 유지된다. 그러나, 상기 셀의 검증이 실패하고 DS4가 현재 반복(n)을 시작하기 전에 1과 같았으며 DS1이 0(DS1=0)이면, DS4는 1에서 유지되고 DS2는 0으로 설정된다. 이러한 조합은 다시 Vver1 검증 레벨로의 점진적 프로그래밍을 위한 다음 반복 동안 상기 메모리 셀의 비트 라인을 V2로 풀링 다운시키는 결과를 야기할 것이다.
단계 672에서, 프로그래밍되고 있는 페이지에 대한 모든 셀들이 자신들의 DS2 레지스터와 DS4 레지스터 각각에 '1'을 저장하고 있는지를 판단한다. 저장하고 있는 경우, 단계 674에서 프로그래밍 과정에 대한 통과(pass) 상태가 보고된다. 일 실시예에서, 소정 개수의 메모리 셀들이 자신들의 DS2 레지스터와 DS4 레지스터 각각에 '1'을 저장하고 있을 경우 통과 상태가 보고된다. 모든 메모리 셀들(혹은 소정 개수의 메모리 셀들)이 DS2 및 DS4에 '1'을 저장하고 있지 않다면, 프로그램 카운터가 최대값 이하인지를 판단한다. 최대값 이하가 아닐 경우, 상기 프로그램 과정이 최종 반복을 완료하였음을 나타낸 후, Vver1 타겟 레벨에 도달하지 못한 메모리 셀들의 개수가 소정 개수인지 혹은 그 이하인지를 판단한다. 소정 개수이거나 그 이하인 경우, 단계 674에서 통과 상태가 보고된다. 상기 개수가 상기 소정 개수에 도달하지 못하였다면, 단계 682에서 실패 상태(status of fail)를 보고한다. 프로그램 카운터 PC가 최대값에 도달하지 못한 경우, 단계 678에서 상기 프로그램 전압이 스텝 사이즈로 증가하며 카운터가 증분된다. 상기 프로그램 전압을 증가시킨 후, 상기 과정은 단계 664로 되돌아가서 다음 반복을 위한 적절한 비트 라인 조건들을 설정한다.
도 16은 도 10에 도시된 바와 같은 상부/하부 페이지 방식을 사용할 경우 데이터의 상부 페이지를 프로그래밍하기 위한 일 실시예에 따른 프로그래밍 과정을 도시한 흐름도이다. 단계 702에서, 호스트로부터 데이터 입력 명령을 수신하여 상태 머신에 둔다. 단계 704에서, 기록 동작에 이용될 페이지를 선택하기 위하여 호스트로부터 어드레스 데이터를 수신하여 상기 상태 머신에 저장한다. 단계 706에서, 기록될 데이터를 수신하여 DS1에 저장한다. 단계 708에서, 호스트로부터 기록 혹은 프로그램 명령을 수신하여 상기 상태 머신에 저장한다. 단계 710에서, 상기 DS1으로부터의 입력 데이터를 DS2 및 DS4로 복사(copy)한다. 단계 712에서, 판독 동작을 수행하여 각 메모리 셀의 하부 페이지 비트의 값을 판단한다. 상기 판독 동작은 Vra 판독 레벨을 이용하여 수행된다. 상기 셀이 도전되면(conduct), 상기 셀이 현재 상태(11)에 있음을 나타내면서, DS3을 0으로 설정한다. 상기 셀이 도전되지 않으면, 상기 셀이 현재 상태(10)에 있음을 나타내면서, DS3를 1로 설정한다.
단계 714에서, 프로그램 전압을 자신의 시작값으로 초기화하고 프로그램 카운터도 자신의 시작값으로 초기화한다. 단계 716에서 각 메모리 셀에 대한 비트 라인 전압을 설정한다. DS4 및 DS2 모두 0으로 설정되면, 비트 라인 전압은 0V으로 설정된다. DS4가 0로 설정되고 DS2가 1으로 설정되면, 상기 비트 라인 전압은 V1으로 설정된다. DS4가 1로 설정되고 DS2가 0으로 설정되면, 상기 비트 라인 전압은 V2로 설정된다. DS4 및 DS2 모두 1로 설정되면, 상기 비트 라인 전압은 Vdd로 설정 되어 프로그래밍을 금지한다.
단계 718에서, 제 1 프로그래밍 펄스를 인가한다. 단계 720에서, Vver2 검증 레벨(Vvb1)을 이용하여 상태(00)에 대한 프로그램 검증 동작을 수행한다. DS3=1이고 셀이 검증을 통과하면, DS2는 1로 설정되거나 1에서 유지된다. DS3=1이고 셀이 검증에 실패하면, DS2는 0으로 설정되거나 0에서 유지된다. 단계 722에서, Vver1 검증 레벨(Vvb)을 이용하여 상태(00)에 대한 프로그램 검증 동작을 수행한다. DS3=1이고 셀이 검증을 통과하면, DS4는 1로 설정되거나 1에서 유지된다. DS3=1이고 DS4가 상기 이전 반복 이후에 0으로 설정되었으며 셀이 검증에 실패한 경우, DS4는 0에서 유지된다. 그러나, 상기 셀이 검증에 실패하고, DS3=1이고, DS4가 마지막 반복 후에 1로 설정되었으며 DS1=0인 경우, DS4는 1에서 유지되고 DS2는 0으로 설정되거나 0에서 유지된다.
단계 724에서, Vver2 검증 레벨(Vvc1)에서 상태(01)에 대한 프로그램 검증 동작을 수행한다. 상기 셀이 통과하고 DS3=0일 경우, DS2는 0으로 설정되거나 0에서 유지된다. 상기 셀이 실패하고 DS3=0일 경우, DS2는 1로 설정되거나 1에서 유지된다. 단계 726에서, Vver1 검증 레벨(Vvc)에서 상태(01)에 대한 프로그램 검증 동작을 수행한다. 상기 셀이 통과하고 DS3=0일 경우, DS4는 1로 설정되거나 1에서 유지된다. 상기 셀이 실패하고, DS3=0이고 DS4는 마지막 반복 이후에 0으로 설정되었다면, DS4는 0에서 유지된다. 상기 셀이 실패하고, DS3=0이고, DS1=0이며 DS4는 마지막 반복 이후에 1로 설정되었다면, 단계 726에서 DS4는 1을 유지하고 DS2는 0으로 설정되거나 0에서 유지된다.
단계 728에서, 프로그래밍되고 있는 페이지에 대한 모든 셀들이 자신들의 DS2 레지스터와 DS4 레지스터 각각에 '1'을 저장하고 있는지를 판단한다. 저장하고 있을 경우, 단계 730에서 프로그래밍 과정에 대한 통과(pass) 상태가 보고된다. 일 실시예에서, 소정 개수의 메모리 셀들이 자신들의 DS2 레지스터와 DS4 레지스터 각각에 '1'을 저장하고 있을 경우 통과 상태가 보고된다. 모든 메모리 셀들(혹은 소정 개수의 메모리 셀들)이 DS2 및 DS4에 '1'을 저장하고 있지 않다면, 프로그램 카운터가 최대값 이하인지를 판단한다. 최대값 이하가 아닐 경우, 상기 프로그램 과정이 최종 반복을 완료하였음을 나타낸 후, Vver1 타겟 레벨에 도달하지 못한 메모리 셀들의 개수가 소정 개수인지 혹은 그 이하인지를 판단한다. 소정 개수이거나 그 이하인 경우, 단계 730에서 통과 상태가 보고된다. 상기 개수가 소정 개수에 도달하지 못하였을 경우, 단계 736에서 실패 상태가 보고된다. 프로그램 카운터 PC가 최대값에 도달하지 못한 경우, 단계 738에서 상기 프로그램 전압이 스텝 사이즈로 증가하며 카운터가 증분된다. 상기 프로그램 전압을 증가시킨 후, 상기 과정은 단계 716로 되돌아가서 다음 반복을 위한 적절한 비트 라인 조건들을 설정한다.
지금까지 논의된 실시예들에서는, 타겟 상태에 대하여 이전에 검증되었으나 이후에 최종 검증 레벨 아래로 떨어진 것으로 판단된 메모리 셀에 대한 추가적인 프로그래밍이 증분 프로그램 전압 신호(incremental program voltage signal)가 인가되는 동안 즉시 수행된다. 이것은 상기 메모리 셀의 비트 라인 전압을 변경하여 프로그램 과정의 다음 반복 동안에 추가적인 프로그래밍이 가능하게 함으로써 달성된다. 일 실시예에서, 상기 메모리 셀들에 대하여 추가적인 프로그래밍이 즉시 실행되지 않는다. 일 실시예에서, 예를 들어, 적당한 프로그램 펄스들을 페이지 프로그래밍 시퀀스의 끝에 인가하여 상기 메모리 셀을 적합한 검증 레벨보다 높은 값으로 다시 적절히 프로그래밍한다. 이것은 상기 프로그램 전압 신호를 자신의 초기값으로 재설정하여 이를 다시 인가함으로써 달성될 수 있다. 일 실시예에서, 상기 프로그램 전압 신호는 노멀 페이지 프로그래밍 시퀀스 시작시 이용되는 초기값 이하의 값으로 재설정된다. 다른 실시예에서, 적당한 프로그램 펄스들을 이미 논의된 방식과 비슷한 방식으로 프로그래밍 시퀀스의 끝에 인가한다. 상기 메모리 셀들에 대한 즉각적인 재프로그래밍(re-programming)이 수행되는게 아니라 상기 메모리 셀들은 상기 시퀀스가 끝날때까지 대기한다. 상기 프로그램 전압 신호는 재설정되지 않고 언급한 바와 같이 지속적으로 증분된다. 상기 셀들의 비트 라인 전압은 상기 시퀀스의 끝에서 적당히 높은 값으로 설정되고, 상기 메모리 셀들은 진행중인(ongoing) 프로그램 전압 신호를 이용하여 적절히(gently) 프로그래밍될 수 있다.
메모리 셀 그룹을 프로그래밍하는 일 실시예에서는, 메모리 셀들이 자신들의 타겟 문턱 전압 레벨에 도달한 것으로 검증되면 록아웃된다. 아직 타겟 문턱 전압 레벨에 도달하지 못한 메모리 셀들에 대해 프로그래밍이 지속되는 동안에 상기 록아웃된 셀들에 대한 추가적인 프로그램이 수행되지 않는다. 모든 메모리 셀들 혹은 소정 개수의 메모리 셀들이 자신들의 타겟 문턱 전압 레벨에 도달하였을 경우, 상기 모든 메모리 셀들에 대하여 검증이 재수행된다. 자신들의 타겟 문턱 전압 레벨 아래로 떨어진 셀들이 있다면, 그 시점에서 이러한 셀들에 대한 추가적인 프로그래밍이 수행될 수 있다. 상기 프로그램 전압은 (과도-프로그래밍을 방지하기 위하여 자신의 시작값 혹은 더 낮은 시작값으로) 재설정되어 이러한 셀들이 자신들의 타겟 문턱 전압 레벨로 다시 적절히 프로그래밍될 수 있다. 대안적으로, 프로그램 전압은 지속적으로 증가할 수 있으며, 추가 프로그래밍이 수행되는 셀들의 비트 라인들에는 소정 전압이 인가될 수 있는바, 이는 상기 셀들에 대한 과도 프로그래밍을 방지하기 위함이다.
상기 예시들은 NAND 타입 플래시 메모리에 대하여 제공된다. 그러나, 본 발명의 원리들은 현재 존재하고 있는 것들 뿐만 아니라 개발중인 새로운 기술을 이용할 것으로 여겨지는 다른 형태의 비휘발성 메모리들에도 적용된다. 일 실시예에서, 여기에 설명된 기술들은 NOR 형태의 메모리에 이용된다. NOR 메모리에서는, 프로그래밍 동안에 채널영역이 부스팅되지 않으므로 프로그래밍 동작 중에 제어 게이트와 플로팅 게이트 사이에서 훨씬 높은 전위가 존재할 수 있다. 일반적인 NOR 플래시 메모리는 핫 전자 주입(hot electron injection)으로 프로그래밍된다. 하이(high) 드레인 전압 및 하이 게이트 전압이 인가된다. 상기 게이트 전압은 NAND 타입의 메모리에 대하여 이전에 설명한 바와 같이 증가한다. 이전에 검증되었지만 이후에 자신의 최종 검증 레벨 아래로 떨어진 NOR 메모리 셀을 검출한 후, 게이트에 인가된 동일한 프로그램 전압을 유지하는 동안에, 약간 더 낮은 드레인 전압이 인가될 수 있다. 상기 낮아진 드레인 전압은 상기 셀이 다시 상기 검증 레벨 이상으로 적절히 프로그래밍될 수 있게 한다. 다른 실시예에서, 상기 프로그램 전압 신호는 사용된 초기값과 같게 또는 더 낮게 리셋되며, 페이지 프로그래밍 시퀀스의 말미(end)에 적용된다.
본 발명은 또한 앞서 언급한 바와 같이 유전체 전하 저장 영역을 이용하는 장치들에도 적용될 수 있다. 이러한 장치들에서, 전자들(electrons)은 도전성 플로팅 게이트로부터 유출되는 것과 비슷한 방식으로 유전체 전하 저장 영역에서 유출될 수 있다. 예를 들어, 상기 언급된 검증 및 프로그래밍 기술들은, 플로팅 게이트 대신에 전하를 저장하기 위한 유전체층을 갖는 NROM 셀들에 적용될 수 있다. 여기에 참조로 인용되는 미국 특허번호 5,768,192와 6,011,725에는 두 개의 실리콘 이산화물층 사이에 개재된 트래핑 유전체층을 갖는 이러한 비휘발성 메모리 셀들에 대하여 설명되어 있다.
상기의 상세 설명은 예시 및 설명을 위한 목적으로 제공된 것으로서 본 발명을 개시된 것으로만 국한되도록 의도된 것은 아니다. 상기의 설명에 근거하여 많은 수정 및 변형들이 가능하며, 개시된 실시예들은 본 발명의 원리 및 실제 적용을 가장 잘 설명하기 위하여 선택된 것들이다. 그러므로 당업자이면 본 발명을 다양한 실시예에서 활용할 수 있을 것이며 고려되는 특정 사용에 적합한 다양한 변형을 꾀할 수 있을 것이다. 본 발명의 범위는 여기에 첨부된 특허청구범위에 의해 한정된다.

Claims (27)

  1. 비휘발성 메모리 프로그래밍 방법으로서,
    비휘발성 저장소자들의 세트를 프로그래밍하는 단계, 상기 세트의 각 비휘발성 저장소자는 하나 이상의 타겟 상태들 중 하나의 타겟 상태로 프로그래밍될 것이며;
    상기 각 비휘발성 저장소자가 프로그래밍될 상기 타겟 상태에 해당하는 각각의 검증 레벨에 도달한 상기 각 비휘발성 저장소자들에 대한 프로그래밍을 금지하는 단계;
    프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨에 도달한 후 프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨 아래로 떨어지는 각 비휘발성 저장소자에 대한 제 1 속도의 프로그래밍을 인에이블하는 단계; 및
    프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨에 도달하지 못한 상기 각 비휘발성 저장소자에 대한 제 2 속도의 프로그래밍을 인에이블하는 단계
    를 포함하는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  2. 제 1 항에 있어서,
    상기 프로그래밍을 금지하는 단계는,
    프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨에 도달한 상기 각 비휘발성 저장소자의 비트 라인에 프로그램 금지 전압을 인가하는 단계를 포함하며,
    상기 제 1 속도의 프로그래밍을 인에이블하는 단계는,
    프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨에 도달한 후 프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨 아래로 떨어지는 상기 각 비휘발성 저장소자의 비트 라인에 제 1 프로그램 인에이블 전압을 인가하는 단계를 포함하며,
    상기 제 2 속도의 프로그래밍을 인에이블링시키는 단계는,
    프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨에 도달하지 못한 상기 각 비휘발성 저장소자의 비트 라인에 제 2 프로그램 인에이블 전압을 인가하는 단계를 포함하며,
    상기 제 2 프로그램 인에이블 전압은 상기 제 1 프로그램 인에이블 전압보다 낮은 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  3. 제 1 항에 있어서,
    상기 세트의 비휘발성 저장소자들 중 기결정된 개수의 비휘발성 저장소자들 각각이, 프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨에 도달한 때에, 상기 프로그래밍이 성공적이라고 검증하는 단계
    를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  4. 제 1 항에 있어서,
    상기 하나 이상의 타겟 상태들은 제 1 타겟 상태 및 제 2 타겟 상태를 적어도 포함하고, 제 1 검증 레벨은 상기 제 1 타겟 상태에 해당하고 제 2 검증 레벨은 상기 제 2 타겟 상태에 해당하며,
    프로그래밍을 금지하는 상기 단계는,
    상기 제 1 타겟 상태로 프로그래밍되며 상기 제 1 검증 레벨에 도달한 비휘발성 저장소자들 각각에 대한 프로그래밍을 금지하는 단계와, 상기 제 2 타겟 상태로 프로그래밍되며 상기 제 2 검증 레벨에 도달한 비휘발성 저장소자들 각각에 대한 프로그래밍을 금지하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  5. 제 1 항에 있어서,
    상기 제 1 속도의 프로그래밍을 인에이블하는 단계는,
    프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨에 도달한 후 프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨 아래로 떨어지는 상기 각각의 비휘발성 저장 소자들을 제외한 상기 세트 내의 모든 비휘발성 저장소자들에 대한 프로그래밍을 완료한 이후에 수행되는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  6. 제 5 항에 있어서,
    상기 프로그래밍을 완료하는 것은,
    상기 각각의 비휘발성 저장소자들을 제외한 상기 세트 내의 모든 비휘발성 저장소자들 중 기결정된 개수의 비휘발성 저장 소자가, 프로그래밍될 상기 타겟 상태에 해당하는 상기 각각의 검증 레벨에 도달했는지를 판단하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  7. 제 1 항에 있어서,
    제 1 속도의 프로그래밍을 인에이블하는 상기 단계는,
    제 1 시간에 서브세트의 비휘발성 저장소자들 각각이, 프로그래밍될 상기 타겟 상태에 해당하는 타겟 문턱 전압 레벨의 문턱 전압을 갖는지 혹은 그 이상의 문턱 전압을 갖는지를 판단하는 단계와;
    이후의 시간에 상기 서브세트의 하나 이상의 비휘발성 저장 소자들 각각이, 프로그래밍될 상기 타겟 상태에 해당하는 상기 타겟 문턱 전압 레벨 아래의 문턱 전압을 갖는지를 판단하는 단계와;
    상기 하나 이상의 비휘발성 저장 소자들에 대해 상기 제 1 속도의 프로그래밍을 인에이블하는 단계
    를 포함하는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  8. 제 7 항에 있어서,
    비휘발성 저장소자들의 세트를 프로그래밍하는 상기 단계는, 일련의 프로그 램 전압 펄스들을 인가하는 것을 포함하며,
    이후의 시간에 판단하는 상기 단계는, 상기 일련의 프로그램 전압 펄스들 중 제 1 전압 펄스를 인가한 후 판단하는 것을 포함하며,
    상기 제 1 속도의 프로그래밍을 인에이블하는 상기 단계는, 상기 제 1 전압 펄스 바로 직후의 다음 전압 펄스에 대해서 상기 하나 이상의 비휘발성 저장소자들에 대한 상기 제 1 속도의 프로그래밍을 인에이블하는 것을 포함하며, 상기 다음 전압 펄스는 상기 제 1 전압 펄스보다 큰 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  9. 제 1 항에 있어서,
    상기 비휘발성 저장소자들의 세트를 프로그래밍하는 단계는,
    데이터의 제 1 페이지를 프로그래밍하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  10. 제 1 항에 있어서,
    상기 비휘발성 저장 소자들의 세트를 프로그래밍하는 단계는,
    데이터의 제 1 페이지 및 데이터의 제 2 페이지를 프로그래밍하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  11. 제 1 항에 있어서,
    상기 세트의 비휘발성 저장소자들은,
    연속하는 비트 라인들에 결합되는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  12. 제 1 항에 있어서,
    상기 세트의 비휘발성 저장 소자들은,
    비트 라인들의 그룹 중에서 하나 걸러 하나씩의 비트라인에 결합되는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  13. 제 1 항에 있어서,
    상기 세트의 비휘발성 저장 소자들은,
    플래시 메모리 장치들인 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  14. 제 1 항에 있어서,
    상기 세트의 비휘발성 저장 소자들은,
    NAND 플래시 메모리 장치들인 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  15. 제 1 항에 있어서,
    상기 세트의 비휘발성 저장 소자들은,
    다중 상태 플래시 메모리 장치들인 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  16. 제 1 항에 있어서,
    상기 세트의 비휘발성 저장 소자들은,
    NOR 플래시 메모리 장치들인 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  17. 제 1 항에 있어서,
    각각의 검증 레벨에 도달한 각 비휘발성 저장소자들에 대한 프로그래밍을 금지하는 상기 단계는,
    프로그래밍될 상기 타겟 상태에 해당하는 각각의 검증 문턱 전압 레벨의 문턱 전압 혹은 그 레벨 이상의 문턱 전압을 갖는 것으로 판단된 각각의 비휘발성 저장 소자들에 대한 프로그래밍을 금지하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  18. 제 1 항에 있어서,
    상기 하나 이상의 타겟 상태는 소거 상태를 포함하며,
    상기 프로그래밍 단계는 상기 소거 상태로 프로그래밍될 각 비휘발성 저장 소자의 프로그래밍을 금지하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 프로그래밍 방법.
  19. 한 세트의 비휘발성 저장소자들과;
    각 비휘발성 저장소자가 하나의 비트 라인과 통신하는 다수의 비트 라인들과;
    상기 세트의 비휘발성 저장 소자들 및 상기 다수의 비트 라인들과 통신하는 관리 회로를 포함하며,
    상기 관리 회로는 상기 세트의 각 비휘발성 저장 소자가 하나 이상의 타겟 상태들 중 하나로 프로그래밍될 과정에서 상기 세트의 비휘발성 저장 소자들을 프로그래밍하고,
    상기 관리 회로는 프로그래밍될 상기 타겟 상태에 해당하는 각 검증 레벨에 도달한 각 비휘발성 저장 소자의 비트 라인에 제 1 전압을 인가하고,
    상기 관리 회로는 프로그래밍될 상기 타겟 상태에 해당하는 각 검증 레벨에 도달한 이후에 더 이상 상기 검증 레벨 이상이 아닌 것으로 판단되는 각 비휘발성 저장 소자들의 비트 라인에 제 2 전압을 인가하며,
    상기 관리 회로는 프로그래밍될 상기 타겟 상태에 해당하는 각 검증 레벨에 도달하지 못한 각 비휘발성 저장 소자들의 비트 라인에 제 3 전압을 인가하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  20. 제 19 항에 있어서,
    상기 관리 회로는,
    프로그래밍될 상기 타겟 상태에 해당하는 각 검증 레벨에 도달한 후 더 이상 상기 검증 레벨 이상이 아닌 것으로 판단되는 각 비휘발성 저장 소자를 제외한 모든 비휘발성 저장 소자의 프로그래밍을 완료한 후 상기 제 2 전압을 인가하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  21. 제 19 항에 있어서,
    상기 관리 회로는 상기 제 1 전압을 인가하여, 프로그래밍될 상기 타겟 상태에 해당하는 각 검증 레벨에 도달한 것으로 판단되는 상기 각각의 비휘발성 저장 소자의 프로그래밍을 금지시키며,
    상기 관리 회로는 상기 제 2 전압을 인가하여, 프로그래밍될 상기 타겟 상태에 해당하는 각 검증 레벨에 도달한 후 더 이상 상기 검증 레벨 이상이 아닌 것으로 판단되는 각 비휘발성 저장 소자의 프로그래밍을 인에이블시키며,
    상기 관리 회로는 상기 제 3 전압을 인가하여, 프로그래밍될 상기 타겟 상태에 해당하는 각 검증 레벨에 도달하지 못한 각 비휘발성 저장 소자의 프로그래밍을 인에이블시키는 것을 특징으로 하는 비휘발성 메모리 시스템.
  22. 제 19 항에 있어서,
    상기 제 2 전압은 상기 제 3 전압보다 크며;
    상기 관리 회로는 상기 제 2 전압을 인가하여, 프로그래밍될 상기 타겟 상태에 해당하는 각 검증 레벨에 도달한 후 더 이상 상기 검증 레벨 이상이 아닌 것으로 판단되는 각 비휘발성 저장 소자에 대한 제 1 속도의 프로그래밍을 인에이블시키며;
    상기 관리 회로는 상기 제 3 전압을 인가하여, 프로그래밍될 상기 타겟 상태에 해당하는 각 검증 레벨에 도달하지 못한 각 비휘발성 저장 소자에 대한 제 2 속도의 프로그래밍을 인에이블시키며,
    상기 제 1 속도는 상기 제 2 속도보다 느린 것을 특징으로 하는 비휘발성 메모리 시스템.
  23. 제 19 항에 있어서,
    상기 제 1 전압은 프로그램 금지 전압이며;
    상기 제 2 전압은 감소된(reduced) 프로그램 인에이블 전압이며,
    상기 제 3 전압은 프로그램 인에이블 전압이며,
    상기 제 3 전압은 제 2 전압보다 낮은 것을 특징으로 하는 비휘발성 메모리 시스템.
  24. 제 19 항에 있어서,
    상기 관리 회로는, 비휘발성 저장 소자들의 상기 세트에 대해 데이터의 제 1 페이지를 프로그래밍하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  25. 제 19 항에 있어서,
    상기 세트의 비휘발성 저장 소자들은, 상기 다수의 비트 라인들 중 연속하는 비트 라인들에 결합되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  26. 제 19 항에 있어서,
    상기 세트의 비휘발성 저장 소자들은, 다중 상태 NAND 플래시 메모리 장치들인 것을 특징으로 하는 비휘발성 메모리 시스템.
  27. 제 19 항에 있어서,
    상기 관리 회로는, 컬럼 제어 회로 및 4 개의 데이터 레지스터들을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
KR1020087018467A 2005-12-29 2006-12-27 비휘발성 메모리 기록 동작에서의 지속적 검증 KR101000546B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/322,011 2005-12-29
US11/322,001 2005-12-29
US11/322,011 US7307887B2 (en) 2005-12-29 2005-12-29 Continued verification in non-volatile memory write operations
US11/322,001 US7352629B2 (en) 2005-12-29 2005-12-29 Systems for continued verification in non-volatile memory write operations

Publications (2)

Publication Number Publication Date
KR20080089459A KR20080089459A (ko) 2008-10-06
KR101000546B1 true KR101000546B1 (ko) 2010-12-14

Family

ID=38002052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087018467A KR101000546B1 (ko) 2005-12-29 2006-12-27 비휘발성 메모리 기록 동작에서의 지속적 검증

Country Status (7)

Country Link
EP (1) EP1971984B1 (ko)
JP (1) JP2009522703A (ko)
KR (1) KR101000546B1 (ko)
AT (1) ATE500591T1 (ko)
DE (1) DE602006020494D1 (ko)
TW (1) TWI315875B (ko)
WO (1) WO2007079062A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210110375A (ko) * 2019-03-26 2021-09-07 양쯔 메모리 테크놀로지스 씨오., 엘티디. 다중 비트라인 바이어스 전압을 인가하여 비휘발성 메모리 장치에서의 프로그래밍을 위한 비휘발성 메모리 장치 및 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITRM20080114A1 (it) * 2008-02-29 2009-09-01 Micron Technology Inc Compensazione della perdita di carica durante la programmazione di un dispositivo di memoria.
JP2010211883A (ja) * 2009-03-11 2010-09-24 Toshiba Corp 不揮発性半導体記憶装置
US8248850B2 (en) * 2010-01-28 2012-08-21 Sandisk Technologies Inc. Data recovery for non-volatile memory based on count of data state-specific fails
JP2011204356A (ja) * 2011-07-19 2011-10-13 Toshiba Corp 不揮発性半導体記憶装置
JP5868381B2 (ja) 2013-12-03 2016-02-24 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR101574781B1 (ko) 2014-04-09 2015-12-04 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
US9165659B1 (en) 2014-05-08 2015-10-20 Sandisk Technologies Inc. Efficient reprogramming method for tightening a threshold voltage distribution in a memory device
JP2017054567A (ja) * 2015-09-10 2017-03-16 株式会社東芝 半導体記憶装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040017722A1 (en) 2000-11-15 2004-01-29 Stmicroelectronics Sa Page-erasable flash memory
WO2005073981A1 (en) * 2004-01-21 2005-08-11 Sandisk Corporation Programming non-volatile memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3796851B2 (ja) * 1996-10-21 2006-07-12 ソニー株式会社 不揮発性半導体記憶装置
JP3898349B2 (ja) * 1997-07-29 2007-03-28 株式会社東芝 半導体記憶装置
KR100255957B1 (ko) * 1997-07-29 2000-05-01 윤종용 전기적으로 소거 및 프로그램 가능한 메모리 셀들을 구비한반도체 메모리 장치
JP2000048582A (ja) * 1998-07-28 2000-02-18 Toshiba Corp 半導体記憶装置
US7042770B2 (en) * 2001-07-23 2006-05-09 Samsung Electronics Co., Ltd. Memory devices with page buffer having dual registers and method of using the same
US6621741B2 (en) * 2002-01-30 2003-09-16 Fujitsu Limited System for programming verification
US6781884B2 (en) * 2002-03-11 2004-08-24 Fujitsu Limited System for setting memory voltage threshold
US7020017B2 (en) * 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040017722A1 (en) 2000-11-15 2004-01-29 Stmicroelectronics Sa Page-erasable flash memory
WO2005073981A1 (en) * 2004-01-21 2005-08-11 Sandisk Corporation Programming non-volatile memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210110375A (ko) * 2019-03-26 2021-09-07 양쯔 메모리 테크놀로지스 씨오., 엘티디. 다중 비트라인 바이어스 전압을 인가하여 비휘발성 메모리 장치에서의 프로그래밍을 위한 비휘발성 메모리 장치 및 방법
KR102629318B1 (ko) * 2019-03-26 2024-01-24 양쯔 메모리 테크놀로지스 씨오., 엘티디. 다중 비트라인 바이어스 전압을 인가하여 비휘발성 메모리 장치에서의 프로그래밍을 위한 비휘발성 메모리 장치 및 방법

Also Published As

Publication number Publication date
DE602006020494D1 (de) 2011-04-14
WO2007079062A1 (en) 2007-07-12
EP1971984A1 (en) 2008-09-24
JP2009522703A (ja) 2009-06-11
TW200746153A (en) 2007-12-16
KR20080089459A (ko) 2008-10-06
EP1971984B1 (en) 2011-03-02
TWI315875B (en) 2009-10-11
ATE500591T1 (de) 2011-03-15

Similar Documents

Publication Publication Date Title
US7307887B2 (en) Continued verification in non-volatile memory write operations
EP1886319B1 (en) Starting program voltage shift with cycling of non-volatile memory
KR101736414B1 (ko) 다른 메모리 셀들로부터의 영향을 감소시키는 것을 포함하는 비휘발성 저장 소자의 프로그래밍
KR100751579B1 (ko) 비휘발성 메모리 프로그래밍
EP1812932B1 (en) High speed programming system with reduced over programming
KR100916679B1 (ko) 복수-레벨 셀 플래시 메모리에서 더 높은 레벨 상태들의 더빠른 프로그래밍
KR100952235B1 (ko) 비휘발성 메모리에서 프로그램 금지 방안들의 선택적인적용
KR101163162B1 (ko) 비휘발성 저장소자를 위한 가변 프로그램
US7352629B2 (en) Systems for continued verification in non-volatile memory write operations
KR101048834B1 (ko) 프로그래밍 중의 커플링 보상
KR101073116B1 (ko) 커플링을 사용하는 이웃 감지에 기반한 커플링 보상
KR101000546B1 (ko) 비휘발성 메모리 기록 동작에서의 지속적 검증
EP1946323B1 (en) Method for programming of multi-state non-volatile memory using smart verify
KR20120062734A (ko) 패스 전압 디스터브 및 플로팅 게이트 제어 게이트간 누설이 감소되는 메모리 프로그래밍
KR20120039562A (ko) 비휘발성 저장 소자에 대한 프로그래밍 완료의 검출
WO2011127195A1 (en) Saw-shaped multi-pulse programming for program noise reduction in memory
KR101012130B1 (ko) 프로그램 혼란의 영향을 감소시키는 방법
KR100984563B1 (ko) 프로그램 혼란이 감소된 nand 타입 비휘발성 메모리의최종-최초 모드 및 프로그래밍 방법
KR100966358B1 (ko) 비트라인 커플링을 나타내는 비휘발성 메모리를 제어프로그래밍하는 방법
KR100948200B1 (ko) 비휘발성 저장 장치에서 판독 장애 저감

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
FPAY Annual fee payment

Payment date: 20131119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141120

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee