KR101013200B1 - 비휘발성 메모리 프로그램 동작에서의 가변 프로그램 전압 증분값 - Google Patents

비휘발성 메모리 프로그램 동작에서의 가변 프로그램 전압 증분값 Download PDF

Info

Publication number
KR101013200B1
KR101013200B1 KR1020097009661A KR20097009661A KR101013200B1 KR 101013200 B1 KR101013200 B1 KR 101013200B1 KR 1020097009661 A KR1020097009661 A KR 1020097009661A KR 20097009661 A KR20097009661 A KR 20097009661A KR 101013200 B1 KR101013200 B1 KR 101013200B1
Authority
KR
South Korea
Prior art keywords
program voltage
programming
state
voltage pulses
data
Prior art date
Application number
KR1020097009661A
Other languages
English (en)
Other versions
KR20090089310A (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/548,264 external-priority patent/US7474561B2/en
Priority claimed from US11/548,267 external-priority patent/US7450426B2/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20090089310A publication Critical patent/KR20090089310A/ko
Application granted granted Critical
Publication of KR101013200B1 publication Critical patent/KR101013200B1/ko

Links

Images

Classifications

    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching 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/30Power supply 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
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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

Landscapes

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

Abstract

복수 상태의 비휘발성 플래시 메모리 디바이스들에서의 가장 낮은 프로그래밍 상태에서는, 다른 상태와 비교하여, 비트 라인 대 비트 라인 용량성 전하 커플링의 레벨이 증가될 수 있다. 전압 펄스들을 증가시킴으로서 메모리 셀들에 인가되는 프로그램 전압은, 가장 낮은 프로그래밍가능 상태에 메모리 셀을 프로그래밍할 때 더 작은 값을 사용하여 증분될 수 있다. 인가된 전압에서의 더 작은 증분치들로 인해, 정밀도가 더 커지고 임계 전압 분포의 폭이 더 좁아져, 이러한 상태에 프로그래밍되는 셀들이 겪는 부적절한 전하 커플링이 보상된다. 일부 실시예들에서, 더 작은 증분값은 아래쪽 페이지로부터 위쪽 페이지 프로그래밍으로의 전환시 사용될 수 있다. 셀들이 데이터 로직 페이지 두 개를 저장하는 물리적 페이지를 형성하고, 하나의 로직 페이지에 대한 프로그래밍이 다른 로직 페이지에 대한 데이터의 수신 전에 시작하는 파이프라인형 프로그래밍 아키텍처에서, 증분값은, 제 1 로직 페이지를 프로그래밍하는 것으로부터 양쪽 페이지를 동시에 프로그래밍하는 것으로 전환시, 증가될 수 있다.

Description

비휘발성 메모리 프로그램 동작에서의 가변 프로그램 전압 증분값{VARIABLE PROGRAM VOLTAGE INCREMENT VALUES IN NON-VOLATILE MEMORY PROGRAM OPERATIONS}
본 개시에 따른 실시예들은 비휘발성 메모리를 프로그래밍하는 것에 관한 것이다.
반도체 메모리 디바이스는 다양한 전자 디바이스에서 점점 더 많이 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리는 셀률러 전화기, 디지털 카메라, PDA(Personal Digital Assistants), 휴대용 컴퓨팅 디바이스, 비휴대용 컴퓨팅 디바이스 등에서 사용된다. 플래시 EEPROM(Electrical Erasable Programmable Read Only Memory)을 포함하는 EEPROM, 그리고 EPROM(Electronically Programmable Read Only Memory)이 가장 많이 사용되는 비휘발성 반도체 메모리들 중 하나이다.
플래시 메모리 시스템의 한 예는 NAND 구조를 사용하는 것인데, 이 구조는 복수의 트랜지스터들을 두 개의 선택 게이트 사이에 삽입(sandwich)시켜 직렬로 연결하는 것을 포함한다. 직렬로 연결된 트랜지스터들 및 선택 게이트는 NAND 스트링으로 언급된다. 도 1은 하나의 NAND 스트링을 나타내는 상부도이다. 도 2는 그 등가 회로를 나타낸다. 도 1 및 도 2에 도시된 NAND 스트링은 제 1 선택 게이트(120)와 제 2 선택 게이트(122) 사이에 삽입되어 직렬로 연결된 네 개의 트랜지스 터(100, 102, 104 및 106)를 포함한다. 선택 게이트(120)는 NAND 스트링을 비트 라인(126)에 연결한다. 선택 게이트(122)는 NAND 스트링을 소스 라인(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)에 연결된다.
유의할 것으로, 비록 도 1 및 도 2가 NAND 스트링에서의 네 개의 메모리 셀을 나타내고 있지만, 이러한 네 개의 트랜지스터를 사용하는 것은 단지 예로서 제시되는 것이다. NAND 스트링은 네 개의 메모리 셀들 보다 더 적거나 혹은 더 많은 개수의 메모리 셀들을 가질 수 있다. 예를 들어, 일부 NAND 스트링은 여덟 개, 16개, 32개 등의 메모리 셀들을 포함할 수 있다. 본 명세서에서 설명되는 것은 NAND 스트링 내의 임의의 특정 개수의 메모리 셀들에만 한정되는 것이 아니다.
NAND 구조를 사용하는 플래시 메모리 시스템에 대한 전형적인 아키텍처는 몇 개의 NAND 스트링을 포함한다. 예를 들어, 도 3은 많은 매우 많은 NAND 스트링을 갖는 메모리 어레이 중 세 개의 NAND 스트링(202, 204, 및 206)을 나타낸다. 도 3의 NAND 스트링 각각은 두 개의 선택 트랜지스터 혹은 게이트 및 네 개의 메모리 셀들을 포함한다. 예를 들어, NAND 스트링(202)은 선택 트랜지스터(220 및 230) 및 메모리 셀(222, 224, 226 및 228)을 포함한다. NAND 스트링(204)은 선택 트랜지스터(240 및 250) 및 메모리 셀(242, 244, 246 및 248)을 포함한다. 각각의 스트링은 하나의 선택 게이트(예를 들어, 선택 게이트(230) 및 선택 게이트(250))에 의해 소스 라인에 연결된다. 선택 라인(SGS)은 소스측 선택 게이트를 제어하기 위해 사용된다. 다양한 NAND 스트링이 선택 게이트(220, 240 등)에 의해 각각의 비트 라인에 연결되고, 이러한 선택 게이트는 선택 라인(SGD)에 의해 제어된다. 다른 실시예에서, 선택 라인은 반드시 공통일 필요는 없다. 워드 라인(WL3)이 메모리 셀(222) 및 메모리 셀(242)에 대한 제어 게이트에 연결된다. 워드 라인(WL2)이 메모리 셀(224) 및 메모리 셀(244)에 대한 제어 게이트에 연결된다. 워드 라인(WL1)이 메모리 셀(226) 및 메모리 셀(246)에 대한 제어 게이트에 연결된다. 워드 라인(WL0)이 메모리 셀(228) 및 메모리 셀(248)에 대한 제어 게이트에 연결된다. 도시된 바와 같이, 비트 라인 및 각각의 NAND 스트링은 메모리 셀들의 어레이의 컬럼(column, 열)을 구성한다. 워드 라인들(WL3, WL2, WLl 및 WLO)은 어레이의 로우(row, 행)를 구성한다. 각각의 워드 라인은 각각의 메모리 셀의 제어 게이트를 행으로 연결한다. 예를 들어, 워드 라인(WL2)은 메모리 셀(224, 244 및 252)에 대한 제어 게이트들에 연결된다.
각각의 메모리 셀은 데이터를 (아날로그 형태로 혹은 디지털 형태로) 저장할 수 있다. 한 비트의 디지털 데이트를 저장하는 경우, 메모리 셀의 가능한 임계 전압의 범위는 두 개의 범위로 나누어지고, 이것은 로직 데이터 "1" 및 "0"으로 할당된다. NAND 타입 플래시 메모리의 일 예에서, 임계 전압은 메모리 셀이 소거된 이후 음의 값이고, 로직 "1"로서 정의된다. 프로그램 동작 이후의 임계 전압은 양의 값이고 그리고 로직 "0"으로서 정의된다. 임계 전압이 음의 값이고 제어 게이트에 0 볼트를 인가함으로써 판독이 시도될 때, 메모리 셀은 로직 일이 저장되고 있음을 표시하기 위해 턴온된다. 임계 전압이 양의 값이고 제어 게이트에 0 볼트를 인가함으로써 판독 동작이 시도될 때, 메모리 셀은 턴온되지 않는데, 이것은 로직 제로(0)가 저장되었음을 표시한다. 메모리 셀은 또한 복수 레벨의 정보를 저장할 수 있는데, 예를 들어, 복수 비트의 디지털 데이터를 저장할 수 있다. 복수 레벨의 데이터를 저장하는 경우에, 가능한 임게 전압의 범위는 데이터 레벨의 개수로 나누어진다. 예를 들어, 만약 네 레벨의 정보가 저장된다면, 데이터 값 "11", "10", "01", 및 "00"에 할당되는 네 개의 임계 전압 범위가 있을 수 있다. NAND 타입 메모리의 일 예에서, 소거 동작 이후의 임계 전압은 음의 값이고, "11"로서 정의된다. 세 개의 서로 다른 양의 임계 전압이 "10", "01", 및 "00" 상태에 대해 사용된다.
NAND 타입 플래시 메모리 및 그 동작에 대한 관련 예들이 다음의 미국 특허/특허출원, 즉, 미국 특허번호 제5,570,315호, 미국 특허번호 제5,774,397호, 미국 특허번호 제6,046,935호, 미국 특허번호 제6,456,528호, 및 미국 특허출원번호 제 09/893,277호(공개번호 US2003/0002348)에서 제공되는데, 이러한 문헌들 모두는 참조로 본 명세서에 통합된다.
EEPROM 또는 플래시 메모리 디바이스를 프로그래밍할 때, 전형적으로 제어 게이트에 프로그램 전압이 인가되고, 그리고 비트 라인은 접지된다. 채널로부터의 전자들이 플로팅 게이트에 주입된다. 전자들이 플로팅 게이트에 축적될 때, 플로팅 게이트는 음으로 충전되고, 그리고 메모리 셀의 임계 전압은 상승되어 메모리 셀은 프로그래밍 상태에 있게 된다. 플로팅 게이트 전하 및 셀의 임계 전압은 저장된 데이터에 대응하는 특정 상태를 나타낼 수 있다. 프로그래밍에 대한 더 많은 정보는, 미국 특허출원번호 제10/379,608호(발명의 명칭: "Self Boosting Technique", 2003.03.05. 출원), 미국 특허출원번호 제10/629,068호(발명의 명칭: "Detecting Over Programmed Memory", 2003.07.29. 출원)에서 발견될 수 있으며, 이러한 특허출원 문헌들은 그 전체가 참조로 본 명세서에 통합된다.
인접 플로팅 게이트에 저장된 전하에 근거하는 전기장의 커플링 때문에, 플로팅 게이트 상에 저장된 겉보기 전하(apparent charge)에서의 시프트(shift)가 일어날 수 있다. 이러한 플로팅 게이팅 대 플로팅 게이트 커플링 현상은 미국 특허 제5,867,429호에 설명되어 있으며, 이것은 그 전체가 참조로 본 명세서 통합된다. 인접하는 플로팅 게이트에서 목표 플로팅 게이트에는 동일 비트 라인 상에 있는 이웃하는 플로팅 게이트들, 동일 워드 라인 상의 이웃하는 플로팅 게이트들, 혹은 이웃하는 비트 라인과 이웃하는 워드 라인 양쪽 모두 상에 있는, 따라서 대각선 방향에서 서로 맞은 편에 있는 이웃하는 플로팅 게이트들이 포함될 수 있다.
플로팅 게이트 대 플로팅 게이트 커플링 현상은, 반드시 그런 것은 아니지만, 서로 다른 시간에 프로그래밍되는 인접하는 메모리 셀들의 세트들 간에 가장 두드러지게 일어난다. 예를 들어, 제 1 메모리 셀이, 데이터 세트에 대응하는 플로팅 게이트에 전하 레벨을 더하기 위해 프로그래밍될 수 있다. 후속적으로, 하나 또는 그 이상의 인접하는 메모리 셀들이, 데이터 세트에 대응하는 그들의 플로팅 게이트들에 전하 레벨을 더하기 위해 프로그래밍된다. 하나 또는 그 이상의 인접하는 메모리 셀들이 프로그래밍 된 이후에, 제 1 메모리 셀로부터 판독된 전하 레벨은 프로그래밍될 때와 다르게 보일 수 있는 데, 왜냐하면 인접하는 메모리 셀(들) 상의 전하의 영향이 제 1 메모리 셀에 커플링되기 때문이다. 인접하는 메모리 셀들로부터의 커플링은, 선택된 메모리 셀로부터 판독되는 겉보기 전하 레벨을, 저장된 데이터의 오판독을 일으키기에 충분한 양만큼 시프트시킬 수 있다.
플로팅 게이트 대 플로팅 게이트 커플링 효과는 복수 상태 디바이스에 대해 매우 중요한데, 왜냐하면 복수 상태 디바이스에서, 허용된 임계 전압 범위 및 금지된 범위(개별 메모리 상태를 나타내는 두 개의 개별 임계 전압 범위 사이에 있는 범위)는 바이너리 디바이스에서 보다 더 좁기 때문이다. 따라서, 플로팅 게이트 대 플로팅 게이트 커플링으로 인해, 허용된 임계 전압 범위로부터 금지 범위로 메모리 셀들이 시프트될 수 있다.
메모리 셀의 크기가 계속 작아짐에 따라, 임계 전압의 자연적 프로그래밍 및 소거 분포는, 단채널 효과, 더 큰 옥사이드 두께/커플링 비율 변화 및 더 큰 채널 도펀트 변동으로 인해 증가할 것으로 예측되며, 이것은 인접 상태들 간의 가용한 분리를 감소시킨다. 이러한 영향은 단지 두 개의 상태만을 사용하는 바이너리 메모리보다 복수 상태 메모리에 있어 훨씬 더 크다. 더욱이, 워드 라인들 간의 공간 및 비트 라인들 간의 공간의 감소는 또한 인접하는 플로팅 게이트들 간의 커플링을 증가시킬 수 있다.
복수 상태의 비휘발성 플래시 메모리 디바이스들에서의 가장 낮은 프로그래밍 상태에서는, 다른 상태들과 비교될 때, 비트 라인 대 비트 라인 용량성 전하 커플링의 레벨이 증가될 수 있다. 증가하는 전압 펄스들로서 메모리 셀들에 인가되는 프로그램 전압은, 가장 낮은 프로그래밍가능 레벨 혹은 상태에 메모리 셀들을 프로그래밍할 때, 더 작은 값들을 사용하여 증분될 수 있다. 인가된 전압에서의 더 작은 증분은 더 큰 정밀도 및 더 좁은 임계 전압 분포를 가능하게 하여, 이러한 상태에 프로그래밍되는 셀들이 겪게되는 불균형 전하 커플링이 보상될 수 있다. 일 실시예에서, 더 작은 증분값들이 제 1 로직 페이지를 프로그래밍할 때 사용될 수 있고, 그리고 더 큰 증분값들이 다른 페이지를 프로그래밍할 때 사용될 수 있다. 물리적 페이지를 형성하는 셀들이 데이터 로직 페이지 두 개를 저장하고, 그리고 하나의 로직 페이지에 대한 프로그래밍이 다른 로직 페이지에 대한 데이터 수신 전에 시작하는 파이프라인형 프로그래밍 아키텍처(pipelined programming architecture)에서, 증분값은 제 1 로직 페이지 프로그래밍으로부터 양쪽 페이지 동시 프로그래밍으로의 전환시 증가될 수 있다.
일 실시예에서, 비휘발성 저장소를 프로그래밍하는 방법이 제공되고, 이러한 방법은, 복수 상태의 비휘발성 저장 소자들의 세트에 데이터를 프로그래밍하도록 요구하는 요청을 수신하는 것과, 상기 비휘발성 저장 소자들에 상기 데이터를 프로그래밍하기 위해 상기 비휘발성 저장 소자들의 세트에 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 것과, 그리고 상기 데이터의 프로그래밍을 완료하기 위해 상기 비휘발성 저장 소자들의 세트에 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 것을 포함한다. 상기 사전에 결정된 개수의 프로그램 전압 펄스들을 상기 세트에 인가하는 것은 상기 프로그램 전압 펄스들 각각의 크기를 상기 사전에 결정된 개수에 도달할 때까지 제 1 증분값만큼 증가시키는 것을 포함할 수 있다. 상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 상기 세트에 인가하는 것은 상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들 각각의 크기를 제 2 증분값만큼 증가시키는 것을 포함할 수 있다.
일 실시예에서, 비휘발성 저장소를 프로그래밍하는 방법이 제공된다. 저장을 위해 비휘발성 저장소의 물리적 페이지에 지정된 데이터의 제 1 세트가 수신된다. 데이터의 제 1 세트는 물리적 페이지에 의해 저장가능한 최대 데이터량 모두 보다 작은 데이터량을 포함할 수 있다. 일 실시예에서, 데이터의 제 1 세트는 데이터의 아래쪽 로직 페이지를 형성한다. 물리적 페이지에 데이터를 프로그래밍할 때 제 1 증분값만큼 증가된 피크값을 갖는 프로그램 전압 신호를 사용하여 데이터를 프로그래밍함으로써, 데이터의 제 1 세트가 물리적 페이지에 프로그래밍된다. 저장을 위해 물리적 페이지에 또한 지정되는 데이터의 제 2 세트가 수신된다. 데이터의 제 2 세트는, 물리적 페이지에 대한 데이터의 제 1 세트의 프로그래밍 시작 이후, 그리고 물리적 페이지에 대한 데이터의 제 1 세트의 프로그래밍 종료 이전에, 수신될 수 있다. 데이터의 제 1 세트의 프로그래밍의 완료 이전에 데이터의 제 2 세트를 수신하는 것에 응답하여, 데이터의 제 1 세트의 프로그래밍은 정지되거나 중단된다. 데이터의 제 1 페이지의 프로그래밍 중단 이후에, 데이터의 제 1 세트 및 데이터의 제 2 세트가 물리적 페이지에 동시에 프로그래밍된다. 동시 프로그래밍은, 물리적 페이지에 제 1 데이터 및 제 2 데이터를 동시에 프로그래밍하는 동안 제 2 증분값만큼 증가된 피크값을 갖는 프로그램 전압 신호를 사용하여 제 1 데이터 및 제 2 데이터를 프로그래밍하는 것을 포함할 수 있다.
일 실시예에서, 복수의 저장 소자들과, 상기 저장 소자들과 통신하는 복수의 데이터 버퍼들과, 그리고 상기 버퍼들 및 저장 소자들과 통신하는 관리 회로를 포함하는 비휘발성 메모리 시스템이 제공된다. 상기 관리 회로는 저장 소자들에 저장될 제 1 데이터를 수신하고, 그 응답으로, 상기 버퍼들의 제 1 세트에 상기 제 1 데이터를 제공한다. 상기 관리 회로는 제 1 증분 값 만큼 증가된 복수의 프로그램 전압 펄스들을 사용하여 상기 제 1 데이터를 상기 저장 소자들에 프로그래밍한다. 관리 회로는, 제 1 데이터를 프로그래밍하는 동안, 저장 소자들에 저장될 제 2 데이터를 수신하고, 그리고 이에 응답하여 제 2 데이터를 버퍼들의 제 2 세트에 제공한다. 관리 회로는 제 1 데이터를 저장 소자들에 프로그래밍하는 것을 멈추고, 그리고 제 2 증분값만큼 증가된 복수의 프로그램 전압 펄스들을 사용하여 저장 소자들에 제 1 데이터 및 제 2 데이터를 동시에 프로그래밍하기 시작한다.
본 개시되는 기술의 실시예들의 다른 특징, 실시형태, 및 목적은 본 명세서의 설명, 도면, 특허청구범위을 살펴봄으로써 알 수 있다.
도 1은 NAND 스트링의 상부도이다.
도 2는 도 1의 NAND 스트링의 등가 회로도이다.
도 3은 세 개의 NAND 스트링을 나타낸 회로도이다.
도 4는 비휘발성 메모리 시스템의 일 실시예를 나타낸 블럭도이다.
도 5는 메모리 어레이의 예시적 구성을 나타낸 도면이다.
도 6은 예시적인 프로그램 전압 신호를 나타낸 도면이다.
도 7은 예시적인 임계 전압 분포 세트 및 풀 시퀀스 프로그래밍 프로세스(full sequence programming process)를 나타낸 도면이다.
도 8은 예시적인 임계 전압 분포 세트 및 2-패스 프로그래밍 프로세스(two-pass programming process)를 나타낸 도면이다.
도 9는 예시적인 비휘발성 메모리 시스템에서의 용량성 전하 커플링의 영향을 나타낸 표이다.
도 10은 개별 시간 간격 동안 아래쪽 페이지 데이터 및 위쪽 페이지 데이터를 프로그래밍하기 위한 타이밍도이다.
도 11은 도 10에 도시된 바와 같이 데이터의 아래쪽 페이지 및 위쪽 페이지를 프로그래밍하기 위해 사용될 수 있는 일 실시예에 따른 프로그램 전압 신호이다.
도 12는 아래쪽 페이지 데이터를 프로그래밍 하고, 그 다음에 위쪽 페이지 데이터가 수신될 때 아래쪽 페이지 데이터와 위쪽 페이지 데이터를 동시에 프로그래밍하기 위한 타이밍도이다.
도 13은 도 12에 도시된 바와 같은 데이터의 아래쪽 페이지 및 위쪽 페이지를 프로그래밍하기 위해 사용될 수 있는 일 실시예에 따른 프로그램 전압 신호이다.
도 14는 일 실시예에 따른 비휘발성 메모리를 프로그래밍하는 방법을 나타낸 흐름도이다.
도 15는 현재 프로그래밍되는 메모리 셀들의 세트에 대한 추가적인 데이터가 수신될 때 프로그램 컴맨드를 설정하는 방법을 나타낸 흐름도이다.
도 16은 아래쪽 페이지 프로그래밍이 완료될 때 더 큰 증분값들을 사용하여 풀 시퀀스 혹은 위쪽 페이지 프로그래밍으로 전이하는 방법을 나타낸 흐름도이다.
도 17A, 17B, 및 17C는 비정밀/정밀 프로그래밍(coarse/fine programming)의 일부로서 수행되는 프로그래밍 프로세스의 일 실시예를 나타낸다.
도 18A, 18B, 및 18C는 비정밀/정밀 프로그래밍의 일부로서 수행되는 프로그래밍 프로세스의 일 실시예를 나타낸다.
도 4는 개시된 본 발명의 하나 또는 그 이상의 실시예를 구현하기 위해 사용될 수 있는 플래시 메모리 시스템의 일 실시예를 나타낸 블럭도이다. 다른 시스템 및 구현예가 사용될 수 있다. 메모리 셀 어레이(302)는 컬럼 제어 회로(304), 로우 제어 회로(306), c-소스 제어 회로(310) 및 p-웰 제어 회로(308)에 의해 제어된다. 컬럼 제어 회로(304)는 메모리 셀 어레이(302)의 비트 라인에 연결되어, 메모리 셀들 내에 저장된 데이터를 판독하고, 프로그램 동작 동안 메모리 셀들의 상태를 결정하고, 그리고 비트 라인의 포텐셜 레벨을 제어하여 프로그래밍 및 소거를 일으키거나 혹은 금지시킨다. 로우 제어 회로(306)가 워드 라인들에 연결되어, 위드 라인들 중 하나를 선택하고, 판독 전압을 인가하고, 컬럼 제어 회로(304)에 의해 제어되는 비트 라인 퍼텐셜 레벨과 결합된 프로그램 전압을 인가하고, 그리고 소거 전압을 인가한다. C-소스 제어 회로(310)는 메모리 셀들에 연결된 공통 소스 라인(도 5에서 "C-소스"로 명명됨)을 제어한다. 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(Personal Digital Assistant) 등과 같은 호스트 시스템에 연결되거나 혹은 연결가능하다. 제어기는 메모리 어레이(302)에 데이터를 저장하거나 혹은 메모리 어레이(302)로부터 데이터를 판독하기 위한 컴맨드, 및 이러한 데이터를 제공하거나 수신하기 위한 컴맨드를 개시시키는 호스트와 통신한다. 제어기(318)는, 이러한 컴맨드를, 제어 회로(315)의 일부인 컴맨드 회로(314)에 의해 해석 및 실행될 수 있는 컴맨드 신호로 변환한다. 컴맨드 회로(314)는 상태 머신(316)과 통신한다. 제어기(318)는, 전형적으로, 메모리 어레이에 기입되는 혹은 메모리 어레이로부터 판독되는 사용자 데이터를 위한 버퍼 메모리를 포함한다.
하나의 예시적 메모리 시스템은 제어기(318)를 포함하는 하나의 집적 회로와, 그리고 그 각각이 메모리 어레이와 그 관련 제어, 입력/출력 및 상태 머신 회로를 포함하는 하나 또는 그 이상의 집적 회로 칩들을 포함한다. 하나 또는 그 이상의 집적 회로 칩들 상에 시스템의 제어기 회로 및 메모리 어레이를 함께 통합하려는 경향이 있다. 메모리 시스템은 호스트 시스템의 일부로서 임베드될 수 있거나 혹은 호스트 시스템에 착탈가능하게 삽입되는 메모리 카드(혹은, 다른 패키지)에 포함될 수 있다. 이러한 카드는 (예를 들어, 제어기를 포함하는) 전체 메모리 시스템을 포함할 수 있거나, 또는 관련 주변 회로를 갖는 메모리 어레이(들)만을 포함할 수 있다(이 경우 제어기 혹은 제어 기능은 호스트에 임베드됨). 따라서, 제어기는 호스트에 임베드될 수 있거나, 또는 착탈가능한 메모리 시스템 내에 포함될 수 있다.
도 5를 참조하면, 메모리 셀 어레이(302)의 예시적인 구조가 설명된다. 일 예로, 1,024개의 블럭으로 나누어진 NAND 플래시 EEPROM이 설명된다. 각각의 블럭에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에서, 블럭은 동시에 소거되는 셀의 최소 단위이다. 이러한 예에서의 각각의 블럭에는, 8,512 개의 컬럼이 존재한다. 각각의 블럭은 전형적으로 프로그래밍의 단위일 수 있는 여러 페이지들로 나누어진다. 프로그래밍을 위한 다른 데이터 단위가 또한 가능하고 고려될 수 있다. 일 실시예에서, 개별 페이지는 세그먼트들로 나누어질 수 있고, 그리고 세그먼트들은 기본적인 프로그래밍 동작으로 한번에 기입되는 최소 개수의 셀들을 포함할 수 있다. 하나 또는 그 이상의 데이터 페이지는 전형적으로 메모리 셀들의 하나의 로우(row)에 저장된다.
도 5의 예의 각각의 블럭에는, 짝수 컬럼 및 홀수 컬럼으로 나누어지는 8,512 개의 컬럼이 있다. 비트 라인들은 짝수 비트 라인(BLe) 및 홀수 비트 라인(BLo)으로 나누어진다. 홀수/짝수 비트 라인 아키텍처에서, 공통 워드 라인을 따라 있으며 홀수 비트 라인에 연결된 메모리 셀들은 한번에 프로그래밍되고, 공통 워드 라인을 따라 있으며 짝수 비트 라인에 연결된 메모리 셀들은 또 다른 한번에 프로그래밍된다. 도 5는 NAND 스트링을 형성하기 위해 직렬로 연결된 네 개의 메모리 셀들을 보여준다. 네 개의 셀들이 각각의 NAND 스트링에 포함되는 것으로 도시되었지만, 네 개보다 많거나 적은 개수(예를 들어, 16, 32, 혹은 또 다른 수)가 사용될 수 있다. NAND 스트링의 한 단자는 (선택 게이트 드레인 라인(SGD)에 연결된) 제 1 선택 트랜지스터 혹은 게이트를 통해 대응하는 비트 라인에 연결되고, 그리고 또 다른 단자는 (선택 게이트 소스 라인(SGS)에 연결된) 제 2 선택 트랜지스터를 통해 c-소스에 연결된다.
다른 실시예에서, 비트 라인은 홀수 비트 라인 및 짝수 비트 라인으로 나누어지지 않는다. 이러한 아키텍처들은 일반적으로 ABL(All Bit Line) 아키텍처로서 언급된다. ABL 아키텍처에서, 블럭의 비트 라인들 모두는 판독 및 프로그래밍 동작 동안 동시에 선택된다. 공통 워드 라인을 따라 있고 임의의 비트 라인에 연결된 메모리 셀들은 동시에 프로그래밍된다.
일 실시예의 판독 및 프로그래밍 동작 동안, 4,256 개의 메모리 셀들이 동시에 선택된다. 선택된 메모리 셀들은 동일한 워드 라인(예를 들어, WL2-i)을 가지며, 동일한 종류의 비트 라인(예를 들어, 짝수 비트 라인)을 갖는다. 따라서, 532 바이트의 데이터가 동시에 판독될 수 있거나 혹은 프로그래밍될 수 있다. 동시에 판독될 수 있가나 혹은 프로그래밍되는 이러한 532 바이트의 데이터가 임의의 로직 페이지를 형성한다. 따라서, 이러한 예에서, 하나의 블럭은 적어도 여덟 개의 페이지를 저장할 수 있다. 각각의 메모리 셀이 두 비트의 데이터를 저장할 때(예를 들어, 복수 레벨의 셀), 하나의 블럭은 16 페이지를 저장한다. 다른 크기의 블럭 및 페이지가 또한 여러 실시예들과 함께 사용될 수 있다. 추가적으로, 도 4 및 도 5의 아키텍처와 다른 아키텍처가 여러 실시예들을 구현하기 위해 사용될 수 있다.
메모리 셀들은, p-웰을 소거 전압(예를 들어, 20 볼트)까지 상승시키고, 선택된 블럭의 워드 라인을 접지시킴으로써 소거된다. 소스 및 비트 라인은 플로팅 상태이다. 소거는 전체 메모리 어레이, 개별 블럭, 혹은 다른 셀 단위로 수행될 수 있다. 플로팅 게이트로부터 p-웰 영역으로 전자들이 전달되고, 그리고 임계 전압은 음의 값(일 실시예에서)이 된다.
판독 및 검증 동작에서, 선택된 블럭의 선택 게이트가 하나 또는 그 이상의 선택 전압까지 상승되고, 그리고 선택된 블럭의 비선택 워드 라인들(예를 들어, WL0, WL1, 및 WL3)이 판독 패스 전압(예를 들어, 4.5 볼트)까지 상승되어 트랜지스터가 패스 게이트로서 동작하게 한다. 선택된 블럭(예를 들어, WL2)의 선택된 워 드 라인이 기준 전압에 연결되고, 그 레벨은 해당 메모리 셀의 임계 전압이 이러한 레벨 이상인지 아니면 이하인지를 결정하기 위해 각각의 판독 및 검증 동작에 대해 특정된다. 예를 들어, 한 비트 메모리 셀의 판독 동작에서, 선택된 워드 라인(WL2)은 접지되고, 그래서 임계 전압이 0V보다 더 높은지 여부가 검출된다. 한 비트 메모리 셀의 검증 동작에서, 선택된 워드 라인(WL2)이 예를 들어, 0.8V에 연결되고, 그래서 프로그래밍이 진행됨에 따라 임계 전압이 0.8V에 도달했는지 도달하지 못했는지 여부가 검증된다. 소스 및 p-웰은 판독 및 검증 동안 제로(0) 볼트에 있다. 선택된 비트 라인(BLe)은 예를 들어, 0.7 V 레벨까지 사전 충전된다. 만약, 임계 전압이 판독 혹은 검증 레벨보다 더 높다면, 해당 비트 라인(BLe)의 포텐셜 레벨은, 관련된 비전도성 메모리 셀 때문에, 하이 레벨을 유지한다. 반면에, 만약 임계 전압이 판독 혹은 검증 레벨보다 더 낮다면, 해당 비트 라인(BLe)의 포텐셜 레벨은, 전도성 메모리 셀 때문에, 로우 레벨, 예를 들어, 0.5V보다 낮은 레벨까지 감소한다. 메모리 셀의 상태는, 비트 라인에 연결되어 결과적인 비트 라인 전압을 감 지하는 감지 증폭기에 의해 검출된다. 메모리 셀이 프로그래밍되는지 혹은 소거되는지 간의 차이는 순수 음 전하가 플로팅 게이트에 저장되는지 아니면 저장되지 않는 지에 따라 다르다. 예를 들어, 만약 음 전하가 플로팅 게이트에 저장된다면, 임계 전압은 더 높아지게 되고, 그리고 트랜지스터는 증가형 동작 모드에 있을 수 있다.
일 예에서, 메모리 셀을 프로그래밍할 때, 드레인 및 p-웰은 OV를 수신하고, 반면에 제어 게이트는 크기가 증가하는 일련의 프로그래밍 펄스들을 수신한다. 일 실시예에서, 일련의 펄스들의 크기는 12V 내지 24V 범위에 있다. 다른 실시예에서, 일련의 펄스들의 범위는 다를 수 있는데, 예를 들어 12 볼트보다 더 높은 시작 레벨을 가질 수 있다. 메모리 셀들의 프로그래밍 동안, 검증 동작이 프로그래밍 펄스들 사이의 일정 기간 내에 수행된다. 즉, 병렬로 프로그래밍되는 셀 그룹의 각각의 셀의 프로그래밍 레벨은 각각의 프로그래밍 펄스 사이에서 판독되어 프로그래밍되는 검증 레벨에 도달했는지 아니면 검증 레벨을 초과했는지 여부가 결정된다. 프로그래밍을 검증하는 하나의 수단은 특정 비교 포인트에서 전도도를 테스트 하는 것이다. 충분히 프로그래밍된 것으로 검증된 셀들은, 예를 들어, NAND 셀들에서, 모든 후속 프로그래밍 펄스들이 이러한 셀들에 대한 프로그래밍 프로세스를 종료하도록, 비트 라인 전압을 0에서 VDD(예를 들어, 2.5 볼트)까지 상승시킴으로써, 락아웃(lock out)된다. 일부의 경우에, 펄스들의 개수는 제한될 수 있고(예를 들어, 20 펄스), 그리고 만약 소정의 메모리 셀이 마지막 펄스에 의해 충분히 프로그래밍되 지 않았다면, 에러가 있는 것으로 고려된다. 일부 실시예에서, 메모리 셀들은 프로그래밍 이전에 (블럭 단위로 혹은 다른 단위로) 소거된다.
도 6은 일 실시예에 따른 프로그램 전압 신호를 나타낸다. 이러한 신호는 크기가 증가하는 펄스들의 세트를 갖는다. 펄스들의 크기는 사전에 결정된 스텝 크기 만큼 각각의 펄스와 함께 증가한다. 복수 비트의 데이터를 저장하는 메모리 셀들을 포함하는 일 실시예에서, 예시적인 스텝 크기는 0.2V(또는 0.4V)이다. 각각의 프로그램 펄스들 간에 검증 펄스들이 존재한다. 도 6의 신호가 네 개의 상태를 갖는 메모리 셀을 나타낸다고 하면, 이것은 세 개의 검증 펄스들을 포함한다. 예를 들어, 프로그래밍 펄스들(330 및 332) 사이에 세 개의 순차적 검증 펄스들이 존재한다. 제 1 검증 펄스(334)가 제로 볼트의 검증 전압 레벨로 도시된다. 제 2 검증 펄스(336)가 제 2 검증 전압 레벨에서 제 1 검증 펄스의 뒤를 따른다. 제 3 검증 펄스(336)가 제 3 검증 전압 레벨에서 제 2 검증 펄스(336)의 뒤를 따른다. 여덟 개의 상태로 데이터를 저장할 수 있는 복수 상태의 메모리 셀은 일곱 개의 비교 포인트들에서 검증 동작을 수행할 필요가 있을 수 있다. 따라서, 일곱 개의 검증 펄스들이 순차적으로 인가되어, 두 개의 연속적 프로그래밍 펄스들 사이의 일곱 개의 검증 레벨에서 일곱 개의 검증 동작을 수행한다. 일곱 개의 검증 동작에 근거하여, 시스템은 메모리 셀의 상태를 결정할 수 있다. 검증의 시간 부담을 감소시키는 한가지 수단은 보다 효율적인 검증 프로세스를 사용하는 것인데, 예를 들어, 다음과 같은 문헌, 즉, 미국 특허출원번호 제10/314,055호(발명의 명칭: "Smart Verify for Multi-State Memories", 2002.12.05. 출원), 미국 특허출원번호 제11/259,799 호(발명의 명칭: "Apparatus for Programming of Multi-State Non-Volatile Memory Using Smart Verify", 2005.10.27. 출원), 및 미국 특허출원번호 제11/260,658호(발명의 명칭: "Method for Programming of Multi-State Non-Volatile Memory Using Smart Verify", 2005.10.27. 출원)에서 개시되는 바와 같으며, 이러한 문헌 모두는 그 전체가 참조로 본 명세서에 통합된다.
앞서 설명된 소거, 판독 및 검증 동작은 종래 기술에서 잘 알려진 기술에 따라 수행된다. 따라서, 설명된 많은 세부적인 사항들이 본 발명의 기술분야에서 숙련된 기술을 가진 자에 의해 다양하게 변경될 수 있다.
성공적인 프로그래밍 프로세스를 위해, 메모리 셀들의 임계 전압은, 프로그래밍되는 메모리 셀들에 대해 하나 또는 그 이상의 임계 전압 분포 내에 있어야만하고, 또는 바람직하게는, 소거된 메모리 셀들에 대해 임의의 임계 전압 분포 내에 있어야만 한다. 도 7은 각각의 메모리 셀이 두 비트의 데이터를 저장할 때의 메모리 셀 어레이에 대한 임계 전압 분포를 나타낸다. 도 7은 소거된 메모리 셀들에 대한 제 1 임계 전압 분포(E)를 나타낸다. 프로그래밍된 메모리 셀들에 대한 세 개의 임계 전압 분포(A,B, 및 C)가 또한 도시된다. 일 실시예에서, 임계 전압 분포(E)에서의 임계 전압은 음의 값이고, 그리고 임계 전압 분포(A, B 및 C)에서의 임계 전압은 양의 값이다.
도 7의 각각의 개별 임계 전압 범위는 데이트 비트들의 세트에 대한 소정의 값들에 대응한다. 메모리 셀에 프로그래밍된 데이터와 셀의 임계 전압 레벨 간의 특정 관계는 셀들에 대해 채택된 데이터 인코딩 방식에 따라 다르다. 일 실시예에 서, 그레이 코드 할당을 사용하여 데이터 값들이 임계 전압 범위에 할당되고, 그래서 만약 플로팅 게이트의 임계 전압이 그 이웃하는 물리적 상태로 잘못 시프트한다면, 단지 하나의 비트만이 영향을 받는다. 그러나, 다른 실시예에서, 그레이 코딩은 사용되지 않는다. 일 예로서, 임계 전압 범위(E)(상태 E)에 "11"이 할당되고, 임계 전압 범위(A)(상태 A)에 "10"이 할당되고, 임계 전압 범위(B)(상태 B)에 "00"이 할당되고, 그리고 임계 전압 범위(C)(상태 C)에 "01"이 할당된다. 도 7이 비록 네 개의 상태를 나타내고 있지만, 본 발명은 또한 네 개보다 많거나 혹은 적은 개수의 상태를 포함하는 다른 복수 상태 구조와 함께 사용될 수도 있다.
도 7은 메모리 셀들로부터 데이터를 판독하기 위한 세 개의 판독 기준 전압(VrA, VrB 및 VrC)을 또한 나타낸다. 소정의 메모리 셀의 임계 전압이 VrA, VrB 및 VrC 위에 있는지 아니면 아래에 있는지 여부를 테스트함으로써, 시스템은 메모리 셀이 어떤 상태에 있는지를 결정할 수 있다. 도 7은 또한 세 개의 검증 기준 전압(VvA, VvB 및 VvC)을 또한 나타낸다. 메모리 셀들을 상태 A에 프로그래밍할 때, 시스템은 이러한 메모리 셀들이 VvA보다 큰 임계 전압을 가지는지 아니면 VvA와 동일한 임계 전압을 가지는 지를 테스트한다. 메모리 셀들을 상태 B에 프로그래밍할 때, 시스템은 메모리 셀들이 VvB보다 큰 임계 전압을 가지는지 아니면 VvB와 동일한 임계 전압을 가지는 지를 테스트 한다. 메모리 셀들을 상태 C에 프로그래밍할 때, 시스템은 메모리 셀들이 VvC보다 큰 임계 전압을 가지는지 아니면 VvC와 동일한 임계 전 압을 가지는 결정한다.
도 7은 풀 시퀀스 프로그래밍을 사용하는 일 실시예를 나타낸다. 풀 시퀀스 프로그래밍에서, 메모리 셀들은 소거 상태 E에서 프로그래밍 상태 A, B, 및 C 중 어느 하나의 상태로 바로 프로그래밍될 수 있다. 예를 들어, 프로그래밍될 일군의 메모리 셀들이 먼저 소거될 수 있고, 그래서 상기 일군의 메모리 셀들 내의 모든 메모리 셀들은 소거 상태 E에 있다. 선택된 메모리 셀들의 제어 게이트에 인가되는 일련의 프로그램 전압 펄스들을 사용하는, 도 7을 참조하여 이후에 설명되는 프로세스는, 메모리 셀들을 상태 A 또는 B 또는 C로 바로 프로그래밍하기 위해 사용된다. 일부 메모리 셀들이 상태 E로부터 상태 A로 프로그래밍되고, 반면에 다른 메모리 셀들은 상태 E로부터 상태 B로 프로그래밍되고, 그리고/또는 상태 E로부터 상태 C로 프로그래밍된다.
도 8은 두 개의 서로 다른 페이지(아래쪽 페이지 및 위쪽 페이지)에 대해 데이터를 저장하는 복수 상태의 메모리 셀을 프로그래밍하는 2-패스 기술(two-pass technique)의 예를 나타낸다. 네 개의 상태, 즉 상태 E(11), 상태 A(10), 상태 B(00) 및 상태 C(01)가 도시된다. 상태 E에 대해, 양쪽 페이지는 "1"을 저장한다. 상태 A에 대해, 아래쪽 페이지는 "0"을 저장하고, 위쪽 페이지는 "1"을 저장한다. 상태 B에 대해, 양쪽 페이지는 "0"을 저장한다. 상태 C에 대해, 아래쪽 페이지는 "1"을 저장하고, 위쪽 페이지는 "0"을 저장한다. 유의할 것으로, 비록 특정 비트 패턴이 상태들 각각에 할당되었지만, 다른 비트 패턴이 또한 할당될 수 있다. 제 1 프로그래밍 패스에서, 셀의 임계 전압 레벨은 아래쪽 로직 페이지에 프로그래밍될 비트에 따라 설정된다. 만약 그 비트가 로직 "1"이라면, 임계 전압은 변하지 않는데, 왜냐하면 더 초기에 소거된 결과로서, 적절한 상태에 있기 때문이다. 그러나, 만약 프로그래밍될 비트가 로직 "0"이라면, 셀의 임계 레벨은, 화살표(302)로 도시된 바와 같이, 상태 A까지 증가한다. 그 결과는 제 1 프로그래밍 패스가 된다.
제 2 프로그래밍 패스에서, 셀의 임계 전압 레벨은 위쪽 로직 페이지에 프로그래밍되는 비트에 따라 설정된다. 만약 위쪽 로직 페이지 비트가 로직 "1"을 저장해야 한다면, 어떠한 프로그래밍도 일어나지 않는데, 왜냐하면 셀은, 아래쪽 페이지 비트의 프로그래밍에 따라, 상태 E 혹은 상태 A 중 하나에 있기 때문이며, 그 양쪽 모두는 위쪽 페이지 비트 "1"을 지닌다. 만약 위쪽 페이지 비트가 로직 "0"이 되어야 한다면, 임계 전압은 시프트된다. 만약 제 1 패스로 인해 셀이 소거된 상태 E에 남아 있다면, 제 2 단계에서 셀이 프로그래밍되고, 그래서 임계 전압은 화살표(306)에 의해 나타난 바와 같이 상태 C에 있도록 증가한다. 만약 셀이 제 1 프로그래밍 패스의 결과로서 상태 A에 프로그래밍된다면, 메모리 셀은 또한 제 2 패스에서 프로그래밍되고, 그래서 임계 전압은 화살표(304)에 의해 나타난 바와 같이 상태 B에 있도록 증가한다. 제 2 패스의 결과는, 아래쪽 페이지에 대한 데이터를 변경함이 없이 위쪽 페이지에 대해 로직 "0"을 저장하기 위해 지정된 상태에 셀을 프로그래밍하는 것이다.
일 실시예에서, 만약 전체 페이지를 채우도록 충분한 데이터가 기입된다면 시스템은 풀 시퀀스 기입을 수행하도록 설정될 수 있다. 만약 충분치 못한 데이터가 전체 페이지에 대해 기입된다면, 프로그래밍 프로세스는 수신된 데이터로 아래 쪽 페이지를 프로그래밍할 수 있다. 후속적 데이터가 수신될 때, 시스템은 위쪽 페이지를 프로그래밍한다. 또 다른 실시예에서, 시스템은 2-패스 기술을 사용하여 데이터를 기입하기 시작할 수 있고, 그 다음에 만약 전체(혹은 대부분의) 워드 라인의 메모리 셀들을 채우기에 충분한 데이터가 후속적으로 수신되면 풀 시퀀스 프로그래밍 모드로 전환할 수 있다. 이러한 실시예의 더 세부적인 것은 미국 특허출원번호 제11/013,125호(발명의 명칭; "Pipelined Programming of Non-Volatile Memories Using Early Data", 2004.12.14. 출원, 발명자: Sergy Anatolievich Gorobets 및 Yan Li)에서 설명되고 있으며, 본 문헌은 그 전체가 참조로 본 명세서에 포함된다.
도 8에 도시된 바와 같이, 풀 시퀀스 및 위쪽 페이지-아래쪽 페이지 프로그래밍에 추가하여 다양한 실시예들에 따라 다른 프로그래밍 기술이 사용될 수 있다. 예를 들어, 일 실시예에서, 임의의 특정 메모리 셀에 대해, 이전 페이지에 대해 인접하는 메모리 셀들에 대한 기입 이후에 임의의 특정 페이지에 관해 상기 특정 메모리 셀에 대한 기입을 행함으로써, 서로 다른 워드 라인들 상의 셀들 간의 플로팅 게이트 대 플로팅 게이트 커플링을 감소시키는 2-패스 기술이 사용될 수 있다. 이러한 기술의 일 예에서, 메모리 셀들은, 네 개의 데이터 상태(예를 들어, 소거된 상태 E가 11을 저장하고, 프로그래밍된 상태 A, B 및 C가 각각 01, 10, 및 00을 저장하는 비-그레이 코딩(non-Gray coding))를 사용하여, 메모리 셀당 두 비트의 데이터를 저장한다. 각각의 메모리 셀은, 참조 목적으로, 위쪽 페이지 및 아래쪽 페이지로 불리는 두 개의 데이터 페이지를 저장한다. 제 1 패스에서, 아래쪽 페이지 가 프로그래밍되는데, 아래쪽 페이지에 데이터 1을 저장하려는 메모리 셀은 상태 E에 있게 되고, 반면에 데이터 0을 저장하려는 메모리 셀은 중간 상태 B'까지 상승된다. 제 2 패스에서, 위쪽 페이지가 프로그래밍된다. 위쪽 페이지에 대해 데이터 1을 저장하려는 소거된 상태 E에 있는 메모리 셀은 상태 E에 있게 되고, 반면에 위쪽 페이지에 대해 데이터 0을 저장하려는 상태 E에 있는 메모리 셀은 상태 A로 프로그래밍된다. 위쪽 페이지에 대해 데이터 1을 저장하려는 중간 상태 B'에 있는 메모리 셀은 최종 상태 B로 프로그래밍되고, 반면에 위쪽 페이지에 대해 데이터 0을 저장하려는 중간 상태 B'에 있는 메모리 셀은 상태 C로 프로그래밍된다.
도 9는 위쪽/아래쪽 페이지 프로그래밍과 같은 단일 페이지 기술 및 모든 데이터 상태가 한번에 프로그래밍되는 풀 시퀀스 프로그래밍 양쪽 모두에서 프로그래밍되는 셀들에 대한 다양한 용량성 전하 커플링 효과를 나타낸 표이다. 도 9의 표는 네 상태 메모리 디바이스에 대한 상기 효과를 나타낸 것으로, 본 발명의 기술분야에서 통상의 기술을 가진 자들은 이처럼 구현된 원리가 더 많은 물리적 상태를 갖는 시스템과 함께 사용될 수 있다는 것을 알 수 있다. 단일 페이지 프로그래밍 및 풀 시퀀스 프로그래밍 양쪽 모두에서, 제1의 프로그래밍된 상태 A로 프로그래밍되는 메모리 셀은 용량성 전하 커플링으로인해 가장 많은 영향을 받는다. 첫번째 행은 단일 페이지 프로그래밍을 나타내고(열(382)), 그리고 상태 C에 프로그래밍된 이웃을 갖는 상태 A에 있는 메모리 셀을 나타낸다(열(384)). 상태 A에 있는 메모리 셀의 겉보기 임계 전압은 증가하는데, 그 값은 플로팅 게이트들 간의 커플링 계수를 나타내는 상수
Figure 112009028169818-pct00001
와 소거된 상태 E와 프로그래밍된 상태 C 간의 전압에서의 변화 를 곱한 값과 동일하다. 상태 A에 있는 메모리 셀이 첫번째 페이지를 프로그래밍할 때 프로그래밍되고, 그리고 그 이웃이 이후에 두번째 페이지를 프로그래밍할 상태 C에 프로그래밍되기 때문에, 이웃의 플로팅 게이트 전압은 소거된 상태와 C 프로그래밍 상태 사이의 차이만큼 상승한다. 열(386)은 메모리 시스템에서의 다양한 상태들 사이에서 프로그래밍되는 메모리 셀에 대한 예시적 임계 전압 변화를 나타낸다. 제공된 예에서, 상태 E로부터 상태 C로의 프로그래밍은 임계 전압을 약 6V 시프트시킨다. 상태 A에 있는 메모리 셀은, 이러한 차이와 커플링 계수를 곱한 값과 동일한 그 임계 전압에서 겉보기 시프트를 겪게된다. 상태 B에 프로그래밍되는 이웃을 갖는 상태 A에 있는 셀은 제1의 프로그래밍된 상태 A와 제2의 프로그래밍된 상태 B 사이의 전압에서의 변화(예를 들어, 2V)와 상수를 곱한 값과 동일한 겉보기 시프트를 겪게된다. 상태 C에 있는 이웃을 갖는 상태 B에 있는 셀은 제2의 프로그래밍된 상태 B와 제3의 프로그래밍된 상태 C 사이의 전압에서의 변화(예를 들어, 2V)와 상수를 곱한 값과 동일한 임계 전압에서의 겉보기 시프트를 겪게된다.
상태 A의 메모리 셀들이 풀 시퀀스 프로그래밍에서 더 적은 용량성 전하 커플링을 겪게될 지라도, 다른 상태에 있는 셀들과 비교할 때 이들은 여전히 가장 많은 용량성 전하 커플링을 겪게된다. 풀 시퀀스 프로그래밍에서 상태 C에 프로그래밍된 이웃을 갖는 상태 A에 있는 메모리 셀에 대해, 이웃은 선택된 메모리 셀이 프로그래밍된 이후에 단지 상태 A로부터 상태로 C로 상승한다(예를 들어, 2V). 풀 시퀀스에서, 모든 상태는 동시에 프로그래밍된다. 따라서, 선택된 셀은 대부분의 경우에 이웃과 대략 동일한 시간에 상태 A에 도달한다. 따라서, 선택된 셀이 프로그 래밍된 이후에 단지 커플링 효과는 상태 A로부터 상태 C로 이동하는 이웃에 의한 것이다.
상태 B로 프로그래밍된 이웃을 갖는 상태 A에 있는 셀은 제1의 프로그래밍된 상태 A와 제2의 프로그래밍된 상태 B 사이의 전압에서의 차이(예를 들어, 2V)와 상수를 곱한 값과 동일한 겉보기 시프트를 겪게된다. 상태 C에 있는 이웃을 갖는 상태 B에 있는 셀은 제2의 프로그래밍된 상태 B와 제3의 프로그래밍된 상태 C 사이의 전압에서의 차이(예를 들어, 2V)와 상수를 곱한 값과 동일한 임계 전압에서의 겉보기 시프트를 겪게된다.
도 9에 예시된 바와 같이, 가장 낮은 프로그래밍된 물리적 상태에 있는 셀들은 이후에 프로그래밍되는 이웃으로 인해 가장 많은 용량성 전하 커플링을 겪게 된다. 이러한 부적절한 커플링 효과는 A 상태 분포의 폭을 넓힐 수 있고, 가능하게는 판독 에러를 일으킬 수 있다. 제1의 프로그래밍된 상태에 있는 셀들이 겪게되는 더 많은 양의 겉보기 임계 전압 시프트를 보상하기 위해, 일 실시예에서, 제1의 프로그래밍된 상태는 추가적인 전하 커플링 효과를 보상하기 위해 높은 정밀도로 프로그래밍된다. 다양한 실시예에서, 겉보기 임계 전압에서의 후속적 변화를 보상하기 위해, 제1의 프로그래밍된 상태에 대해 더 조밀한 임계 전압 분포를 달성하기 위한 기술들이 사용된다. 프로그램 전압 신호에 대해 더 낮은 증분값은, 일 실시예에서, 가장 낮은 프로그래밍가능 상태에 셀들을 프로그래밍할 때 사용될 수 있다. 또 다른 실시예에서, 증분값은 제1의 데이터 로직 페이지를 메모리 셀들의 세트에 프로그래밍할 때 더 낮아지고, 제2의 데이터 로직 페이지를 상기 세트에 프로그래밍할 때 더 커진다. 파이프라인 아키텍처에서, 증분값은 메모리가 단일 페이지 프로그래밍으로부터 풀 시퀀스 프로그래밍으로 전환할 때 증가할 수 있다.
도 10은 데이터 로직 페이지 각각에 대한 프로세싱 및 기입을 행하는 비휘발성 메모리 시스템을 나타낸 타이밍도이고, 여기서 셀들의 세트에 대한 제 1 데이터 페이지는 제 2 데이터 페이지의 시작 전에 완료된다. 호스트 디바이스로부터의 데이터가 먼저 제어기에서 수신된다. 제어기는 이러한 데이터 및 어드레스 정보를, 데이터 레지스터에 데이터를 놓는 컬럼 제어 회로에 포워딩한다. 도 10에서, 아래쪽 데이터 페이지가 동일 메모리 셀들에 대한 위쪽 데이터 페이지 이전에 제어기에 의해 수신된다. 적절한 레지스터가 로딩되고, 그리고 제어기로부터의 프로그램 컴맨드에 응답하여, 상태 머신은 시간 t1에 아래쪽 페이지 데이터를 셀들의 세트에 프로그래밍하기 시작한다.
메모리 셀들의 대응하는 세트에 대한 위쪽 데이터 페이지에 대한 데이터가 시간 t1에 호스트로부터 수신된다. 제어기는 시간 t2에서 데이터를 어레이에서의 레지스터로 로딩하는 것을 완료한다. 도 10의 특정 실시예에서, 시스템은 아래쪽 페이지가 프로그래밍될 때까지 위쪽 데이터 페이지를 프로그래밍하지 않는다. 따라서, 상태 머신은 시간 t3까지 아래쪽 데이터 페이지를 셀들의 세트에 계속 프로그래밍하고, 그리고 위쪽 페이지의 데이터는 레지스테에 남아있게 된다. 아래쪽 페이지의 데이터가 프로그래밍되면, 제어기는, 위쪽 페이지의 데이터를 레지스터들로부터 어레이로 프로그래밍함으로써, 위쪽 데이터 페이지에 대한 프로그램 컴맨드 및 상태 머신 응답을 발행할 수 있다. 도시된 바와 같이, 위쪽 페이지를 프로그래밍하 는 것은, 셀을 상태 E로부터 상태 C로 프로그래밍하는 것 및 상태 A로부터 상태 B로 프로그래밍하는 것을 포함한다. 대안적 실시예에서, 위쪽 페이지 프로그래밍이 셀들을 상태 E로부터 다른 상태로 프로그래밍하는 것 그리고 중간 상태로부터 상태 B 및 상태 C로 프로그래밍 하는 것을 포함하도록, 앞서 설명된 바와 같은 2-패스 기술이 사용된다.
본 명세서에서 설명된 기술의 일 실시예에 따르면, 프로그램 전압 신호에 대해 다른 증분값이, 시간 t3에서 위쪽 페이지를 프로그래밍할 때 도 10에 도시된 바와 같은 실시예에서 사용된다. 도 11은 일 실시예에 따른 프로그램 전압 신호를 나타낸다. 소거된 상태로부터 상태 A로의 메모리 셀들의 프로그래밍은 제 1 프로그램 전압 펄스가 인가될 때 시간 t1에서 시작한다. 만약에 있다면 어떤 셀들이 상태 A로 프로그래밍되지를 결정하기 위해 검증을 수행한 이후, △Vpgm1만큼 증분된 피크 값을 갖는 추가적인 펄스가 인가된다. 이것은 아래쪽 페이지 프로그래밍이 시간 t3에서 완료될 때까지 계속된다.
아래쪽 페이지 프로그래밍은, 다수의 프로그램 전압 펄스가 사전에 결정된최대 개수에 도달 한 이후에 혹은 상태 A에 프로그래밍될 충분할 개수의 메모리 셀들이 상태 A에 도달한 것으로 성공적으로 검증된 이후에, 완료될 수 있다. 상태 A에 대해 메모리 셀들이 프로그래밍되고, 혹은 아래쪽 페이지 프로그래밍이 완료되면, 프로그램 전압 증분값은 △Vpgm2로 변경된다. △Vpgm2는 일 실시예에서 프로그래밍 프로세스의 속도를 높이기 위해 △Vpgm1보다 더 크다. 일 실시예에서, 가능한 한 빨리(보다 큰 증분값) 하지만 정밀한 데이터 프로그래밍을 확보하면서(보다 작은 증분값), 어레이 내의 다수의 메모리 셀들을 프로그래밍하도록 적절한 값을 결정하기 위한 분석 이후에, △Vpgm2가 선택된다. △Vpgm1의 값은 상태 A에 프로그래밍된 셀이 겪게 되는 증가된 양의 전하 커플링을 보상하기 위한 △Vpgm2의 조절된 값일 수 있다. 예를 들어, △Vpgm1은 수용된 추가적인 용량성 전하 커플링의 양에 근거를 두어, △Vpgm2로부터 낮아진 값일 수 있다. 예를 들어, 도 9를 참조하면, 상태 A를 프로그래밍할 때의 △Vpgm1은, 프로그래밍 이후 그 이웃의 플로팅 게이트 전압에서의 4V 차이 대 상태 B 및 C에 프로그래밍된 셀들에 대한 2V 차이에 근거를 둔 임의의 양만큼 △Vpgm2보다 더 낮은 값일 수 있다. 비한정적 예로서, 아래쪽 페이지에 대한 △Vpgm1은 일 실시예에서 약 0.3V일 수 있고, 그리고 위쪽 페이지 혹은 풀 시퀀스 프로그래밍에 대해 △Vpgm2는 약 0.4V일 수 있다.
도 12는 데이터 로직 페이지에 대한 프로세싱 및 기입을 수행하는 비휘발성 메모리 시스템을 나타내는 타이밍도이고, 여기서 프로그래밍은 제1의 데이터 페이지에 대해 시작하고, 그리고 그 다음에 모든 페이지에 대한 풀 시퀀스 프로그래밍을 시작하기 위해 제2의 데이터 페이지가 수신될 때 잠시 멈추거나 중단된다. 호스트 디바이스로부터의 데이터가 제어기에서 수신된다. 제어기는 데이터를 데이터 레지스터에 놓는 컬럼 제어 회로에 데이터 및 어드레스 정보를 포워딩한다. 도 12에서, 아래쪽 데이터 페이지는 동일 메모리 셀들에 대한 위쪽 데이터 페이지 이전에 제어기에 의해 수신된다. 적절한 레지스터들이 로딩되고, 그리고 제어기로부터의 프로그램 컴맨드에 응답하여, 상태 머신은 시간 t1에서 아래쪽 페이지의 데이터를 셀들의 세트에 프로그래밍하기 시작한다.
메모리 셀들의 동일 세트에 대한 위쪽 페이지 데이터가 시간 t1에 호스트로부터 수신된다. 제어기는 시간 t2에서 어레이에서의 레지스터로의 데이터 로딩을 완료한다. 새로운 데이터가 동일 셀들에 대해 위쪽 페이지 데이터라고 결정된 이후에, 제어기는 프로그램 동작을 중단할 수 있다. 도 12의 특정 실시예에서, 시스템은 풀 시퀀스 동작으로 전환하기 위해 아래쪽 페이지 프로그래밍 프로세스를 중단하거나 잠시 멈추거나 혹은 멈출 수 있다. 일 실시예에서, 제어기는 아래쪽 페이지 프로그래밍 동작을, 그것이 끝날 수 있음을 보증하기에는 충분히 완료되지 않았거나 아직 완료되지 않았다면, 단지 멈춘다.
제어기는, 컬럼 제어 회로 내의 데이터 레지스터에 위쪽 페이지 데이터를 제공한 이후에 풀 시퀀스 프로그래밍을 위한 새로운 프로그램 컴맨드를 발행할 수 있다. 검증 동작은 목표 상태에 도달한 이러한 셀들을 락아웃시키기 위해 수행될 수 있다. 그 다음에, 프로그래밍은 풀 시퀀스 프로그래밍을 사용하여 데이터 페이지 양쪽 모두에 대해 계속된다.
일 실시예에 따르면, 시간 t2 이후에 풀 시퀀스 프로그래밍을 사용할 때 도 12에 도시된 바와 같이, 임의의 실시예에서 프로그램 전압 신호에 대한 서로 다른 증분값이 사용된다. 도 12는 일 실시예에 따른 프로그램 전압 신호를 나타낸다. 소거된 상태로부터 상태 A로의 메모리 셀의 프로그래밍이 제 1 소거 전압 펄스가 인가되는 시간 t1에서 시작한다. 아래쪽 페이지에 대한 상태 A로의 프로그래밍이 완료되기 전에, 위쪽 페이지 데이터가 호스트로부터 수신된다. 제어기는 데이터를 컬럼 제어 회로에 발행하는데, 여기서 데이터는 시간 t2에서 레지스터에 저장된다.
검증, 락아웃, 및 새로운 프로그램 컴맨드 발생 이후, 풀 시퀀스 프로그래밍이 시간 t2 이후에 제 1 펄스로 시작한다. 풀 시퀀스 컴맨드가 발행되면, 다음 프로그램 전압 펄스가, 아래쪽 페이지 프로그래밍을 멈추기 전에 마지막 프로그램 전압 펄스를 통해 △Vpgm2 만큼 증분된다. △Vpgm2 및 △Vpgm1 값은 실시예에 따라 그리고 다양한 구현시 필요한 요건에 따라 변할 수 있다. 일 실시예에서, △Vpgm1 및 △Vpgm2는 도 11에 관하여 설명된 바와 같이 선택된다.
도 14는 일 실시예에 따른 비휘발성 메모리를 프로그래밍하는 방법을 나타낸 흐름도이다. 프로그래밍되는 상태 및/또는 프로그래밍 동작 및 데이터 타입에 근거하여 다양한 증분값이 사용된다. 단계(502)에서, "데이터 로드(data load)" 컴맨드가 제어기(318)에 의해 발생되고, 컴맨드 회로(314)에 입력되어, 데이터가 데이터 입력/출력 버퍼(312)에 입력될 수 있게 된다. 입력 데이터는 컴맨드로서 인식되고, 그리고 예시되지는 않은, 컴맨드 래치 신호를 통해 상태 머신에 의해 래치되고, 컴맨드 회로(314)에 입력된다. 단계(504)에서, 페이지 어드레스를 지정하는 어드레스 데이터는 제어기 혹은 호스트로부터 로우 제어기 혹은 디코더(306)에 입력된다. 입력 데이터는 페이지 어드레스로서 인식되고, 그리고 상태 머신(316)을 통해 래치되는데, 이것은 컴맨드 회로(314)에 입력되는 어드레스 래치 신호에 의해 영향을 받는다. 단계(506)에서, 어드레싱된 페이지에 대한 프로그램 데이터의 페이지가 프로그래밍을 위해 데이터 입력/출력 버퍼(312)에 입력된다. 예를 들어, 일 실시예에서, 532 바이트의 데이터가 입력될 수 있다. 이러한 데이터는 선택된 비트 라인들을 위한 적절한 레지스터에 래치된다. 일부 실시예에서, 데이터는 또한 동작을 검 증하기 위해 사용될 선택된 비트 라인들을 위한 제 2 레지스터에 래치된다. 일 실시예에서, 데이터는 추가적인 로직 페이지를 저장하는 셀들의 세트에 의해 저장된 데이터의 로직 페이지에 대응한다. 셀들의 세트는 셀들의 세트에 의해 정의된 물리적 페이지에 복수의 로직 페이지를 저장하는 것으로 언급될 수 있다. 물리적 페이지는 한번에 로우와 같은 셀들의 세트에 의해 저장가능한 데이터 모두를 포함할 수 있다. 이것은 또한 한번에 상기 세트에 프로그래밍가능한 최대 데이터 량을 나타낼 수 있다. 단계(508)에서, "프로그램" 컴맨드가 제어기에 의해 발행되고 데이터 입력/출력 버퍼(312)에 입력된다. 컴맨드 회로(314)에 입력되는 컴맨드 래치 신호를 통해 컴맨드가 상태 머신(316)에 의해 래치된다.
"프로그램" 컴맨드에 의해 트리거되는 단계(506)에서 래치된 데이터는, 적절한 워드 라인에 인가된 도 6의 스텝화된 펄스들을 사용하여 상태 머신(316)에 의 해 제어되는 선택된 메모리 셀들에 프로그래밍된다. 단계(510)에서, 선택된 워드 라인에 인가된 프로그래밍 펄스 전압 레벨인 Vpgm은 시작 펄스(예를 들어, 12V)로 초기화되고, 그리고 상태 머신(316)에 의해 유지되는 프로그램 카운터(Program Counter, PC)가 0 또는 다른 값에서 초기화된다. 단계(512)에서, 제1의 Vpgm 펄스가 선택된 워드 라인에 인가된다. 만약 로직 "0"이, 대응하는 메모리 셀이 프로그래밍되어야만 한다고 표시하는 특정 데이터 래치에 저장된다면, 대응하는 비트 라인은 접지된다. 반면에, 만약 로직 "1"이, 대응하는 메모리 셀이 현재 데이터 상태에서 유지되어야 한다고 표시하는 특정 래치에 저장된다면, 프로그래밍을 금지하기 위해 대응하는 비트 라인이 VDD에 연결된다.
단계(514)에서, 선택된 메모리 셀들의 상태가 검증된다. 만약 선택된 셀의 목표 임계 전압이 적절한 레벨에 도달했다고 검출된다면, 대응하는 데이터 래치에 저장된 데이터는 로직 "1"로 변경된다. 만약 임계 전압이 적절한 레벨에 도달하지 못했다고 검출된다면, 대응하는 데이터 래치에 저장된 데이터는 변경되지 않는다. 이러한 방식으로, 그 대응하는 데이터 래치에 저장된 로직 "1"을 갖는 비트 라인은 프로그래밍될 필요가 없다. 데이터 래치 모두가 로직 "1"을 저장하고 있을 때, 상태 머신은 선택된 셀 모두가 프로그래밍되고 있음을 알게 된다. 단계(516)에서, 데이터 래치들 모두가 로직 "1"을 저장하고 있는지 여부가 점검된다. 만약 그렇다면, 프로그래밍 프로세스는 성공적이며 완료되는데, 왜냐하면 선택된 메모리 셀들 모두가 그들의 목표 상태에 프로그래밍 및 검증되기 때문이다. 단계(518)에서 상태가 "패스(PASS)"로서 보고된다.
단계(516)에서, 만약 데이터 래치들 모두가 로직 "1"을 저장하고 있는 것이 아니라고 결정된다면, 프로그래밍 프로세스가 계속된다. 단계(520)에서, 프로그램 카운터(PC)는 프로그램 한계값에 대비하여 점검된다. 일 예로서, 프로그램 한계값은 20일 수 있지만, 다른 값들이 다양한 구현에 있어 사용될 수 있다. 만약 프로그램 카운터(PC)가 20보다 작지 않다면, 단계(526)에서 성공적으로 프로그래밍되지 않은 비트의 개수가 사전에 결정된 개수와 동일한지 아니면 더 적은지가 결정된다. 만약 비성공적으로 프로그래밍된 비트들의 개수가 사전에 결정된 개수와 동일하거 나 혹은 더 적다면, 프로그래밍 프로세스는 패스로서 플래그되고 그리고 단계(528)에서 상태가 패스로서 보고된다. 성공적으로 프로그래밍되지 않은 비트들은 판독 프로세스 동안 에러 정정을 사용하여 정정될 수 있다. 그러나, 만약에 비성공적으로 프로그래밍된 비트들의 개수가 사전에 결정된 개수보다 더 크다면, 프로그래밍 프로세스는 실패로서 플래그되고 그리고 단계(530)에서 상태가 실패로서 보고된다. 만약 프로그램 카운터(PC)가 20보다 작다면, Vpgm 레벨은 스텝 크기만큼 증가하고 그리고 프로그램 카운터(PC)는 단계(522)에서 증분된다. 단계(522) 이후에, 프로세스는 다음 Vpgm 펄스를 인가하기 위해 단계(512)로 다시 되돌아 간다.
단계(502'-510')에서 표시된 바와 같이, 메모리 시스템은 하나 또는 그 이상의 어레이에 대해 추가적인 데이터를 수신할 수 있고, 반면에 도 14에 도시된 동작들 중 어느 하나를 수행한다. 추가적인 데이터 로드 컴맨드(502')가 임의 시간에 호스트로부터의 데이터에 응답하여 제어기에 의해 발행될 수 있다. 단계(502')는, 도 14에 구체적으로 도시된 바와 다른 위치 및 시간에 일어날 수 있다. 호스트로부터 데이터가 수신될 수 있고, 그리고 단계(504')에서 로우 제어기(들)에서의 어드레스 데이터를 로딩하기 위해 단계(502')에서 데이터 로드 컴맨드가 실행될 수 있고, 그리고 단계(506')에서 어레이에서의 가용한 레지스터들에 데이터를 프로그래밍할 수 있다. 일 실시예에서, 제어기는 상태 머신 혹은 컬럼 제어기가 레지스터 내의 더 많은 데이터를 수신할 수 있다는 가용한 신호를 발행할 때까지 기다린다.
단계(508')에서, 제어기 및 상태 머신은 다양한 방법으로 새롭게 수신된 데이터를 프로세싱할 수 있다. 일 실시예에서, 제어기는 현재의 아래쪽 페이지 프로 그래밍 동작을 멈춘다. 이것은 박스(508')에서 박스(508)로의 화살표에 의해 나타내진다. 그 다음에 제어기는 풀 시퀀스 프로그래밍을 사용하여 동일한 시간에(동시에) 아래쪽 페이지 및 위쪽 페이지의 데이터를 프로그래밍하도록 상태 머신에 지시하는 새로운 프로그램 컴맨드를 발행한다. 상태 머신은 단계(510')에서 △Vpgm을 △Vpgm2로 설정할 수 있고, 그래서 더 큰 증분값이 풀 시퀀스에서 양쪽 페이지들을 프로그래밍할 때 사용된다. 그 다음에 프로그래밍 동작이 이전에 설명된 바와 같이, 그러나 더 큰 증분값 △Vpgm2를 사용하여, 계속된다. 단계(510')에서 도시된 일 실시예에서, Vpgm은 풀 시퀀스를 시작하기 전에 재설정되고, 그리고 PC 카운터는 0으로 재설정된다. Vinitial2는 Vinitial1과 동일하거나, Vinitial1보다 더 작거나 혹은 더 클 수 있다. 그러나, Vpgm이 모든 실시예에서 재설정되는 것은 아니다. 예를 들어, 만약 위쪽 페이지 데이터가 상대적으로 빠르게 도달하고 단지 몇 개의 프로그래 전압 펄스만이 인가된다면, Vpgm은 마지막 피크 값에서 시작할 수 있거나, 또는 마지막 피크 값보다 더 큰 값(△Vpgm2 혹은 다른 값만큼 중분된 값)에서 시작할 수 있거나, 또는 마지막 피크 값보다 작은 값에서 시작할 수 있다.
도 15는 도 14의 단계(508')에서의 프로그램 컴맨드의 설정을 더 상세히 나타낸 흐름도이다. 도 15는 더 작은 증분값이 아래쪽 페이지 프로그래밍을 위해 사용되고 더 큰 증분값이 위쪽 페이지 프로그래밍 혹은 풀 시퀀스 프로그래밍을 위해 사용되는 단지 하나의 예시적인 구현예이다. 도 15의 실시예에서, 제어기는 컬럼 제어 회로에 프로그램 컴맨드를 발행하기 전에, 단계(602)에서 메모리 셀들의 세트의 아래쪽 페이지에 대해 현재 프로그래밍되는 데이터와 새롭게 수신된 데이터의 어드레스 데이터를 비교한다. 만약 제어기가 단계(604)에서 정합(프로그래밍되는 데이터가 동일 메모리 셀들에 대한 것이고, 새롭게 수신되는 데이터가 동일 메모리 셀들에 대한 것임을 의미)을 확인한다면, 방법은 단계(608)에서 진행한다. 일 실시예에서, 상태 머신 및/또는 컬럼 제어 회로는 단계(604)를 수행한다. 만약 어드레스 데이터가 정합하지 않는다면, 아래쪽 페이지 프로그래밍이, 예를 들어 도 14의 단계(512)에서 다음 프로그램 전압 펄스를 인가함으로써, 계속된다. 도 14의 방법은 단계(512) 이외에도 도 15의 단계(606) 이후에 다른 위치에서 계속될 수 있다. 만약 어드레스 데이터가 정합한다면, 제어기는 아래쪽 페이지 프로그래밍이 단계(608)에서 완료인지 여부를 결정한다. 아래쪽 페이지 프로그래밍은 사전에 결정된 개수의 프로그램 전압 펄스가 인가되었을 때, 혹은 상태 A에 프로그래밍될 셀들 모두가 성공적으로 상태 A에 프로그래밍되었을 때, 혹은 사전에 결정된 개수의 셀들이 성공적으로 상태 A에 프로그래밍되었을 때, 완료될 수 있다.
만약 아래쪽 페이지 프로그래밍이 완료되면, 위쪽 페이지 데이터가 단계(610)에서 시작하는 메모리 셀들의 세트에 프로그래밍되고, 여기서 위쪽 페이지 프로그램 컴맨드가 제어기에 의해 발행된다. 단계(620)에서, 위쪽 페이지 프로그래밍이 도 14의 단계(510')에서 도시된 바와 같이 계속되는데, 여기서 프로그램 전압 신호는 Vinitial2로 초기화되고 그리고 △Vpgm은 △Vpgm2에 설정된다. 제 2 증분값인 △Vpgm2은 메모리 셀들의 위쪽 페이지를 프로그래밍할 때 후속 프로그래밍 펄스들의 크기들 증가시키는데 사용된다. 상태 A에 있는 메모리 셀들이 후속적으로 프로그래밍되는 이웃들로 인해 자연적으로 더 넓은 폭을 갖는 임계 전압 분포를 가지 기 때문에, 단계(512)에서 아래쪽 페이지를 프로그래밍할 때 더 작은 △Vpgm1이 사용되고, 그리고 위쪽 페이지에 대해서는 더 큰 △Vpgm2가 사용된다.
만약 아래쪽 페이지 프로그램이 완료되지 않았다면(혹은 완료되기에는 충분히 근접하지 않았다면), 제어기는 단계(612)에서 아래쪽 페이지 프로그래밍 동작을 멈춘다. 도 14에서, 아래쪽 페이지 프로그래밍을 멈춘 제어기는 단계(508')에서 단계(508)로 향하는 화살표에 의해 개념적으로 예시되어 있다. 제어기 혹은 상태 머신은 컬럼 제어 회로가 아래쪽 데이터 페이지를 프로그래밍하는 것을 멈추도록 하는 컴맨드를 발행할 수 있다. 단계(612)에서 아래쪽 페이지 프로그래밍을 멈춘 이후에, 제어기는 단계(614)에서 풀 시퀀스 프로그램 데이터 컴맨드를 설정한다. 일 실시예에서, 컴맨드는 버퍼(312)에 입력되고, 컴맨드 회로에 입력되는 컴맨드 래치 신호를 통해 상태 머신에 의해 래치된다. 프로그램 컴맨드에 응답하여 상태 머신은 선택된 메모리 셀들을 프로그램하도록 트리거된다. 제어기는 컬럼 제어 회로로 하여금 단계(616)에서 검증 동작을 수행하도록 하여 아래쪽 페이지 프로그래밍 동안 어떤 셀들이 성공적으로 프로그래밍되었는지를 결정하도록 할 수 있다. 목표 레벨에 도달한 임의의 셀들에 대해, 제어기는 이러한 셀들을 후속 프로그래밍으로부터 락아웃할 수 있다. 이미 프로그래밍된 셀들을 락아웃한 이후에, 방법은 단계(620)에서 계속되는데, 이것은 도 14의 단계(510')에 대응하고, 여기서 증분값이 조정될 수 있다.
△Vpgm2는 일 실시예에서 △Vpgm1보다 더 크다. 프로그래밍 이후 상태 A 분포의 폭을 감소시키기 위해, 더 낮은 △Vpgm1이 아래쪽 페이지 프로그래밍을 위해 사용되거나 혹은 가장 낮은 프로그래밍 물리적 상태를 프로그래밍하기 위해 사용된다. 상태 A에 있는 셀들이 겪는 추가적인 용량성 커플링 효과 때문에, 더 낮은 △Vpgm 값이 과프로그래밍 및/또는 프로그램 방해를 피하기 위해 사용된다. 일 실시예에서, 단계(510')는 또한 초기값인 Vpgm을 재설정하는 것을 포함한다. 예를 들어, 만약 아래쪽 페이지 프로그래밍이 거의 완료되었다면, Vpgm 값은 위쪽 페이지를 프로그래밍하도록 혹은 풀 시퀀스로 프로그래밍하도록 전압 신호를 인가하기 전에 더 낮은 값으로 재설정될 수 있다. 일 실시예에서, Vpgm은 아래쪽 페이지 프로그래밍을 시작할 때와 동일한 시작 값으로 재설정된다. 일 실시예에서, Vpgm은 현재 값보다는 낮은 값이지만 아래쪽 페이지 프로그래밍에 대해 본래 값만큼 낮지는 않는 값으로 재설정된다. 또 다른 실시예에서, 아래쪽 페이지 프로그래밍 완료 이후 풀 시퀀스 혹은 위쪽 페이지 프로그래밍을 시작할 때, 프로그램 전압 신호는 아래쪽 페이지를 프로그래밍할 때 사용된 마지막 값으로부터 제 3 증분값인 △Vpgm3 만큼 증가 혹은 감소한다. 일 실시예에서, 프로그램 전압 신호 Vpgm은 위쪽 페이지 혹은 풀 시퀀스 프로그래밍 시작 전에 재설정되지 않는다. 아래쪽 페이지 프로그래밍에 대한 마지막 전압 펄스는 일 실시예에서 △Vpgm2 만큼 증가한다. 또 다른 실시예에서, 아래쪽 페이지 프로그래밍에 대한 마지막 전압 펄스는 제1의 위쪽 페이지 혹은 풀 시퀀스 펄스에 대해 △Vpgm3 만큼 증가한다. 제1의 추가적 펄스 이후, 설명된 바와 같이 △Vpgm2 만큼 값이 증가한다. 두 개의 서로 다른 스텝 크기로 인한 두 개의 프로그래밍 속도 간의 더 안정된 전이를 제공하기 위해 △Vpgm3은 △Vpgm2보다 더 클 수 있다.
단계(510')는 또한 프로그램 카운터(PC)를 재설정하는 것을 포함할 수 있다. 예를 들어, 최대 펄스 개수가 아래쪽 페이지 및 위쪽 페이지 또는 풀 시퀀스 프로그래밍에 독립하여 확립될 수 있다. 아래쪽 페이지와 위쪽 페이지 간의 전이 또는 아래쪽 페이지와 풀 시퀀스 프로그래밍 간의 전이를 프로그래밍할 때, 카운터(PC)는 0 혹은 또 다른 값으로 재설정될 수 있다. 또 다른 실시예에서, 카운터(PC)는 재설정되지 않으며, 전체 프로그래밍 동작을 위한 최대 반복 혹은 펄스 개수가 사용된다. 다른 변형예들 실시예에 따라 실시될 수 있다.
도 15에서 설명된 기술의 변형에서, 프로그램 전압 펄스들의 증분값은, 비록 풀 시퀀스 프로그래밍으로의 전이 이후라도, 가장 낮은 프로그래밍 상태를 프로그래밍하기 전까지는 증가하지 않는다. 만약 제어기가 단계(608)에서 아래쪽 페이지 프로그래밍이 완료되었다고 결정한다면, 동작은 앞서 설명된 바와 같이 단계(610)에서 진행한다. 그러나, 만약 아래쪽 페이지 프로그래밍이 완료되지 않았다면, 제어기는 아래쪽 페이지 프로그래밍 프로세스를 멈추고, 그리고 단계(612-618)에서 예시된 바와 같이 풀 시퀀스 프로그래밍으로 전환한다. 그러나, 프로그램 전압 증분값은 가장 낮은 프로그래밍 상태(예를 들어, 상태 A)에 대한 프로그래밍이 완료될 때까지 △Vpgm2로 변경되지 않는다. 모든 셀들 혹은 사전에 결정된 셀들이 상태 A에 도달한 것으로 검증될 때, 프로그램 전압 증분값은 △Vpgm2로 변경될 수 있다. 일 실시예에서, 언제 △Vpgm2로 전환해야 할지를 결정하기 위해 사전에 결정된 개수의 프로그램 전압 펄스들이 선택되어 사용된다. 예를 들어, 풀 시퀀스 프로그래밍으로 전환 이후, 프로그램 전압 증분값은 아래쪽 페이지 프로그래밍 프로세스의 최초 시작 이래로 사전에 결정된 개수의 프로그램 전압 펄스가 인가된 이후 △Vpgm2으로 변경될 수 있다.
일 실시예에서, 아래쪽 페이지 프로그래밍이 단계(608)에서 종료되었다는 결정은, 셀들이 실제로 적절한 상태(예를 들어, 상태 A)로 프로그래밍되었는지 여부에 상관없이, 사전에 결정된 개수의 아래쪽 페이지 프로그래밍 싸이클 반복 개수(즉, 사전에 결정된 개수의 프로그램 전압 펄스)에 근거를 둘 수 있다. 아래쪽 페이지 프로그래밍은 또한, 사전에 결정된 개수의 셀들이 적절한 상태에 도달할 때 완료된 것으로 결정될 수 있는 데, 이것은 성공적인 아래쪽 페이지 프로그래밍을 검증하기 위해 통상적으로 요구되는 전체 셀들의 세트가 적절한 상태에 도달하기 전일 수 있다. 이러한 예들 중 어느 하나에서, 일부 셀들은 프로그램 전압 신호를 재설정한 이후에 그리고 증분값 △Vpgm2를 사용하여 아래쪽 페이지 데이터에 근거하는 추가적인 프로그래밍을 필요로 할 수 있다. 이것은, 상태 A에 도달한 것으로 검증되지 않은 상태 A에 프로그래밍될 이러한 셀들을 락아웃하지 않음으로써 그리고 위쪽 페이지 프로그래밍 동안 상태 A 레벨에서 검증을 계속함으로써, 단계(610)에서 위쪽 페이지 프로그래밍 동안 처리될 수 있다.
일부 셀들이 여전히 가장 낮은 프로그래밍 상태에 프로그래밍될 필요가 있을 때 단계(610)에서의 위쪽 페이지 프로그래밍으로 전이하는 일 실시예에서, 가장 낮은 프로그래밍 상태에 대한 프로그래밍이 완료될 때까지 △Vpgm은 △Vpgm2로 변경되지 않는다. △Vpgm1은 가장 낮은 프로그래밍 상태에 대한 프로그래밍이 검증될 때까지 위쪽 페이지 프로그래밍 동안 계속 사용될 것이다. 예를 들어, 상태 A에 프 로그래밍될 사전에 결정된 개수의 셀들이 상태 A에 도달한 이후에, △Vpgm은 △Vpgm1로부터 △Vpgm2로 변경될 수 있다.
도 15에 대한 또 다른 변형에서, 제어기는 아래쪽 페이지 프로그래밍 프로세스를 멈추지 않고, 만약 아래쪽 페이지 프로그래밍이 단계(608)에서 결정된 바와 같이 완료되지 않았다면, 위쪽 페이지 데이터 수신 즉시 풀 시퀀스 프로그래밍으로 전환한다. 오히려, 제어기는 아래쪽 페이지 프로그래밍이 전이 이전에 완료되었다고 결정할 때까지 기다린다.
도 16은 만약 아래쪽 페이지에 대한 프로그래밍이 완료되었다면 추가적인 데이터가 수시된 이후에 증분값을 단지 변경하는 방법을 나타낸 흐름도이다. 이러한 기술은 아래쪽 페이지 프로그래밍으로부터 위쪽 페이지 프로그래밍으로의 전이시 혹은 아래쪽 페이지 프로그래밍으로부터 풀 시퀀스 프로그래밍으로의 전이시 증분값을 바꿀 수 있다. 아래쪽 페이지 데이터가 단계(704)에서 수신된다. 어드레스 데이터가 단계(706)에서 설정되고, 프로그램 데이터가 단계(708)에서 입력되고, 그리고 제어기가 단계(710)에서 프로그램 컴맨드를 발행한다. Vpgm이 그 초기값으로 설정되고, 프로그램 카운터가 초기화되고, 그리고 △Vpgm이 단계(712)에서 △Vpgm1으로 설정된다. 아래쪽 페이지 데이터가, 예를 들어 도 14(단계(512-530))에서 도시된 바와 같이, 단계(714)에서 프로그래밍된다. 아래쪽 페이지를 프로그래밍하는 동안, 위쪽 페이지 데이터가 단계(716)에서 수신된다. 어드레스 데이터가 단계(718)에서 설정되고, 그리고 프로그램 데이터가 단계(720)에서 입력된다. 업데이트된 프로그램 컴맨드를 발행하기 전에, 제어기는 아래쪽 페이지 프로그래밍이 단계(722) 에서 완료되었는지 여부를 결정한다. 도 15의 단계(608)에 대해 앞서 설명된 바와 같이, 상태 A 프로그래밍의 완료 여부의 결정은 다양한 방법으로 수행될 수 있다. 상태 A에 프로그래밍될 모든 혹은 사전에 결정된 개수의 셀들이 상태 A에 도달 했는지 여부의 결정이 수행될 수 있다. 다른 예에서, 단계(722)는 사전에 결정된 개수의 펄스들이 인가되었는지 여부를 결정하는 것을 포함할 수 있고, 그리고 만약 그렇다면 아래쪽 페이지 프로그래밍이 완료되었는지를 결정할 수 있다.
만약 아래쪽 페이지 프로그래밍이 완료되지 않았다면, 제어기는 단계(724)에서 아래쪽 페이지 프로그래밍을 계속 수행하고, 그리고 이러한 루프에서 아래쪽 페이지 프로그래밍이 완료되기를 계속 기다린다. 아래쪽 페이지 프로그래밍이 완료될 때, 방법은 제어기가 업데이트된 프로그램 컴맨드를 발행하는 단계(726)에서 계속 진행한다. 제어기는 Vpgm을 초기값 Vinitial2로 재설정할 수 있고, 증분값 △Vpgm을 △Vpgm2로 재설정할 수 있고, 그리고 단계(728)에서 프로그램 카운터(PC)를 재설정할 수 있다. 신호를 재설정한 이후에(이것은 프로그램 전압 신호를 제공해야 하는 디지털 대 아날로그 컨버터를 재설정함으로써 수행됨), 새로운 컴맴드 하의 프로그래밍이 단계(730)에서 시작한다.
일 실시예에서, 단계(726)에서 설정된 프로그램 컴맨드는 위쪽 페이지 프로그래밍에 대한 것이다. 단계(722)에서, 제어기는 상태 A에 대한 프로그래밍이 아래쪽 페이지 프로그래밍이 완료되기 전에 성공적으로 검증될 때까지 기다릴 수 있다. 이러한 경우에, 아래쪽 페이지 프로그래밍 데이터는 이미 프로그래밍되고, 그리고 위쪽 페이지에 대한 프로그래밍은 단계(730)에서 수행될 필요가 있는 모든 것이다. 이러한 기술의 변형에서, 위쪽 페이지 프로그램 컴맨드가 단계(726)에서 발행될 수 있고, 그리고 단계(730)에서 위쪽 페이지에 대한 프로그래밍은 아래쪽 페이지 프로그래밍이 완료되자마자 계속될 수 있다. 그러나, △Vpgm은 가장 낮은 프로그래밍 상태에 대한 프로그래밍이 완료로서 검증될 때까지 단계(728)에서 재설정되지 않는다. 상태 A에 프로그래밍되어야 하는 셀들로서 이미 상태 A에 프로그래밍된 이러한 셀들은 후속 프로그래밍으로부터 락아웃되고, 그리고 상태 A에 도달하지 못한 셀들로서 상태 A에 프로그래밍될 셀들은 후속 프로그래밍 및 검증을 겪게 된다. 상태 A 프로그래밍이 완료로서 검증될 때, 프로그램 전압 증분값은 △Vpgm2로 변경될 수 있다.
일부 셀들이 (예를 들어, 사전에 결정된 개수의 펄스들에 근거한 결정에 의해) 여전히 상태 A까지 상승될 필요가 있을 수 있을 때, 아래쪽 페이지 프로그래밍이 단계(722)에서 완료되었다는 결정이 있는 경우, 일 실시예에서 프로그래밍은 단계(726)에서 풀 시퀀스 프로그래밍으로 전이할 수 있다. 풀 시퀀스 프로그래밍에 대한 제 1 프로그램 전압 펄스가 인가되기 전에 검증이 수행될 수 있다. 아래쪽 페이지 프로그래밍 동안 최종 목표 상태에 도달한 임의의 셀들은 풀 시퀀스 프로그래밍 동안 추가적인 프로그래밍으로부터 락아웃될 수 있다. 아래쪽 페이지 프로그램이 완료되었는 결정이 있을 때까지 상태 A에 도달하지 못한 셀들로서 상태 A에 프로그래밍될 임의의 셀들은 풀 시퀀스 반복 동안 추가적인 프로그래밍을 겪게 된다. 풀 시퀀스 프로그래밍이 상태 A 레벨에서 검증을 수행할 수 있고, 그래서 아래쪽 페이지 프로그래밍 동안 목표 A 상태에 도달하지 못한 셀들은 풀 시퀀스 프로그래 밍 동안 상태 A에 프로그래밍될 수 있다. 일 실시예에서, 단계(726)에서의 풀 시퀀스 프로그래밍으로의 전이가 일어나는데, 이경우 가장 낮은 프로그래밍 상태가 완료로서 검증될 때까지(만약 이전에 그렇게 검증되지 않았다면), 아래쪽 페이지 프로그래밍은 완료되지만 프로그램 전압 증분값은 △Vpgm2로 변경되지 않는다.
도 16에 도시된 바와 같은 아래쪽 페이지 프로그래밍 완료 이후의 더 큰 증분값 및 단지 풀 시퀀스 프로그래밍(혹은 위쪽 페이지 프로그래밍)으로의 전이를 사용하는 실시예들은 특정 실시에 있어서 여러 이점들을 제공할 수 있다. 예를 들어, 일부 메모리 디바이스들은 서로 다른 크기의 프로그램 전압 펄스들을 위한 프로그램 전압 신호를 만들기 위해 디지털 대 아날로그 컨버터를 사용할 수 있다. 일 실시예에서, 디지털 대 아날로그 컨버터는 로우 제어 회로의 일부를 형성할 수 있다. 일부 컨버터들은 필수 피크 값을 갖는 아날로그 프로그램 전압 펄스들을 만들기 위해 디지털 입력 값에 의존한다. 일부 경우에, 프로그램 전압 펄스 시퀀스 중에 프로그램 전압 증분값을 변경하는 것은 문제가 있을 수 있다. 증분 크기를 변경함으로써, 이전의 펄스에 새로운 증분값을 더한 값과 동일한 피크 값을 갖는 다음 펄스를 만들 수 없다. 오히려, 일부 컨버터들은, 마치 그 시퀀스에 대한 프로그래밍 시작 이래로 증분값이 새로운 레벨에 있었던 것처럼 다음 펄스를 만든다. 따라서, 이러한 컨버터를 사용하는 일 실시예에서, 시스템은 아래쪽 페이지 프로그램의 완료를 기다린다. 아래쪽 페이지 프로그래밍이 완료될 때, 디지털 대 아날로그 컨버터는 새로운 증분값 및 초기 프로그램 전압 펄스 크기로 재설정될 수 있다. 이러한 것은 프로그램 전압 펄스 값들에서의 임의의 불일치 혹은 큰 점프를 피할 수 있 다.
아래쪽 페이지 프로그래밍으로부터 풀 시퀀스 프로그래밍으로의 전이 또는 아래쪽 페이지 프로그래밍으로부터 위쪽 페이지 프로그래밍으로의 전이에 따른 실시예들이 설명되었지만, 이러한 실시예들은 단일 타입의 프로그래밍 동작에 적용될 수 있다. 예를 들어, 일 실시예에서, 더 작은 증분값 △Vpgml이 풀 시퀀스 프로그래밍에서 가장 낮은 프로그래밍 상태를 프로그래밍할 때 사용된다. 가장 낮은 프로그래밍 상태, 예를 들어 상태 A의 프로그래밍 완료 시, △Vpgm은 더 큰 증분값 △Vpgm2로 재설정될 수 있다. 이러한 방식으로, 상태 A에 프로그래밍된 메모리 셀들이 겪게되는 증가된 용량성 커플링 효과는 더 낮은 △Vpgml에 의해 보상된다. 프로그래밍 방법에서 어떠한 변경이 없을 지라도, 증분값은 더욱 정밀하게 가장 낮은 레벨의 프로그래밍 상태로 또한 조정된다.
일 실시예에서, 언제 가장 낮은 프로그래밍 상태가 프로그래밍을 완료하는지를 예측하기 위해 통계학이 사용된다. 프로그램 전압 증분 크기는 더 낮은 상태 프로그래밍의 예측된 완료 이후에 변경될 수 있다. 예를 들어, 더 낮은 상태가 시간의 90%인 8개의 펄스 이후에 프로그래밍을 완료한다고 결정될 수 있다. 프로그래밍 알고리즘은 제1의 여덟 개 프로그램 전압 펄스에 대해 더 작은 △Vpgml을 사용할 수 있고, 그 다음에 남아있는 펄스에 대해 더 큰 증분값 △Vpgm2으로 전환할 수 있다. 이러한 방식으로, 어떠한 회로도 아래쪽 페이지 프로그래밍이 실제로 완료되었는지 여부에 액세스하고 이에 응답하여 프로그램 전압 증분값을 변경할 필요가 없다. 오히려, 증분값은 특정된 혹은 사전에 결정된 개수의 펄스 이후 또는 프로그램 전압 신호의 인가 이후 자동으로 변경된다. 이러한 방법은 증분값을 바꾸기 전에 가장 낮은 프로그래밍 상태의 완료를 기다리는 앞서 언급된 기술들 중 어느 것과도 함께 사용될 수 있다. 예를 들어, 앞서 설명된 바와 같이 △Vpgm2으로의 전환 전에 인가된 사전에 결정된 개수의 펄스들은, 셀들을 상태 A로의 프로그래밍이 언제 완료될 지의 통계적 예측에 근거를 둘 수 있다.
아래쪽 페이지로부터 위쪽 페이지 혹은 풀 시퀀스 프로그래밍으로 전이시 또는 제 1 프로그래밍 상태에 대한 프로그래밍 완료시 증분값을 변경하는 기술은 프로그래밍을 위한 다른 기술과 함께 결합될 수 있다. 일 실시예에서, 변경된 증분값과 함께 소위 비정밀/정밀 프로그래밍(coarse/fine programming)이 사용될 수 있다.
비정밀/정밀 프로그래밍에서, 비정밀 프로그래밍 단계는 더 빠른 방식으로 임계 전압을 상승시키려 하는 반면에 조밀한 임계 전압 분포를 달성하려 하지 않는 것으로 구성된다. 정밀 프로그래밍 단계는 목표 임계 전압에 도달하기 위해 더 느린 방식으로 임계 전압을 상승시켜 더 조밀한 임계 전압 분포를 달성하려 한다. 비정밀/정밀 프로그래밍 방법의 일 예는 미국 특허번호 제6,643,188호에서 찾을 수 있으며, 이 문헌은 그 전체가 참조로 본 명세서에 통합된다.
도 17 및 도 18은 비정밀/정밀 프로그래밍 방법의 일 예를 더 상세히 제공한다. 도 17A 및 도 18A는 제어 게이트에 인가된 프로그래밍 펄스 Vpgm을 나타낸다. 도 17B 및 도 18B는 프로그래밍되는 메모리 셀들에 대한 비트 라인 전압을 나타낸 다. 도 17C 및 도 18C는 프로그래밍되는 메모리 셀들의 임계 전압을 나타낸다. 이러한 예는, 도면에서 VvA1 및 VvA로 표시된, 두 개의 검증 레벨을 사용하여 상태 A로의 메모리 셀들의 프로그래밍을 나타낸다. 최종 목표 레벨은 VvA이다. 메모리 셀의 임계 전압이 VvA에 도달할 때, 메모리 셀은 메모리 셀에 대응하는 비트 라인에 금지 전압을 인가함으로써 후속 프로그래밍이 금지된다. 예를 들어, 비트 라인 전압은 Vinhibit(도 17B 및 도 17B 참조)까지 상승될 수 있다. 그러나, 메모리 셀이 목표 값 VvA에 가까운(혹은 더 작은) 임계 전압에 도달했을 때, 후속 프로그래밍 펄스 동안의 메모리 셀의 임계 전압 시프트는, 비트 라인에 일정 바이어스 전압, 전형적으로는 약 0.3v 내지 0.8v의 전압을 인가함으로써, 느려진다. 임계 전압 시프트의 속도가 다음 몇 개의 프로그래밍 펄스 동안 감소되기 때문에, 최종 임계 전압 분포의 폭은 더 좁아진다. 이러한 방법을 구현하기 위해, VvA보다 더 낮은 제 2 검증 레벨이 사용된다. 이러한 제 2 검증 레벨은 도 17 및 도 18에서 VvA1로 도시되어 있다. 메모리 셀의 임계 전압이 VvA1보다 크지만 VvA보다 훨씬 더 낮을 때, 메모리 셀에 대한 임계 전압 시프트는 비트 라인 바이어스 Vs(도 18B)를 인가함으로써 후속 프로그래밍 펄스들에 대해 감소된다. 유의할 것으로, 이러한 경우에 두 개의 검증 동작이 각각의 상태에 대해 요구된다. 그 하나는, 비정밀/정밀 프로그래밍 방법이 적용되는 각각의 상태에 대한 대응하는 최종 검증 레벨(예를 들어, VvA)에서의 하나의 검 증 동작이고, 다른 하나는, 각각의 상태에 대한 대응하는 제 2 검증 레벨(예를 들어, VvA1)에서의 하나의 검증 동작이다. 이것은 메모리 셀들을 프로그래밍하기 위해 필요한 전체 시간을 증가시킬 수 있다. 그러나, 더 큰 △Vpgm 스텝 크기가 프로세스의 속도를 높이기 위해 사용될 수 있다.
도 17A, 도 17B, 및 17C는 메모리 셀들의 동작을 나타내며, 그 임계 전압은 일 프로그래밍 펄스에서 VvA1 및 VvA를 넘어 움직인다. 예를 들어, 임계 전압이 t2와 t3 사이에서 VvA1 및 VvA를 지나도록 도 17C에서 도시된다. 따라서, t3 이전에, 메모리 셀은 비정밀 단계에 있다. t3 이후에, 메모리 셀은 금지 모드에 있다.
도 18A, 도 18B, 및 18C는 비정밀 및 정밀 프로그래밍 단계 양쪽 모두에 진입하는 메모리 셀을 나타낸다. 메모리 셀의 임계 전압이 시간 t2와 시간 t3 사이에서 VvA1와 교차한다. t3 이전에 메모리 셀은 비정밀 단계에 있다. t3 이후에, 비트 라인 전압이 Vs까지 상승되어 메모리 셀을 정밀 단계에 놓는다. t3과 t4 사이에서, 메모리 셀의 임계 전압은 VvA와 교차한다. 따라서, 메모리 셀은 비트 라인 전압을 Vinhibit까지 상승시킴으로써 후속 프로그래밍이 금지된다.
일 실시예에서, 이러한 비정밀/정밀 프로그래밍 기술은 증분값 변경시에 사용된다. 비정밀/정밀 프로그래밍의 사용은 임계 전압 분포의 폭을 더 좁게 만들 수 있다. 이러한 것은 더 큰 증분값의 사용으로 인한 분포 폭의 임의의 증가를 보상하 기 위해 사용될 수 있다. 이러한 기술은 다양한 방식으로 증분값 변경에 통합될 수 있다.
예를 들어, 비정밀/정밀 프로그래밍은 일 실시예에서 각각의 상태를 프로그래밍하고 검증할 때 사용될 수 있다. 그러나, 증분값이 변경되는 일 실시예에서, 비정밀/정밀 프로그래밍은 증분값에서의 전환과 함께 사용될 수 있다. 예를 들어, 단일의 최종 검증 레벨이, 만약 셀들이 예를 들어 상태 A에 도달했는지 여부를 결정하기 위해 아래쪽 페이지를 프로그래밍할 때 사용될 수 있다. 증분값을 증가시킨 이후에 풀 시퀀스에서의 프로그래밍시 혹은 위쪽 페이지에 대한 프로그래밍시, 비정밀/정밀 프로그래밍이 수행될 수 있다. 일 실시예에서, 비정밀 및 정밀 검증 레벨이, 풀 시퀀스 혹은 위쪽 페이지 프로그래밍 동안 각각의 상태에 대해 사용된다. 다른 실시예에서, 비정밀 및 정밀 검증 레벨은 선택 상태 혹은 상태들에 대해서만 단지 사용된다. 예를 들어, 비정밀 및 정밀 레벨이 상태 B 및 상태 C에 대해서만 혹은 상태 C에 대해서만 사용될 수 있다.
본 발명의 앞서의 상세한 설명은 예시적 목적 및 설명의 목적으로 제공된 것이다. 이러한 것을 통해 본 발명 전부를 나타내려 하거나 혹은 본 발명을 개시된 형태에 정확히 한정시키려는 것이 아니다. 많은 변형 및 수정이 앞서의 설명에 따라 가능하다. 앞서 설명된 시시예들은 본 발명의 원리 및 그 실제 애플리케이션을 가장 잘 설명하여 본 발명의 기술분야에서 숙련된 다른 사람들이 본 발명을 다양한 실시예로 가장 잘 사용할 수 있도록 그리고 사용하고자 하는 특정 용도에 적합하게 다양한 수정을 통해 가장 잘 사용할 수 있도록 하기 위해 선택된 것이다. 본 발명 의 범위는 첨부되는 특허청구범위에 의해 정의되는 바와 같다.

Claims (18)

  1. 비휘발성 메모리 시스템으로서,
    복수 상태의 비휘발성 저장 소자들의 세트와; 그리고
    복수의 상기 비휘발성 저장 소자들과 통신하는 관리 회로를 포함하여 구성되고,
    상기 관리 회로는 상기 복수 상태의 비휘발성 저장 소자들의 세트에 데이터를 프로그래밍하도록 요구하는 요청을 수신하고, 상기 비휘발성 저장 소자들에 상기 데이터를 프로그래밍하기 위해 상기 세트에 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하고, 그리고 상기 데이터의 프로그래밍을 완료하기 위해 상기 세트에 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가함으로써, 복수의 상기 비휘발성 저장 소자들을 프로그래밍 하고,
    상기 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 것은 상기 프로그램 전압 펄스들 각각의 크기를 상기 사전에 결정된 개수에 도달할 때까지 제 1 증분값만큼 증가시키는 것을 포함하고, 그리고
    상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 것은 상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들 각각의 크기를 제 2 증분값만큼 증가시키는 것을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  2. 제1항에 있어서,
    상기 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 것은,
    제 1 프로그래밍 상태, 제 2 프로그래밍 상태, 및 제 3 프로그래밍 상태에 프로그래밍되도록 비휘발성 저장 소자들의 임계 전압을 상승시키는 것을 포함하고,
    상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 것은, 상기 제 2 프로그래밍 상태 및 상기 제 3 프로그래밍 상태에 프로그래밍되도록 비휘발성 저장 소자들의 임계 전압을 상승시키는 것을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  3. 제1항에 있어서,
    상기 제 2 증분값은 상기 제 1 증분값보다 더 큰 것을 특징으로 하는 비휘발성 메모리 시스템.
  4. 제1항에 있어서,
    상기 관리 회로는 상기 사전에 결정된 개수의 프로그램 전압 펄스들 및 상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 포함하는 프로그램 전압 신호를 제공하는 디지털 대 아날로그 컨버터(digital to analog converter)를 포함하고,
    상기 관리 회로는 상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하기 전에 상기 프로그램 전압 신호를 재설정하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  5. 제4항에 있어서,
    상기 관리 회로는, 상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하기 전에, 상기 프로그램 전압 신호의 피크값을 초기값으로 낮춤으로써 상기 프로그램 전압 신호를 재설정하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  6. 제1항에 있어서,
    상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 것은 상기 추가적인 프로그램 전압 펄스들 중 첫번째 추가적인 프로그램 전압 펄스를 인가하는 것을 포함하고,
    상기 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 것은 상기 사전에 결정된 개수의 프로그램 전압 펄스들 중 마지막 프로그램 전압 펄스를 인가하는 것을 포함하고, 그리고
    상기 첫번째 추가적인 프로그램 전압 펄스는 상기 마지막 프로그램 전압 펄스의 피크값과 상기 제 2 증분값을 합한 값과 실질적으로 동일한 피크값을 갖는 것을 특징으로 하는 비휘발성 메모리 시스템.
  7. 제1항에 있어서,
    상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 것은 상기 추가적인 프로그램 전압 펄스들 중 첫번째 추가적인 프로그램 전압 펄스를 인가하는 것을 포함하고,
    상기 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 것은 상기 사전에 결정된 개수의 프로그램 전압 펄스들 중 마지막 프로그램 전압 펄스를 인가하는 것을 포함하고, 그리고
    상기 첫번째 추가적인 프로그램 전압 펄스는 상기 마지막 프로그램 전압 펄스의 피크값과 제 3 증분값을 합한 값과 실질적으로 동일한 피크값을 갖는 것을 특징으로 하는 비휘발성 메모리 시스템.
  8. 제7항에 있어서,
    상기 제 3 증분값은 상기 제 2 증분값보다 더 큰 것을 특징으로 하는 비휘발성 메모리 시스템.
  9. 제1항에 있어서,
    상기 복수 상태의 비휘발성 저장 소자들의 세트는 복수 상태의 NAND 타입 플래시 메모리 디바이스들의 세트인 것을 특징으로 하는 비휘발성 메모리 시스템.
  10. 비휘발성 저장소를 프로그래밍하는 방법으로서,
    복수 상태의 비휘발성 저장 소자들의 세트에 데이터를 프로그래밍하도록 요구하는 요청을 수신하는 단계와;
    상기 비휘발성 저장 소자들에 상기 데이터를 프로그래밍하기 위해 비휘발성 저장 소자들의 세트에 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 단계와; 그리고
    상기 데이터의 프로그래밍을 완료하기 위해 상기 비휘발성 저장 소자들의 세트에 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 단계를 포함하여 구성되고,
    상기 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 것은 상기 프로그램 전압 펄스들 각각의 크기를 상기 사전에 결정된 개수에 도달할 때까지 제 1 증분값만큼 증가시키는 것을 포함하고, 그리고
    상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 것은 상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들 각각의 크기를 제 2 증분값만큼 증가시키는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소 프로그래밍 방법.
  11. 제10항에 있어서,
    상기 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 단계는, 제 1 프로그래밍 상태, 제 2 프로그래밍 상태, 및 제 3 프로그래밍 상태에 프로그래밍되도록 비휘발성 저장 소자들의 임계 전압을 상승시키는 것을 포함하고,
    상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 단계는, 상기 제 2 프로그래밍 상태 및 상기 제 3 프로그래밍 상태에 프로그래밍되도록 비휘발성 저장 소자들의 임계 전압을 상승시키는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소 프로그래밍 방법.
  12. 제10항에 있어서,
    상기 제 2 증분값은 상기 제 1 증분값보다 더 큰 것을 특징으로 하는 비휘발성 저장소 프로그래밍 방법.
  13. 제10항에 있어서,
    상기 사전에 결정된 개수의 프로그램 전압 펄스들 및 상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들은 공통의 프로그램 전압 신호에 의해 제공되고, 그리고
    상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하기 전에 상기 프로그램 전압 신호를 재설정하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장소 프로그래밍 방법.
  14. 제13항에 있어서,
    상기 프로그램 전압 신호를 재설정하는 단계는, 상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하기 전에, 상기 프로그램 전압 신호의 피크값을 초기값으로 낮추는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소 프로그래밍 방법.
  15. 제10항에 있어서,
    상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 단계는 상기 추가적인 프로그램 전압 펄스들 중 첫번째 추가적인 프로그램 전압 펄스를 인가하는 것을 포함하고,
    상기 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 단계는 상기 사전에 결정된 개수의 프로그램 전압 펄스들 중 마지막 프로그램 전압 펄스를 인가하는 것을 포함하고, 그리고
    상기 첫번째 추가적인 프로그램 전압 펄스는 상기 마지막 프로그램 전압 펄스의 피크값과 상기 제 2 증분값을 합한 값과 실질적으로 동일한 피크값을 갖는 것을 특징으로 하는 비휘발성 저장소 프로그래밍 방법.
  16. 제10항에 있어서,
    상기 하나 또는 그 이상의 추가적인 프로그램 전압 펄스들을 인가하는 단계는 상기 추가적인 프로그램 전압 펄스들 중 첫번째 추가적인 프로그램 전압 펄스를 인가하는 것을 포함하고,
    상기 사전에 결정된 개수의 프로그램 전압 펄스들을 인가하는 단계는 상기 사전에 결정된 개수의 프로그램 전압 펄스들 중 마지막 프로그램 전압 펄스를 인가하는 것을 포함하고, 그리고
    상기 첫번째 추가적인 프로그램 전압 펄스는 상기 마지막 프로그램 전압 펄스의 피크값과 제 3 증분값을 합한 값과 실질적으로 동일한 피크값을 갖는 것을 특징으로 하는 비휘발성 저장소 프로그래밍 방법.
  17. 제16항에 있어서,
    상기 제 3 증분값은 상기 제 2 증분값보다 더 큰 것을 특징으로 하는 비휘발성 저장소 프로그래밍 방법.
  18. 제16항에 있어서,
    상기 복수 상태의 비휘발성 저장 소자들의 세트는 복수 상태의 NAND 타입 플래시 메모리 디바이스들의 세트인 것을 특징으로 하는 비휘발성 저장소 프로그래밍 방법.
KR1020097009661A 2006-10-10 2007-10-05 비휘발성 메모리 프로그램 동작에서의 가변 프로그램 전압 증분값 KR101013200B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/548,267 2006-10-10
US11/548,264 US7474561B2 (en) 2006-10-10 2006-10-10 Variable program voltage increment values in non-volatile memory program operations
US11/548,264 2006-10-10
US11/548,267 US7450426B2 (en) 2006-10-10 2006-10-10 Systems utilizing variable program voltage increment values in non-volatile memory program operations

Publications (2)

Publication Number Publication Date
KR20090089310A KR20090089310A (ko) 2009-08-21
KR101013200B1 true KR101013200B1 (ko) 2011-02-10

Family

ID=39046765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097009661A KR101013200B1 (ko) 2006-10-10 2007-10-05 비휘발성 메모리 프로그램 동작에서의 가변 프로그램 전압 증분값

Country Status (3)

Country Link
KR (1) KR101013200B1 (ko)
TW (1) TWI385665B (ko)
WO (1) WO2008045805A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5039079B2 (ja) * 2009-03-23 2012-10-03 株式会社東芝 不揮発性半導体記憶装置
US8953386B2 (en) 2012-10-25 2015-02-10 Sandisk Technologies Inc. Dynamic bit line bias for programming non-volatile memory
EP4181131B1 (en) * 2021-11-16 2024-04-03 Samsung Electronics Co., Ltd. Operation method of memory device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1249942A1 (en) * 2001-04-12 2002-10-16 Juniper Networks, Inc. Ingress noise reduction in a digital receiver

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
EP1249842B1 (en) * 2001-04-10 2009-08-26 STMicroelectronics S.r.l. Method for programming nonvolatile memory cells with program and verify algorithm using a staircase voltage with varying step amplitude
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US7177197B2 (en) * 2001-09-17 2007-02-13 Sandisk Corporation Latched programming of memory and method
TWI292914B (ko) * 2002-01-17 2008-01-21 Macronix Int Co Ltd
US7136304B2 (en) * 2002-10-29 2006-11-14 Saifun Semiconductor Ltd Method, system and circuit for programming a non-volatile memory array
US6937520B2 (en) * 2004-01-21 2005-08-30 Tsuyoshi Ono Nonvolatile semiconductor memory device
US7173859B2 (en) * 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
US7092290B2 (en) * 2004-11-16 2006-08-15 Sandisk Corporation High speed programming system with reduced over programming
US7301817B2 (en) * 2005-10-27 2007-11-27 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1249942A1 (en) * 2001-04-12 2002-10-16 Juniper Networks, Inc. Ingress noise reduction in a digital receiver

Also Published As

Publication number Publication date
TW200837760A (en) 2008-09-16
KR20090089310A (ko) 2009-08-21
TWI385665B (zh) 2013-02-11
WO2008045805A1 (en) 2008-04-17

Similar Documents

Publication Publication Date Title
US7474561B2 (en) Variable program voltage increment values in non-volatile memory program operations
US7450426B2 (en) Systems utilizing variable program voltage increment values in non-volatile memory program operations
KR100916679B1 (ko) 복수-레벨 셀 플래시 메모리에서 더 높은 레벨 상태들의 더빠른 프로그래밍
EP1812932B1 (en) High speed programming system with reduced over programming
EP1738374B1 (en) Variable programming of non-volatile memory
EP1886319B1 (en) Starting program voltage shift with cycling of non-volatile memory
KR101020812B1 (ko) 비휘발성 메모리에서 개선된 판독 동작을 위해 선택 상태에서 보상을 사용하여 감지 및 다른 크기의 마진 프로그래밍
EP2165338B1 (en) Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
EP2556509B1 (en) Saw-shaped multi-pulse programming for program noise reduction in memory
EP1971984B1 (en) Continued verification in non-volatile memory write operations
EP2067142B1 (en) Faster programming of highest multi-level state for non-volatile memory
KR100806327B1 (ko) 비휘발성 메모리의 프로그램 제어를 위한 비트라인 조절방식의 접근법
KR101013200B1 (ko) 비휘발성 메모리 프로그램 동작에서의 가변 프로그램 전압 증분값
KR100852506B1 (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
FPAY Annual fee payment

Payment date: 20140107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150105

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 10