KR101787802B1 - 비트 라인 전압 스텝 업을 이용한 비휘발성 메모리의 프로그래밍 - Google Patents

비트 라인 전압 스텝 업을 이용한 비휘발성 메모리의 프로그래밍 Download PDF

Info

Publication number
KR101787802B1
KR101787802B1 KR1020137004047A KR20137004047A KR101787802B1 KR 101787802 B1 KR101787802 B1 KR 101787802B1 KR 1020137004047 A KR1020137004047 A KR 1020137004047A KR 20137004047 A KR20137004047 A KR 20137004047A KR 101787802 B1 KR101787802 B1 KR 101787802B1
Authority
KR
South Korea
Prior art keywords
storage elements
programming
volatile storage
state
bit line
Prior art date
Application number
KR1020137004047A
Other languages
English (en)
Other versions
KR20140012608A (ko
Inventor
디판슈 두타
제프리 더블유. 루체
Original Assignee
샌디스크 테크놀로지스 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샌디스크 테크놀로지스 엘엘씨 filed Critical 샌디스크 테크놀로지스 엘엘씨
Publication of KR20140012608A publication Critical patent/KR20140012608A/ko
Application granted granted Critical
Publication of KR101787802B1 publication Critical patent/KR101787802B1/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/10Programming or data input circuits
    • 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/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/24Bit-line control 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/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
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory

Landscapes

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

Abstract

타겟 데이터 상태(402, 404, 406)를 갖는 저장 소자들에 대한 비트 라인 전압이, 프로그램 전압에서의 스텝 업과 동일한 비율로 스텝 업되는 프로그래밍 기법을 사용하여, 비휘발성 메모리 디바이스(196)의 임계 전압 분포들(A, B, C)이 좁아지고, 그리고/또는 프로그래밍 시간이 감소된다. 비트 라인 전압의 스텝 업은 저장 소자들의 서로 다른 서브세트들에 대해, 이들의 타겟 데이터 상태(402, 404, 406)에 따라, 프로그래밍 패스에서 서로 다른 시간들에 수행된다. 비트 라인 전압(Vbc)의 스텝 업의 시작 및 중지는 고정 프로그램 펄스 수에 근거하여 설정되거나 프로그래밍 과정에 근거하여 적응적일 수 있다. 변형은 고정 비트 라인 스텝, 가변 비트 랑니 스텝, 데이터 상태-의존 비트 라인 스텝, 하나 이상의 데이터 상태들에 대해 비트 라인을 스텝 업하지 않을 옵션 및 추가의 비트 라인 바이어스를 부가할 옵션을 사용하는 것을 포함한다.

Description

비트 라인 전압 스텝 업을 이용한 비휘발성 메모리의 프로그래밍{PROGRAMMING NON-VOLATILE MEMORY WITH BIT LINE VOLTAGE STEP UP}
본 발명은 비휘발성 메모리와 관련된다.
반도체 메모리는 다양한 전자 디바이스들에서 점점 더 보편적으로 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리가 휴대 전화, 디지털 카메라, PDA(personal digital assistants), 모바일 컴퓨팅 디바이스, 논-모바일 컴퓨팅 디바이스 및 다른 디바이스들에서 사용된다. EEPROM 및 플래시 메모리는 그 중에서도 특히 가장 널리 사용되는 비휘발성 반도체 메모리들이다. 전통적인 풀-피쳐(full-featured) EEPROM과는 대조적으로, 플래시 메모리(역시 EEPROM의 일종임)를 사용하여, 전체 메모리 어레이의 내용 또는 메모리의 일부의 내용이 한 단계(one-step)에서 소거될 수 있다.
전통적인 EEPROM과 플래시 메모리는 모두 반도체 기판에서 채널 영역 위에 위치함과 아울러 채널 영역으로부터 절연된 플로팅 게이트를 사용한다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치한다. 제어 게이트는 플로팅 게이트 위에 제공되고 플로팅 게이트로부터 절연된다. 트랜지스터의 임계 전압(Vth)은 따라서 플로팅 게이트 상에 보유되는 전하의 양에 의해 제어된다. 즉, 트랜지스터의 소스와 드레인 사이의 도통(conduction)을 허용하기 위하여 트랜지스터가 턴온(turn on)되기 전에 제어 게이트에 인가되어야만 하는 전압의 최소량이 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.
일부 EEPROM과 플래시 메모리 디바이스는, 2 개의 전하 범위들을 저장하는데 사용되는 플로팅 게이트를 구비하며, 따라서, 메모리 소자가 두 상태들, 예를 들어, 소거 상태와 프로그램 상태(programmed state) 사이에서 프로그램/소거 될 수 있다. 이러한 플래시 메모리 디바이스는 때때로 바이너리 플래시 메모리 디바이스라 칭해지는바, 그 이유는 각각의 메모리 소자가 1비트의 데이터를 저장할 수 있기 때문이다.
다중-상태(또한 다중-레벨이라고도 칭해짐) 플래시 메모리 디바이스는 복수의 개별(distict) 허용/유효(allowed/valid) 프로그램된 임계 전압 범위들을 식별함으로써 구현된다. 각각의 개별 임계 전압 범위는 메모리 디바이스에서 엔코딩되는 데이터 비트들의 세트에 대한 소정의 값에 대응한다. 예를 들어, 각각의 메모리 소자는 상기 소자가 4개의 개별(distinct) 임계 전압 범위들에 대응하는 4개의 이산(discrete) 전하 밴드들 중 하나에 위치될 수 있을 때 2 비트의 데이터를 저장할 수 있다.
특히, 메모리 디바이스들의 크기가 축소됨에 따라, 프로그래밍 시간을 감소시키면서도 임계 전압 범위들을 정확하게 프로그래밍하기 위한 기법들이 필요하다.
도 1은 단일 행/열 디코더들 및 판독/기록 회로들을 사용하는 비휘발성 메모리 시스템의 블록도이다.
도 2는 도 1의 감지 블록(100)의 일 실시예를 도시하는 블록도이다.
도 3은 도 1의 메모리 어레이(155) 내의 NAND 플래시 메모리 셀들의 블록들을 도시한다.
도 4a는 1-패스 기록(one-pass write)" 프로그래밍 기법으로 지칭되는, 예시적인 임계 전압 분포 및 1-패스 프로그래밍을 도시한다.
도 4b 및 4c는 "2-패스 기록" 프로그래밍으로 지칭되는, 예시적인 임계 전압 분포 및 2-패스 프로그래밍을 도시한다.
도 5a는 최대 2 개의 프로그래밍 속도들이 "퀵 패스 기록(QPW: quick pass write)" 프로그래밍 옵션에서 사용될 수 있는, 예시적인 임계 전압 분포 및 1-패스 기록 프로그래밍을 도시한다.
도 5b는 제1 프로그래밍 패스에서, 최대 2 개의 프로그래밍 속도들이 QPW 프로그래밍 옵션으로 사용될 수 있는, 2-패스 프로그래밍 동안의 A-상태를 위한 예시적인 임계 전압 분포를 도시한다.
도 5c는 제2 프로그래밍 패스에서, 최대 2 개의 프로그래밍 속도들이 QPW 프로그래밍 옵션으로 사용될 수 있는, 2-패스 프로그래밍 동안의 A-상태를 위한 예시적인 임계 전압 분포를 도시한다.
도 6a, 6b, 6c는, 중간 또는 낮은 중앙 하위(lower-middle; LM) 검증 전압이 사용되는 "3-패스 기록" 프로그래밍 기법으로서 칭해지는 3 패스 프로그래밍 동작의 제1, 제2 및 제3 프로그래밍 패스들을 각각 도시한다.
도 6d는 도 6a가 제1 프로그래밍 패스를 도시하고, 최대 2 개의 프로그래밍 속도들이 QPW 프로그래밍 옵션으로 사용될 수 있는, "2-패스 기록" 프로그래밍 기법으로서 지칭되는 2-패스 프로그래밍 동작의 제2 프로그래밍 패스를 도시한다.
도 7a는 저장 소자들의 세트에 대한 2-패스 프로그래밍 동작을 앞-뒤로의(back-and-forth) 워드 라인 순서로 도시한다.
도 7b는 저장 소자들의 세트에 대한 3-패스 프로그래밍 동작을 앞-뒤로의 워드 라인 순서로 도시한다.
도 8은 저장 소자를 프로그래밍하는데 필요한 최고의 Vpgm과 저장 소자의 비트 라인 전압 사이의 관계를 도시한다.
도 9a는 비트 라인 전압이 스텝 업되는 프로그래밍 기법을 도시한다.
도 9b는 도 9a의 프로그래밍 기법의 예로서, 검증 동작들을 겪는 데이터 상태들을 프로그램 펄스 수의 함수로서 도시한다.
도 10은 도 9b의 순서(960)에 대해, 프로그램-검증 동작들을 프로그램 펄스 수의 함수로서 도시한다.
도 11a는 서로 다른 데이터 상태들에 대해 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝-업을 도시하며, 여기서 모든 데이터 상태들에 대해 공통 스템 사이즈가 사용된다.
도 11b는 A-상태 저장 소자들에 대해 비트 라인 스텝 업 루프를 시작하기 위한 트리거 조건을 도시한다.
도 11c는 A-상태 저장 소자들에 대해 비트 라인 스텝 업 루프를 정지하기 위한 트리거 조건을 도시한다.
도 12a는 도 11a에 따라, A-상태 저장 소자들에 대해 프로그래밍 속도를 프로그램 펄스 수의 함수로서 도시한다.
도 12b는 도 11a에 따라, B-상태 저장 소자들에 대해 프로그래밍 속도를 프로그램 펄스 수의 함수로서 도시한다.
도 12c는 도 11a에 따라, C-상태 저장 소자들에 대해 프로그램 펄스 수의 함수로서 프로그래밍 속도를 도시한다.
도 13은 서로 다른 데이터 상태들에 대해 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝 업을 도시하며, 여기서 모든 데이터 상태들에 대해, 더 작은 스텝 사이즈, 그후 더 큰 스텝 사이즈, 그후 더 작은 스텝 사이즈가 사용된다.
도 14는 서로 다른 데이터 상태들에 대해 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝 업을 도시하며, 여기서 더 낮은 데이터 상태들에 대해 더 큰 스텝 사이즈가 사용되고, 가장 높은 데이터 상태에 대해 더 작은 스텝 사이즈가 사용된다.
도 15는 서로 다른 데이터 상태들에 대해 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝 업을 도시하며, 공통 스텝 사이즈가 모든 데이터 상태들에 대해 사용되고, 추가적인 비트 라인 전압이 임계 전압 레벨에 근거하여 부가된다.
프로그래밍 시간을 감소시키는 한편 임계 전압 범위들을 정확하게 프로그래밍하는 방법 및 비휘발성 저장 시스템이 제공된다.
프로그래밍 동작 중에, 프로그래밍 시간을 감소시키는 것과 서로 다른 데이터 상태들에 대해 좁은 임계 전압 범위들을 달성하는 것 사이에는 트레이드오프(tradeoff)가 존재한다. 더 큰 프로그램 펄스 스텝 사이즈를 사용함으로써 프로그래밍 속도가 증가될 수 있다. 그러나, 이는 결과적으로 검증 레벨을 넘어서는 큰 오버슈트를 야기하여, 넓은 임계 전압(Vth) 범위가 되게 한다. 반면, 더 작은 프로그램 펄스 스텝 사이즈가 사용되면, 증가된 프로그래밍 시간의 비용으로 좁은 Vth 범위가 달성된다. 또 다른 기법은 이중 검증 기법으로, 각각의 상태에 대해 두 개의 개별 검증 레벨들에서 저장 소자들을 검증하는 것이다. 저장 소자의 Vth가 하위 검증 레벨(lower verify level)을 초과할 때, 그것의 프로그래밍 속도는 비트 라인 바이어스를 인가함으로써 느려진다. 비트 라인 바이어스 없이는, 저장 소자의 Vth는, 각 프로그램 펄스마다 프로그램 펄스의 스텝 사이즈와 거의 동일한 양만큼 증가한다. 비트 라인 바이어스를 사용하여, 저장 소자의 Vth는 각각의 프로그램 펄스 마다 프로그램 펄스의 스텝 사이즈보다 작은 양만큼 증가한다. 따라서, 저장 소자는 그 Vth가 타겟 데이터 상태의 하위 검증 레벨을 초과할 때 감소된 속도에서 프로그램될 수 있고, Vth가 타겟 데이터 상태의 상위 검증 레벨(higher verify level)을 초과할 때 추가의 프로그래밍으로부터 록 아웃(lock out)될 수 있다.
이중 검증 기법에서, 각 상태에 대한 하위 검증 레벨과 상위 레벨 사이의 거리가 실리콘에 대해 최적화되고 Vth 분포가 가장 좁아지는 점으로 설정된다. 하위 검증 레벨과 상위 검증 레벨 사이의 갭이 너무 높으면, 저장 소자의 Vth 증가들이 정상 상태 값(예를 들어, 프로그램 펄스 스텝 사이즈와 동일)으로 다시 변화할 것이고, 따라서 이중 검증 기법의 이점이 실현되지 않는다. 반면에, 하위 검증 레벨과 상위 검증 레벨 사이의 갭이 너무 작으면, 일 프로그램 펄스에서 많은 저장 소자들의 Vth가 갭을 뛰어 넘을(jump over) 수 있고 따라서 이들의 프로그래밍 속도가 느려지지 않는다. 일반적으로, 최적의 갭은 프로그램 펄스 스텝 사이즈의 함수이다. Vth는 각 프로그램 펄스 마다 더 크게 점프하고 따라서 일 프로그램 펄스만을 사용하여 Vth가 갭 바로 위로 점프하지 않고 상위 검증 레벨을 넘어서는 것을 보장하기 위해서 더 큰 갭이 요구되기 때문에, 프로그램 펄스 스텝 사이즈가 클수록 최적의 갭이 증가되는 경향이 있다.
또한, 이중 검증 기법으로는, 메모리 디바이스들이 축소(scale down)됨에 따라, 프로그램 노이즈가 더 심해진다. 특정 프로그램 펄스에서, 저장 소자들의 다수의 Vth가 프로그램 펄스 스텝 사이즈와 거의 동일한 양만큼 점프한다 하더라도, 많은 저장 소자들은 그 Vth 점프가 훨씬 더 높다. 결과적으로, 서로 다른 저장 소자들에 대해 최적의 갭이 서로 다르고 최적화하기가 어렵다.
이 문제들을 극복하기 위하여, Vth 분포 폭들이 좁아지도록, 저장 소자들의 다수가 프로그래밍시에 느려지는 것을 보장하는 프로그래밍 기법이 제공된다. 이 기법에서, 특정한 타겟 데이터 상태를 갖는 저장 소자들을 위한 비트 라인 전압(Vbl)은, 복수의 연속적인 프로그램 펄스들의 범위에 대해, 순차적인 프로그램 펄스들로 스텝 업된다. 각각의 타겟 데이터 상태에 대해 서로 다른 범위의 프로그램 펄스들이 사용될 수 있으나, 상기 범위들은 오버랩될 수 있다. 비트 라인 전압 스텝 업은 저장 소자들의 다수가 그들의 타겟 데이터 상태로 프로그래밍을 완료하는 것에 근접한 때 시간 기간 내에 이루어질 수 있다. 이 기간 동안에, 이 저장 소자들의 Vth의 증가 속도가 효과적으로 낮아져, 더 낮은 Vth 분포에 이른다. 또한, 특정한 타겟 데이터 상태로 프로그램되고 있는 모든 저장 소자들의 비트 라인 전압들이 스텝 업되어, 아직 록 아웃되지 않은 그 타겟 상태에 속한 모든 저장 소자들이 프로그래밍시 느려진다.
프로그래밍 기법에 대한 변형은 고정 비트 라인 단계, 가변 비트 라인 단계, 데이터 상태-의존 비트 라인 단계, 하나 이상의 데이터 상태들에 대해 비트 라인을 스텝 업하지 않는 옵션 및 비트 라인 단계에 추가의 비트 라인 바이어스를 부가하는 옵션을 사용하는 것을 포함한다.
상기 프로그래밍 기법과 함께 사용될 수 있는 예시적인 메모리 시스템이 다음에 논의된다. 도 1은 단일 행/열 디코더들 및 판독/기록 회로들을 사용하는 비휘발성 메모리 시스템의 블록도이다. 도면은 일 실시예에 따라, 저장 소자들의 페이지를 병렬로 판독 및 프로그래밍하기 위한 판독/기록 회로들을 가지는 메모리 디바이스(196)를 도시한다. 메모리 디바이스(196)는 하나 이상의 메모리 다이(198)를 포함할 수 있다. 메모리 다이(198)는 저장 소자들의 2차원 메모리 어레이(155), 제어 회로(110), 및 판독/기록 회로들(165)을 포함한다. 메모리 어레이(155)는 도 3과 관련하여 더 논의된다.
일부 실시예들에서, 저장 소자들의 어레이는 3차원일 수 있다. 메모리 어레이(155)는 행 디코더(130)를 통해 워드 라인들에 의해 그리고 열 디코더(160)를 통해 비트 라인들에 의해 어드레스 가능하다. 판독/기록 회로들(165)은 복수의 감지 블록들(100)을 포함하며 저장 소자들의 페이지가 병렬적으로(in parallel) 판독 또는 프로그램될 수 있게 해준다. 일반적으로, 제어기(150)가 상기 하나 이상의 메모리 다이(198)와 동일한 메모리 디바이스(196)(예를 들어, 제거가능한 저장 카드)에 포함된다. 명령들 및 데이터는 라인들(120)을 통해 호스트와 제어기(150) 사이에서 그리고 라인들(118)을 통해 제어기와 하나 이상의 메모리 다이(198) 사이에서 전송된다.
제어 회로(110)는 판독/기록 회로들(165)과 협력하여 메모리 어레이(155)에 대해 메모리 동작들(memory operations)을 수행하며, 상태 머신(112), 온-칩 어드레스 디코더(114) 및 전력 제어 모듈(116)을 포함한다. 상태 머신(112)은 메모리 동작들에 대한 칩-레벨 제어를 제공한다. 온-칩 어드레스 디코더(114)는 호스트 또는 메모리 제어기에 의해 사용되는 어드레스와 디코더들(130, 160)에 의해 사용되는 하드웨어 어드레스 사이의 어드레스 인터페이스를 제공한다. 전력 제어 모듈(116)은 메모리 동작들 동안에 워드 라인들과 비트 라인들에 공급되는 전력 및 전압들을 제어한다.
일부 구현예들에서, 도 1의 구성요소들의 일부가 결합될 수 있다. 다양한 설계들에서, 메모리 어레이(155) 외의 하나 이상의 구성요소들이 (단독으로 또는 결합하여) 관리 또는 제어 회로로 고려될 수 있다. 예를 들어, 하나 이상의 제어 회로들은 제어 회로(110), 상태 머신(112), 디코더들(114/160), 전력 제어(116), 감지 블록들(100)(도 2의 프로세서(192) 포함), 판독/기록 회로들(165), 및 제어기(150) 등 중 임의의 것, 또는 이들의 조합을 포함할 수 있다. 감지 블록(100)은 도 2와 관련하여 더 논의된다.
또 다른 실시예에서, 비휘발성 메모리 시스템은 이중 행/열 디코더들 및 판독/기록 회로들을 사용한다. 다양한 주변 회로들에 의한 메모리 어레이(155)로의 액세스가, 어레이의 대향 면들(opposite sides) 상에서, 대칭적인 방식으로 구현되어, 각 면의 액세스 라인들 및 회로의 밀도가 절반으로 줄어든다. 따라서, 행 디코더는 두 개의 행 디코더들로 분할되고 열 디코더는 두 개의 열 디코더들로 분할된다. 마찬가지로, 판독/기록 회로들은, 바닥부(bottom)로부터의 비트 라인들에 연결하는 판독/기록 회로들과 어레이(155)의 최상부(top)로부터의 비트 라인들에 연결하는 판독/기록 회로들로 분할된다. 이러한 식으로 판독/기록 모듈들의 밀도가 본질적으로 절반으로 감소된다.
도 2는 감지 블록의 일 실시예를 도시하는 블록도이다. 개별 감지 블록(100)은, 감지 모듈들(180) 또는 감지 증폭기들로 지칭되는 하나 이상의 코어 부분들, 및 관리 회로(190)로 지칭되는 공통 부분으로 분할된다. 일 실시예에서, 각각의 비트 라인을 위한 개별적인 감지 모듈(180)과, 복수의(예컨대, 4 또는 8개의) 감지 모듈들(180)의 세트를 위한 하나의 공통 관리 회로(190)가 존재할 것이다. 그룹 내의 감지 모듈들 각각은 데이터 버스(172)를 통해 관련된 관리 회로와 통신한다. 따라서, 저장 소자들의 세트의 감지 모듈들과 통신하는 하나 이상의 관리 회로들이 존재한다.
감지 모듈(180)은 연결된 비트 라인 내의 도통 전류(conduction current)가 소정의 임계 레벨을 초과하는지 또는 그 미만인지를 결정함으로써 감지를 행하는 감지 회로(170)를 포함한다. 감지 모듈(180)은 또한 연결된 비트 라인에 대한 전압 조건(voltage condition)을 설정하기 위하여 사용되는 비트 라인 래치(182)를 포함한다. 예를 들어, 비트 라인 래치(182)에 래치된 소정의 상태는 결과적으로 연결된 비트 라인이 프로그램 금지를 나타내는 상태(예를 들어, 1.5-3 V)로 풀(pull)되게 할 것이다. 예를 들어, 플래그=0은 프로그래밍을 금지할 수 있고, 반면 플래그=1은 프로그래밍을 금지하지 않는다.
관리 회로(190)는 프로세서(192), 데이터 래치들의 4개의 예시적인 세트(194-197) 및 상기 데이터 래치들의 세트(194)와 데이터 버스(120) 사이에 연결된 I/O 인터페이스(196)를 포함한다. 각각의 감지 모듈에 대해 데이터 래치들의 일 세트가 제공될 수 있고, QDL, UDL 및 LDL에 의해 식별된 3개의 데이터 래치들이 각 세트에 대해 제공될 수 있다. 프로세서(192)는 감지된 저장 소자 내에 저장된 데이터를 결정하고 그리고 결정된 데이터를 데이터 래치들의 세트에 저장하는 것과 같은 연산들을 수행한다. 데이터 래치들(194-197)의 각각의 세트는, 판독 동작 중에 프로세서(192)에 의해 결정된 데이터 비트들을 저장하기 위해, 그리고 프로그램 동작 중에 데이터 버스(120)로부터 유입되는 데이터 비트들(메모리에 프로그램될 기록 데이터를 나타냄)을 저장하기 위해 사용된다. I/O 인터페이스(196)는 데이터 래치들(194-197)과 데이터 버스(120) 사이의 인터페이스를 제공한다.
판독 중에, 시스템의 동작은 서로 다른 제어 게이트 전압들을 어드레스된 저장 소자에 공급하는 것을 제어하는 상태 머신(112)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 대응하는 다양한 소정의 제어 게이트 전압들을 거침(step through)에 따라, 감지 모듈(180)은 이 전압들 중 하나에 트립(trip)할 수 있고 버스(172)를 통해 감지 모듈(180)로부터 프로세서(192)로 대응하는 출력이 제공될 것이다. 그 시점에, 프로세서(192)는 감지 모듈의 트리핑 이벤트(들)(tripping event(s))과 입력 라인들(193)을 통해 상기 상태 머신으로부터 인가된 제어 게이트 전압에 관한 정보를 고려하여 결과적인 메모리 상태를 결정한다. 그후, 그것은 메모리 상태에 대한 바이너리 엔코딩을 연산하고 결과적인 데이터 비트들을 데이터 래치들(194-197)에 저장한다. 관리 회로(190)의 또 다른 실시예에서, 비트 라인 래치(182)는 감지 모듈(180)의 출력을 래치하기 위한 래치로서 그리고 또한 위에 설명된 것과 같은 비트 라인 래치로서의 두가지 역할(double dudy)을 한다.
일부 실시예들은 복수의 프로세서들(492)을 포함할 수 있다. 일 실시예에서, 각각의 프로세서(492)는 각각의 출력 라인들이 함께 와이어드-OR된 것과 같은 출력 라인(도시되지 않음)을 포함할 것이다. 일부 실시예들에서, 출력 라인들은 와이어드-OR 라인에 연결되기 전에 인버팅된다. 이 구성은 프로그램 검증 프로세스 동안에 언제 프로그래밍 프로세스가 완료되었는지에 대한 빠른 결정을 가능하게 하는데, 그 이유는, 와이어드-OR를 수신하는 상태 머신이, 프로그래밍되고 있는 모든 비트들이 언제 요구되는 레벨에 도달했는지를 결정할 수 있기 때문이다. 예를 들어, 각각의 비트가 그것의 요구되는 레벨에 도달했을 때, 그 비트에 대한 논리 0이 와이어드-OR 라인으로 송신(또는 데이터 1이 반전)될 것이다. 모든 비트들이 데이터 0을 출력할 때(또는 데이터 1이 반전될 때), 상태 머신은 프로그래밍 프로세스를 종료할 것을 인지한다. 각각의 프로세서가 8개의 감지 모듈들과 통신하므로, 상태 머신은 와이어드-OR 라인을 8번 판독할 필요가 있거나, 또는 로직이 프로세서(492)에 부가되어, 상태 머신이 와이어드-OR 라인을 한번만 판독하면 되도록, 연관된 비트 라인들의 결과들을 축적한다. 마찬가지로, 로직 레벨들을 정확하게 선택함으로서, 전역 상태 머신(global state machine)이, 제 1비트가 그 상태를 변경하고 이에 따라 알고리즘을 변경하는 때를 검출할 수 있다.
프로그램 또는 검증 동작들 동안, 프로그램될 데이터(기록 데이터)가 데이터 버스(120)로부터 데이터 래치들(194-197)의 세트에 저장된다. 프로그램 동작은, 상태 머신의 제어하에서, 어드레스된 저장 소자들의 제어 게이트들에 인가되는 일련의 프로그래밍 전압 펄스들을 포함한다. 각각의 프로그램 펄스 다음에는 저장 소자가 요구되는 메모리 상태로 프로그램되었는지를 결정하기 위한 재판독(read back)(검증)이 행해진다. 일부 경우들에, 프로세서(192)는 요구되는 메모리 상태에 관하여 재판독 메모리 상태(read back memory state)를 모니터링 한다. 두 상태들이 일치될 때, 프로세서(192)는 비트 라인 래치(182)를 설정하여, 비트 라인이 프로그램 금지를 나타내는 상태로 풀되게 한다. 프로그램 펄스들이 그 제어 게이트 상에 나타나지 않는다고 할지라도, 이는 비트 라인에 결합된 저장 소자가 추가로 프로그래밍되는 것을 금지시킨다. 다른 실시예들에서, 프로세서는 초기에 비트 라인 래치(182)를 로딩하고, 검증 과정 동안 감지 회로가 그것을 금지 값으로 설정한다.
데이터 래치들(194-197)의 각각의 세트는 각각의 감지 모듈에 대한 데이터 래치들의 스택으로서 구현될 수 있다. 일 실시예에서, 감지 모듈(180) 당 세 개의 데이터 래치들이 존재한다. 일부 실시예들에서, 데이터 래치들은 시프트 레지스터로서 구현되어, 그 안에 저장된 병렬 데이터가 데이터 버스(120)를 위한 직렬 데이터로 변환되거나, 그 역으로 된다. M 개의 저장 소자들의 판독/기록 블록에 대응하는 모든 데이터 래치들이 함께 링크되어 블록 시프트 레지스터를 형성할 수 있고, 따라서 데이터 블록이 직렬 전송(serial transfer)에 의해 입력 또는 출력될 수 있다. 특히, 판독/기록 모듈들의 뱅크가 조정(adapt)되어, 그것의 데이터 래치들의 세트 각각은, 그것들이 마치 전체 판독/기록 블록을 위한 시프트 레지스터의 부분인 것처럼, 데이터를 데이터 버스 내로 또는 데이터 버스 외부로 순차적으로 시프트할 것이다.
데이터 래치들은 관련된 저장 소자가 프로그래밍 동작들에서 특정 마일포스트에 도달했을 때를 식별한다. 예를 들어, 래치들은 저장 소자의 Vth가 (a) 빠른 프로그래밍 모드에서 하위 검증 레벨(예를 들어, 도 4의 VvaL, VvbL 또는 VvcL) 미만, (b) 느린 프로그래밍 모드에서, 하위 검증 레벨 초과 그러나 상위(higher), 타겟 검증 레벨(예를 들어, 도 4에서 Vva, Vvb 또는 Vvc) 미만, 또는 (c) 금지 또는 로크 아웃 모드에서, 상위, 타겟 검증 레벨 초과임을 식별할 수 있다. 데이터 래치들은 저장 소자가 현재, 데이터의 일 페이지로부터 하나 이상의 비트들을 저장하는지 여부를 표시한다. 예를 들어, LDL 래치들이 데이터의 하위 페이지를 저자하기 위하여 사용될 수 있다. LDL 래치들은 하위 페이지 비트가 관련된 저장 소자 내에 저장되는 때에 (예를 들어, 0에서 1로) 플립된다. ULD 래치들은, 예를 들어, 데이터의 상위 페이지를 저장하기 위해 사용될 수 있다. 상위 페이지 비트가 관련된 저장 소자에 저장될 때 ULD 래치가 플립된다. 이는 관련된 저장 소자가 프로그래밍을 완료할 때 발생하는바, 예를 들어, 그것의 Vth가 Vva, Vvb, 또는 Vvc와 같은 타겟 검증 레벨을 초과할 때 발생한다. QDL 래치들은 관련된 저장 소자가 느린 프로그래밍 모드에 있을 때 플립될 수 있다.
도 3은 도 1의 메모리 어레이(155) 내의 NAND 플래시 메모리 셀들의 블록들을 도시한다. 메모리 어레이는 많은 블록들을 포함할 수 있다. 각각의 예시적인 블록(300, 310)은 블록들 사이에서 공유되는 다수의 NAND 스트링들 및 각각의 비트 라인들(예를 들어, BL0, BL1, ...)을 포함한다. 각각의 NAND 스트링은 드레인 선택 게이트(SGD)의 일 단부에 연결되고, 드레인 선택 게이트들의 제어 게이트들은 공통 SGD 라인을 통해 연결된다. NAND 스트링들은 그것들의 타단(other end)에서 소스 선택 게이트에 연결되며, 소스 선택 게이트는 다시 공통 소스 라인(320)에 연결된다. 64개의 워드 라인들(예컨대, WL0-WL63)이 소스 선택 게이트들과 드레인 선택 게이트들 사이에서 확장된다.
NAND 플래시 메모리에 부가하여 다른 타입의 비휘발성 메모리가 또한 사용될 수 있다. 예를 들어, 플래시 EEPROM 시스템에서 유용한 또 다른 타입의 메모리 셀은 비휘발성 방식으로 전하를 저장하기 위하여 전도성 플로팅 게이트 대신에 비전도성 유전체 물질을 사용한다. 실리콘 산화물, 실리콘 질화물 및 실리콘 산화물("ONO")로 형성된 3중 층 유전체가 메모리 셀 채널 위에서 반도체 기판의 표면과 전도성 제어 게이트와의 사이에 샌드위치된다. 셀은 전자들을 셀 채널로부터 질화물로 주입하는 것에 의해 프로그래밍되며, 여기서 상기 전자들이 트래핑되고 제한된 영역에 저장된다. 이 저장된 전하는 그후 검출가능한 방식으로 셀의 채널 부분의 Vth를 변경한다. 셀은 열 정공(hot hole)을 질화물 내에 주입함으로써 소거된다. 도핑된 폴리실리콘 게이트가 메모리 셀 채널의 일부에 걸쳐 연장되어 개별적인 선택 트랜지스터를 형성하는 분리-게이트 구조(split-gate configuration)에서 유사한 셀이 제공될 수 있다.
또 다른 기법에서, NROM 셀들이 사용된다. 예를 들어, 두 개의 비트들이 각각의 NROM 셀에 저장되고, 여기서 ONO 유전체 층이 소스 확산부와 드레인 확산부 사이에서 채널에 걸쳐 연장된다. 일 데이터 비트에 대한 전하가 드레인에 인접한 유전체 층 내에 국부화되고, 다른 데이터 비트에 대한 전하가 소스에 인접한 유전체층 내에 국부화된다. 유전체 내에서 공간적으로 분리된 전하 저장 영역들의 바이너리 상태들을 개별적으로 판독함으로써 다중-상태 데이터 스토리지가 얻어진다. 다른 타입의 비휘발성 메모리가 또한 알려져 있다.
도 4a는 "1-패스 기록" 프로그래밍 기법으로 지칭되는, 예시적인 Vth 분포 및 1-패스 프로그래밍을 도시한다. 프로그래밍 패스는 일반적으로 저장 소자들의 세트에 대해 초기 Vpgm 레벨로부터 시작하여 하나 이상의 각각의 검증 레벨들이 도달될 때까지 최종 Vpgm 레벨로 진행하며 수행되는 일련의 복수의 프로그램-검증 동작들을 포괄할 것이다. 각각의 저장 소자가 두 개의 데이터 비트들을 저장하는 경우에 대해 저장 소자 어레이를 위한 예시적인 Vth 분포들이 제공된다. 제1 Vth 분포(400)는 소거된(E-상태) 저장 소자들에 대해 제공된다. 세 개의 Vth 분포들(402 404, 406)은 프로그램된 상태들(A, B, C) 각각을 나타낸다. 일 실시예에서, E-상태 분포 내의 임계 전압들은 음이고 A-, B-, C- 상태 분포들 내의 임계 전압들은 양이다.
특정 상태에 있는 저장 소자들의 수는 그 Vth가 대응하는 검증 레벨을 초과하는 것으로 결정된 저장 소자들의 총수(count)를 유지함으로써 결정될 수 있다.
각각의 개별 Vth 범위는 데이터 비트들의 세트에 대한 소정 값들에 대응한다. 저장 소자에 프로그램된 데이터와 저장 소자의 Vth 레벨들 사이의 구체적인 관계는 저장 소자들에 대해 채택된 데이터 엔코딩 기법에 의존한다. 일 실시예에서, 데이터 값들이 그레이 코드 할당을 사용하여 Vth 범위들에 할당되며 따라서 플로팅 게이트의 Vth가 오류로 그것의 이웃하는 물리적 상태로 시프트되면, 1 비트 만이 영향받을 것이다. 일 예는 "11"을 Vth 범위 E(상태 E)에, "10"을 Vth 범위 A(상태 A)에, "00"을 Vth 범위 B(상태 b)에, 그리고 "01"을 Vth 범위 C(상태 C)에 할당한다. 그러나, 다른 실시예들에서, 그레이 코드가 사용되지 않는다. 4개의 상태들이 도시되나, 4개보다 많은 또는 적은 상태들을 포함하는 다른 다중-상태 구조들이 또한 사용될 수 있다.
저장 소자들로부터의 데이터를 판독하기 위해 3 개의 판독 기준 전압(Vra, Vrb, Vrc)이 또한 제공된다. 주어진 저장 소자의 Vth가 Vra, Vrb 및 Vrc를 초과하거나 그 미만인지를 테스트함으로써, 시스템은 저장 소자가 속한 상태(예를 들어, 프로그래밍 조건)를 결정할 수 있다.
또한, 3 개의 타겟 검증 기준 전압들(Vva, Vvb, Vvc)이 제공된다. 저장 소자들을 상태 A로 프로그래밍할 때, 시스템은 그 저장 소자들이 Vva와 동일하거나 그보다 큰 Vth를 갖는지 여부를 테스트할 것이다. 저장 소자들을 상태 B로 프로그램할 때, 시스템은 그 저장 소자들이 Vvb와 동일하거나 그보다 큰 임계 전압을 갖는지 여부를 테스트할 것이다. 저장 소자들을 상태 C로 프로그램할 때, 시스템은 저장 소자들이 Vvc와 동일하거나 그보다 큰 Vth를 갖는지 여부를 결정할 것이다.
일 실시예에서, 완전 시퀀스(full sequence) 프로그래밍으로 알려져 있는 것과 같이, 저장 소자들이 E-상태에서 임의의 프로그램 상태(programmed state)(A, B 또는 C)로 직접 프로그램될 수 있다. 예를 들어, 프로그램될 저장 소자들의 집단(population)이 먼저 소거되어 그 집단의 모든 저장 소자들이 소거 상태 E있게 될 수 있다. 도 10에 도시된 것과 같은 일련의 프로그램 펄스들은 이후 저장 소자들을 상태 A, B 또는 C로 직접 프로그램하기 위해 사용될 것이다. 일부 저장 소자들이 상태 E로부터 상태 A로 프로그램되나, 다른 저장 소자들은 상태 E로부터 상태 B로 그리고/또는 상태 E로부터 상태 C로 프로그램된다.
도 4b 및 4c는 "2-패스 기록"프로그래밍 기법으로 칭해지는 예시적인 임계 전압 분포 및 2-패스 프로그래밍을 도시한다. 이 접근법에서, 하나 이상의 데이터 상태들에 대해 하위 또는 상위 검증 레벨이 사용된다. 예를 들어, VvaL 및 Vva는 각각 A-상태에 대한 하위 검증 레벨과 상위 검증 레벨이고, VvbL 및 Vvb는 각각 B-상태에 대한 하위 검증 레벨과 상위 검증 레벨이고, 그리고 VvcL 및 Vvc는 각각 C-상태에 대한 하위 검증 레벨과 상위 검증 레벨이다. 하위 검증 레벨은 상위 검증 레벨로부터의 오프셋이다. 검증 레벨은 전압 또는 전류를 나타낼 수 있다.
프로그래밍 동안, (타겟 상태로서 A-상태로 프로그램되도록 의도된) A-상태 저장 소자의 Vth가 VvaL과 같거나 그보다 작으면 저장 소자는 빠른 프로그래밍 모드(past programming mode)로 프로그램된다. 이는 비트 라인을 접지시킴으로써 달성될 수 있다. Vva≥Vth>VvaL일 때, 저장 소자는, 예컨대 관련된 비트 라인 전압을 접지와 완전 금지 또는 로크아웃 레벨 사이에 있는 레벨로 상승시킴으로써, 느린 프로그래밍 모드로 프로그램된다. 이는 Vth의 큰 스텝 증가들(large step increases_을 방지함으로써 더 큰 정밀도를 제공하고 따라서 더 좁은 Vth 분포를 제공한다. Vth>Vva일 때, 저장 소자는 추가의 프로그래밍으로부터 로크아웃된다. 마찬가지로, (B-상태로 프로그램되도록 의도된) B-상태 저장 소자는 빠르고 느린 프로그래밍 모드를 가질 수 있다. 일 기법에서, C-상태와 같은 가장 높은 상태는 다른 상태들보다 이점이 덜하므로, C-상태와 같은 가장 높은 상태에 대해서는 느린 프로그래밍 모드가 사용되지 않는다. C 상태를 위한 느린 프로그래밍 모드를 허용하는 VvcL이 도시된다.
8-상태 프로그래밍의 예에서, 소거 상태 및 7개의 프로그램 상태들(A-G)을 이용하여, 빠르고 느린 프로그래밍 모드들이 예컨대 상태들(A-F)에 대해 사용될 수 있다.
제1 프로그래밍 패스(도 4b)에서, A-, B- 및 C-상태 저장 소자들이, E-상태(400)로부터 A-, B-, 및 C- 상태(각각 하위 분포들 401, 403, 405)의 각각의 하위 검증 레벨들(VvaL, VvbL 또는 VvcL)로 프로그램된다. 제2 프로그래밍 패스(도 4c)에서, A-, B-, 및 C-상태 저장 소자들은, 각각 검증 레벨들 Vva, Vvb 및 Vvc을 사용하여, 하위 분포들(401, 403, 405)로부터 최종 분포들(402, 404, 406)로 각각 프로그램된다.
도 5a는 예시적인 임계 전압 분포 및 1-패스 기록 프로그래밍을 도시하며, 여기서 최대 2개의 프로그래밍 속도들이 QPW 프로그램 옵션으로 사용될 수 있다. 일반적으로, 각각의 타겟 상태에 대해, 그것이 초과될 때 저장 소자에 대해 더 느린(slower) 프로그래밍 속도를 트리거하는 검증 레벨이 정의될 수 있다. 이 검증 레벨은 프로그래밍 패스의 종료를 신호하는 검증 레벨과는 다를 수 있다. 이 예에서, E-상태 분포(500)로부터 A-상태 분포(502)로 A-상태 저장 소자들을 프로그래밍하기 위하여 단일 프로그래밍 패스가 사용되고, 그럼으로써 검증 레벨 Vva-speed를 통과(pass)하며, 상기 검증 레벨 Vva-speed는 예컨대 관련된 비트 라인 전압을 상승시킴으로써 Vva≥Vth>Vva-speed인 각각의 A-상태 저장 소자에 대해 더 느린 프로그래밍 속도를 트리거하기 위한 체크포인트로서 작용한다. Vth≤Vva-speed인 A-상태 저장 소자들은, 예컨대 비트 라인 전압을 접지된 상태로 유지시킴으로써, 더 빠른 속도로 프로그램된다. Vth가 Vva에 도달하는 (분포(502)를 형성하는) 모든 A-상태 저장 소자들은 추가의 프로그래밍으로부터 로크아웃된다.
마찬가지로, B-상태 저장 소자들을 E-상태 분포(500)로부터 B-상태 분포(504)로 프로그래밍하기 위하여 단일 프로그래밍 패스가 사용되고, 그럼으로써 검증 레벨 Vvb-speed를 통과하며, 상기 검증 레벨 Vvb-speed은 Vvb≥Vth>Vvb-speed인 각각의 B-상태 저장 소자에 대해 더 느린 프로그래밍 속도를 트리거하기 위한 체크포인트로서 동작한다. Vth≤Vvb-speed를 위한 B-상태 저장 소자들은 더 빠른 속도로 프로그램된다. Vth가 Vvb에 도달하는 (분포(504)를 형성하는) 모든 B-상태 저장 소자들은 추가의 프로그래밍으로부터 로크아웃된다.
또한, C-상태 저장 소자들을 E-상태 분포(500)로부터 C-상태 분포(506)로 프로그램하기 위하여 단일 프로그래밍 패스가 사용되고, 그럼으로써 검증 레벨 Vvc-speed를 통과하며, 상기 검증 레벨 Vvc-speed은 Vvc≥Vth>Vvb-speed인 각각의 C-상태 저장 소자에 대해 더 느린 프로그래밍 속도를 트리거하는 체크포인트로서 동작한다. Vth≤Vvc-speed인 C-상태 저장 소자들이 더 빠른 속도로 프로그램된다. Vth가 (분포(506)를 형성하는) Vvc에 도달하는 모든 C-상태 저장 소자들은 추가의 프로그래밍으로부터 로크아웃된다.
도 4a-4c의 기법에서와 비교하여, 이 프로그래밍 옵션에서는 최대 2개의 프로그래밍 속도들에 대한 참조와 관련하여, "2-패스 기록" 기법에서 두 개의 프로그래밍 패스가 사용된다. 이는 이웃 저장 소자들로부터의 간섭 효과의 영향을 감소시키기 위해 행해진다. 제1 패스에서, 모든 저장 소자들을 그들의 최종 타겟 Vth에 가깝게 프로그램한다. 이후, 제2 패스 동안, 저장 소자들을 이들의 최종 타겟 Vth에 도달하도록 프로그램한다. 따라서, 제1 경로와 제2 경로 사이의 총 Vth 시프트가 더 작고 따라서 이웃 저장 소자들에 대한 대응하는 간섭 효과 또한 더 작다. 프로그래밍은 예를 들어, 하기에서 논의되는 도 7a 및 7b에 도시된 순서로 될 수 있다. 제2 패스 동안, 저장 소자들은 이미 그들의 목표에 근접하게 프로그램되었으므로, 저장 소자들을 프로그램할 때, 저장 소자들의 Vth가 이들의 정상 상태 값들보다 높기 때문에, 저장 소자들은 처음에 자연적으로 더 느리게 프로그램된다. 이 "패스 기록 효과(pass write effect)"는 최종 Vth 분포를 더 밀집되게 만드는것을 돕는다.
최대 두 개의 프로그래밍 속도를 사용할 수 있는 프로그래밍 옵션은 "퀵 패스 기록"(QPW; quick pass write) 기법으로 칭해질 수 있다. QPW는 2 패스 기법의 제1 또는 제2 패스에서, 또는 그 둘 모두에서 독립적으로 사용될 수 있다. 우리가 QPW를 사용하는 각 패스에 대해, 프로그래밍 패스가 종료되고 로크아웃이 발생하는 검증 레벨 미만인 하위-검증 레벨(Vva-speed, Vvb-speed, VVc-speed)이 사용된다. 이 하위 검증 레벨은 프로그래밍을 속도를 느리게 만들기 위한 체크포인트로서 작용하나, 저장 소자의 로크아웃을 트리거하지 않는다. QPW에서, 저장 소자의 관련된 채널 영역에 비트 라인 바이어스를 인가함으로써 저장 소자의 프로그래밍 속도를 인위적으로 느리게 만든다. 또한, QPW-검증 레벨들(Vva-speed, Vvb-speed, Vvc-speed)이 독립적으로 최적화될 수 있음에 주목하여야 한다. Vth 분포를 밀집시키는데 있어서 QPW의 최대의 이점을 얻을 수 있는 Vva-speed와 Vva 사이의 최적의 갭이 존재한다. QPW-검증 레벨들은 이전의 프로그래밍 패스의 검증 레벨들에 의존하지 않는다. 언급된 최적의 갭은 각각의 타겟 상태에 대해 동일하거나 다를 수 있다. QPW에서, 일 프로그래밍 펄스를 사용하여 그 Vth가 Vva-speed 바로 위로 점프하여 Vva에 도달하는 A-상태 저장 소자와 같은 - 두 개의 속도가 아닌 - 단 하나의 속도로 프로그램될 수 있는 몇몇 저장 소자들이 있을 수 있다는 것에 또한 주목하여야 한다. 그러한 저장 소자는 느린 프로그래밍을 경험함이 없이 그 타겟 레벨에 도달한다. 따라서, 모든 저장 소자들이 QPW에서 두 개의 속도로 프로그램되는 것은 아니다. 그러나, 일반적으로 대부분의 저장 소자들이 두 개의 속도로 프로그램된다.
도 5b는 제1 프로그래밍 패스 동안, 최대 두 개의 프로그래밍 속도들이 QPW 프로그래밍 옵션으로 사용될 수 있는 2-단계 프로그래밍 동안의 A-상태에 대한 예시적인 임계 전압 분포를 도시한다. 명료성을 위해 A-상태 하나만이 검토되지만, 다른 타겟 데이터 상태들이 유사하게 처리될 수 있다. 이 경우, A-상태 저장 소자들은 제1 프로그래밍 패스에서 Vva-speed를 통과하며, 따라서 A-상태 저장 소자들의 프로그래밍은 제1 프로그래밍 패스의 제1 부분에 대해서는 빠르고 제1 프로그래밍 패스의 제2 부분에 대해서는 느리다. 따라서, 제1 프로그래밍 패스에서, A-상태 저장 소자들은 E-상태 분포(500)로부터 VvaL에 의해 정의되는 하위 A-상태 분포(501)로 천이하고, 그럼으로써 Vva-speed를 통과하며, 상기 Vva-speed는 각각의 A-상태 저장 소자에 대해 더 느린 프로그래밍 속도를 트리거링하기 위한 체크포인트로서 동작한다. 따라서, A-상태 저장 소자들의 속도는 이들이 하위 A-상태 분포(501)로 천이함에 따라 느려지고, Vth>VvaL인 각각의 A-상태 저장 소자에 대해 제1 프로그래밍 패스의 종료를 신호한다. 제2 프로그래밍 패스에서, A-상태 저장 소자들은 분포(501)로부터, Vva에 의해 정의되는 분포(502)로 프로그램되며, Vth>Vva인 각각의 A-상태 저장 소자에 대해 제2 프로그래밍 패스의 종료를 신호한다. 다음에 논의되는 바와 같이, 제2 프로그래밍 패스 또한 선택적으로 OPW를 사용할 수 있다.
도 5c는 제2 프로그래밍 패스 동안에 최대 두 개의 프로그래밍 속도가 QPW 프로그래밍 옵션으로 사용될 수 있는 2-패스 프로그래밍 동안의 A-상태에 대한 예시적인 임계 전압 분포를 도시한다. 다시, 명료성을 위해 A-상태 하나만이 검토되지만, 다른 타겟 데이터 상태들이 유사하게 처리될 수 있다. 이 경우에, A-상태 저장 소자들은 제2 프로그래밍 패스에서 검증 레벨 Vva_speed1(도 5의 Vva_speed와는 다름)을 통과한다. 먼저, A-상태 저장 소자들이 E-상태 분포(500)로부터, VvaL에 의해 정의된 하위 A-상태 분포(501)로 천이하고, Vth>VvaL인 각각의 A-상태 저장 소자에 대해 제1 프로그래밍 패스의 종료를 신호한다. 도 5b에서 설명되는 바와 같이 제1 프로그래밍 패스는 선택적으로 QPW를 이용할 수 있다. 제2 프로그래밍 패스에서, A-상태 저장 소자들은 처음에, Vth≤Vva_speed1일 때 빠른 속도로, 그리고 그후 Vth>Vva_speed1일 때 느린 속도로, 분포(501)로부터 분포(502)로 천이한다. Vth>Vva인 각각의 A-상태 저장 소자에 대해 제2 프로그래밍 패스의 종료가 신호된다.
단계 6a, 6b, 및 6c는, 중간 또는 하위 중간(LM; lower-middle) 상태가 사용되는 "3-패스 기록" 프로그래밍 기법으로서 지칭되는 3-패스 프로그래밍 동작의 제1, 제2, 제3 프로그래밍 단계를 각각 도시한다. 이 프로그래밍 기법은 이전 페이지들에 대해 인접 저장 소자들에 기록한 다음에 특정 페이지에 대해 특정 저장 소자에 기록함으로써, 임의의 특정 저장 소자에 대해, 플로팅 게이트-대-플로팅 게이트 커플링의 효과를 감소시킨다. 일 예시적인 실시예에서, 비휘발성 저장 소자들은 4 데이터 상태들을 이용하여, 저장 소자당 2 비트의 데이터를 저장한다. 예를 들어, E-상태는 소거 상태이고 상태들 A, B, C는 프로그램 상태이다. 앞서와 같이, E-상태는 데이터 11을 저장하고, 상태 A는 데이터 01을 저장하고, 상태 B는 데이터 00을 저장하고, 그리고 상태 C는 데이터 10을 저장한다. 데이터 대 물리적 데이터 상태들(data-to-physical data states)의 다른 엔코딩이 또한 사용될 수 있다. 각각의 저장 소자가 2 페이지의 데이터를 저장한다. 참조의 목적으로, 이 데이터 페이지들은 상위 페이지 및 하위 페이지라 지칭될 것이다. 그러나, 이들이 다르게 표기될 수 있다.
제1 프로그래밍 단계에서, 선택된 워드 라인 WLn에 대해 하위 페이지가 프로그램된다. 예를 들어, 이는 도 7b의 단계 "1"(하기에서 논의됨)에 대응할 수 있다. 하위 페이지가 데이터 1로 남는다면, 저장 소자 상태는 상태 E로 유지된다(분포 600). 데이터가 0으로 프로그램된다면, 저장 소자가 중간(LM 또는 하위 중간) 상태(분포(606))로 프로그램되도록 WLn 상의 저장 소자들의 임계 전압이 상승된다. 따라서 도 6a는 E-상태에서 LM-상태로의 저장 소자들의 프로그래밍을 보여준다.
일 실시예에서, 저장 소자가 E-상태에서 LM-상태로 프로그램된 후, NAND 스트링 내의 인접 워드 라인 WLn+1 상의 그 이웃 저장 소자가 그것의 하위 페이지와 관련하여 프로그램될 것이다. 이는 WLn 상의 저장 소자들에 대해, 상태 LM에 대한 Vth 분포(606)를 넓히는 효과를 가질 것이다. 이 Vth 분포의 뚜렷한 확대(apparent widening)은 상위 페이지를 프로그래밍할 때 처리(remedy)될 것이다. E 상태 분포(600)가 또한 넓어질 것이다. WLn에 대한 제1 프로그래밍 패스가 수행된 후, 도 7b의 단계 "2"로 표시된 것과 같이, 유사한 제1 프로그래밍 패스가 WLn에 대해 수행될 수 있다.
도 6b는 하위 검증 레벨 VvaL, VvaB, VvAc를 이용한 상위 페이지의 프로그래밍을 도시한다. 예를 들어, 이는 도 7b의 단계 "3"에 대응할 수 있다. 더우기, 일 실시예에서, 상위 페이지 프로그래밍 전에, 어느 저장 소자들이 E-상태에 속하는지 그리고 어느 저장 소자들이 LM-상태에 속하는지를 결정하기 위하여 판독 동작이 수행된다. 이 판독 동작은 판독 레벨 Vra에서 또는 E-상태와 LM-상태 Vth 분포 사이의 어떤 다른 적합한 전압 레벨에서 행해질 수 있다. 이 단계는 WLn 상의 하위 페이지를 프로그래밍한 후 래치들의 하위 페이지 데이터가 제거되는 구현예에서 수행되며, 따라서 WLn+1에 대한 하위 페이지 데이터에 대해 래치가 사용될 수 있다. 이 경우, WLn 상의 상위 페이지를 프로그래밍하기 전에, 하위 페이지 데이터를 결정하기 위하여 판독이 수행된다. 워드 라인의 서로 다른 프로그래밍 패스들에 걸쳐 워드 라인의 모든 페이지들에 대한 데이터를 저장할 수 있는 바이너리 캐시가 사용되는 경우와 같은 다른 구현예들에서, 이 판독 단계는 필요하지 않다.
저장 소자가 E-상태에 있고 상위 페이지가 1이라면, 저장 소자는 E-상태로 유지될 것이다(분포(600)). 저장 소자가 E-상태에 있고 그 상위 페이지 데이터가 0이면, 저장 소자의 Vth는 VvaL을 초과하여 상승될 것이다(분포(602)). 저장 소자가 LM-상태(606)에 있고 상위 페이지 데이터가 0이면, 저장 소자의 Vth는 VvbL을 초과하여 프로그램될 것이다(분포(608)). 저장 소자가 LM-상태(606)에 있고 상위 페이지 데이터가 1이면, 저장 소자의 Vth는 VvcL을 초과하여 상승될 것이다(분포(612)). 이웃 저장 소자들의 상위 페이지 프로그래밍만이 주어진 저장 소자의 겉보기(apparent) Vth에 영향을 줄 것이므로, 도시된 과정은 플로팅 게이트-대-플로팅 게이트 커플링 효과를 감소시킨다. 교번하는 상태 코딩(alterante state coding)의 예는 상위 페이지 데이터가 0일 때 분포(606)로부터 상태(C)로 이동하고, 그리고 상위 페이지 데이터가 1일 때 B-상태로 이동한다. WLn에 대해 제2 프로그래밍 단계가 수행된 후, 도 7b에서 단계 "4"로 표시된 것과 같이 WLn+2에 대해 제1 프로그래밍 단계가 수행될 수 있고, 그리고 도 7b에서 단계 "5"로 표시된 것과 같이 WLn+1에 대해 제2 프로그래밍 단계가 수행될 수 있다.
도 6c는 A-상태에 대해 분포(602)로부터 분포(604)로의천이를 제공하고, B-상태에 대해 분포(608)로부터 분포(610)로, 그리고 C-상태에 대해 분포(612)로부터 분포(614)로의천이를 제공하기 위하여, 높은 검증 레벨들 Vva, Vvb, Vvc를 이용하여 상위 페이지를 프로그래밍하는 것을 도시한다. 예를 들어, 이는 도 7b의 단계 "6"에 대응할 수 있다.
이 3-단계 프로그래밍 예가 4 개의 데이터 상태들 및 2 데이터 페이지들을 제공하나, 이 개념은 4 상태들보다 많거나 적은 상태들을 갖는 그리고 2 페이지들보다 많거나 적은 페이지들을 갖는 다른 구현예들에 적용될 수 있다. 예를 들어, 저장 소자 당 8 개 또는 16 개의 상태들을 갖는 메모리 디바이스들이 현재 계획되거나 또는 생산 중 이다.
일반적으로, 프로그래밍 속도는 도 6a-6c의 프로그래밍 패스들 중 임의의 단계에 대해 조정될 수 있다. 예를 들어, 도 6b의 제2 프로그래밍 패스에서, 우리는 도 5b에 도시된 것과 같이 Vva-speed<VvaL을 설정할 수 있다. 마찬가지로, Vva-speed<VvbL 및 Vvc-speed<VvcL을 설정할 수 있다. 이 경우에, 제2 프로그래밍 패스에서, A-상태 저장 소자들은 Vth≤Vva-speed일 때 빠른 속도로 프로그램되고, Vva-speed<Vth≤VvaL일 때 느린 속도로 프로그램된다. 마찬가지로, B-상태 저장 소자들은 Vth≤Vvb-speed일 때 빠른 속도로 프로그램되고, Vvb-speed<Vth≤VvbL일 때 느린 속도로 프로그램된다. 마찬가지로, C-상태 저장 소자들은 Vth≤Vvb-speed일 때 빠른 속도로 프로그램되고, Vvc-speed<Vth≤VvcL일 때 느린 속도로 프로그램된다.
도 6c의 제2 프로그래밍 단계의 예에서, 도 5c에 도시된 것과 같이 VvaL<Vva_speed<Vva를 설정할 수 있다. 마찬가지로, VvaL<Vvb_speed<Vvb 및 VvcL<Vvc_speed<Vvc를 설정할 수 있다. 이 경우에, 제3 프로그래밍 단계에서, A-상태 저장 소자들은 VvaL<Vth≤Vva_speed일 때 빠른 속도로 프로그램되고, Vva_speed<Vth≤Vva일 ‹š 느린 속도로 프로그램된다. 마찬가지로, B-상태 저장 소자들은 VvbL<Vth≤Vvb-speed일 때 빠른 속도로 프로그램되고, 그리고 Vvb-speed<Vth≤Vvb일 때 느린 속도로 프로그램된다. 마찬가지로, C-상태 저장 소자들은 VvcL<Vth≤Vvc_speed일 때 빠른 속도로 프로그램되고, Vva-speed<Vth≤Vvc일 때 느린 속도로 프로그램된다.
제2 및 제3 프로그래밍 패스에 대한 앞의 예들은 단독으로 또는 결합하여 사용될 수 있다.
도 6d는 "2-패스 기록" 프로그래밍 기법으로 지칭되는 2-단계 프로그래밍 동작의 제2 프로그래밍 패스를 도시하며, 여기서 도 6a가 제1 프로그래밍 패스를 도시하고, 그리고 여기서 최대 2개의 프로그래밍 속도가 QPW 프로그래밍 옵션으로 이용될 수 있다. 이 추가의 대안적인 예에서, 도 5a-5c에 논의된 것과 같이, 검증 레벨 Vva-speed, Vvb-speed 및 Vvc-speed이 프로그래밍 속도를 느리게 만드는 것을 트리거링하기 위하여 사용된다. 구체적으로, A-상태 저장 소자들은 이들의 Vth≤Vva_speed일 때 빠른 속도로 프로그램될 것이고, 이들의 Vva>Vth>Vva-speed일 때 느린 속도로 프로그램될 것이다. Vth>Vva는 프로그래밍 로크아웃 조건을 트리거한다. B-상태 저장 소자들은 이들의 Vth≤Vvb_speed일 ‹š 빠른 속도로 프로그램될 것이고 이들의 Vvb>Vth>Vvb-spped일 때 느린 속도로 프로그램될 것이다. Vth>Vvb는 프로그래밍 로크아웃 조건을 트리거링한다. C-상태 저장 소자들은 이들의 Vth≤Vvc-speed일 때 빠른 속도로 프로그램될 것이고, 이들의 Vvc>Vth>Vvc-speed일 때 느린 속도로 프로그램될 것이다. Vth<Vvc는 프로그래밍 로크아웃 조건을 트리거한다.
도 7a는 앞-뒤로의 워드 라인 순서인, 저장 소자들의 세트에 대한 2-패스 프로그래밍 동작을 도시한다. 도시된 구성요소들은 저장 소자들, 워드 라인들 및 비트 라인들의 훨씬 더 큰 세트의 서브세트일 수 있다. 한가지 가능한 프로그래밍 동작에서, WLn 상의 (정사각형으로 도시된) 저장 소자들이, 원 표시된 "1"로 나타낸 바와 같이, 제1 프로그래밍 패스에서 프로그램된다. 다음에("2"), WLn+1 상의 저장 소자들이 그 워드 라인에 대해 제1 프로그래밍 패스에서 프로그램된다. 이 예에서, 프로그래밍을 위해 워드 라인이 선택될 때, 각 프로그램 펄스 후에 검증 동작들이 발생한다. 선택된 워드 라인에 대한 검증 동작들 동안에, 선택되지 않은 저장 소자들을 턴온시키기(전도성으로 만들기) 위하여 선택되지 않은 워드 라인들에 검증 전압들이 인가되며 따라서 검증 동작과 같은 감지 동작이 선택된 워드 라인에 대해 발생할 수 있다. 다음에("3"), WLn 상의 저장 소자들이 제2 프로그래밍 패스에서 프로그램된다. 다음에("4"), WLn+2 상의 저장 소자들이 그 워드 라인에 대해 제1 프로그래밍 패스에서 프로그램된다. 다음에("5"), WLn+1 상의 저장 소자들이 제2 프로그래밍 패스에서 이들의 각각의 최종 상태들로 프로그램된다.
복수의 프로그래밍 패스들에서 앞-뒤 방식으로 워드 라인들을 프로그래밍함으로써, 이들의 Vth 분포들을 증가시키고 넓히는 경향이 있는 용량성 커플링-유발 간섭 효과(capacitive coupling-caused interference effect)가 감소된다. 그에 반해, 단일-패스 프로그래밍에서, 각각의 워드 라인은 다음 워드 라인으로 이동하기 전에 완전히 프로그램된다.
제1 및 제2 프로그래밍 패스들은 여기에서 논의된 프로그래밍 기법들 중 임의의 기법을 사용할 수 있다. 도 7b는 앞-뒤로의 워드 라인 순서로, 저장 소자들의 세트에 대한 3-패스 프로그래밍 동작을 도시한다. 하위 페이지의 초기 프로그래밍 패스가 상위 페이지의 제1 및 제2 프로그래밍 패스 전에 수행된다. 제1 프로그래밍 패스가 하위 데이터 페이지를 프로그램하고, 제2 프로그래밍 단계가 제1 프로그래밍 패스에서의 상위 데이터 페이지를 프로그램하고, 그리고 제3 프로그래밍 패스가 제2 프로그래밍 패스에서의 상위 데이터 페이지의 프로그래밍을 완료한다. "1"에서, 제1 프로그래밍 패스가 WLn에 대해 수행되고, "2"에서 제2 프로그래밍 패스가 WLn+1에 대해 수행되고, "3"에서 제2 프로그래밍 패스가 WLn에 대해 수행되고, "4"에서 제1 프로그래밍 패스가 WLn+2에 대해 수행되고, "5"에서 제2 프로그래밍 패스가 WLn+1에 대해 수행되고, "6"에서 제3 프로그래밍 패스가 WLn에 대해 수행되고, "7"에서 제1 프로그래밍 패스가 WLn+3에 대해 수행되고, "8"에서 제2 프로그래밍 패스가 WLn+2에 대해 수행되고, "9"에서 제3 프로그래밍 패스가 WLn+1에 대해 수행되는 등이다.
일 가능한 기법에서, 제1 프로그래밍 패스는 도 6a에 도시된 것과 같은 검증 레벨 VvLM을 사용하고, 제2 프로그래밍 패스는 도 6b에 도시된 것과 같은 검증 레벨들의 하위 세트(VvaL, VvbL, VvcL)를 사용하고, 그리고 제3 프로그래밍 패스는 도 6c에 도시된 것과 같은 검증 레벨들의 상위 세트(Vva, Vvb, Vvc)를 사용한다. 가장 조밀한 Vth 분포들의 세트를 달성하기 위하여 제2 프로그래밍 패스에서의 검증 레벨들의 하위 세트와 제3 프로그래밍 패스에서의 검증 레벨들의 상위 세트 사이의 차가 실리콘에 대해 최적화될 수 있다.
제1, 제2 및 제3 프로그래밍 패스들은 여기에서 논의된 프로그래밍 기법들 중 임의의 기법을 사용할 수 있다.
도 8은 저장 소자를 프로그램하는데 필요한 최고의(highest) Vpgm과 저장 소자의 비트 라인 전압 사이의 관계를 도시한다. x-축은 증가하는 비트 라인 전압(Vbl)을 도시하고 y-축은 저장 소자의 프로그래밍을 완료하기 위해 요구되는 최고의 Vpgm 전압을 도시한다.
Vbl이 증가함에 따라, 저장 소자의 프로그래밍을 완료하는데 필요한 최고의( Vpgm 또한 증가한다. 일반적으로, 저장 소자의 프로그래밍 속도가 느려지는 정도는 Vbl과 상수 k의 곱에 비례하며, k는 도시된 선의 경사이다. Vbl에서의 1V 증가(예를 들어, △Vbl=1V의 비트 라인 스텝 사이즈)가 오프셋으로, Vpgm의 1V 보다 큰 증가(예를 들어, △Vpgm=1V의 프로그램 펄스 스텝 사이즈)를 요구하기 때문에, 상기 상수는 일반적으로 1보다 크다. 따라서 Vbl을 증가시키는 것은 프로그래밍 속도를 제어하고 Vth 분포의 폭을 좁게 만드는 강력한 도구이다. 그러나, Vbl은 주로 Vsgd (드레인측 선택 게이트) 마진 윈도우에 의해 제한되므로, Vbl이 너무 높게 만들어질 수는 없다. Vbl이 더 높을 때, 저장 소자들을 프로그래밍하기 위해 드레인측 선택 게이트를 턴온시키는 데 필요한 Vsgd 전압 또한 더 높다. 그러나, 더 높은 Vsgd 값은, 프로그램 방해를 야기할 수 있는 금지된 저장 소자들의 채널로부터의 부스트 전위 누설의 위험을 갖는다.
저장 소자의 프로그래밍 속도는 그것의 터널 산화물에 걸친 전계에 의존하며, 이는 플로팅 게이트 아래의 기판 내의 채널의 전압과 플로팅 게이트의 전압 사이의 차에 비례한다. 보통, 제어 게이트 전압, Vpgm이 계단식으로 스텝 업되고, Vbl은 0V로 고정된다. 프로그래밍을 느리게 하기 위하여(Vth 분포를 조밀하게 하기 위하여), 더 작은 Vpgm 스텝 사이즈를 사용할 수 있다. 그러나, 이는 프로그램 펄스들과 검증 동작들의 수를 증가시키며, 그럼으로써 전체적인 프로그래밍 시간을 증가시킨다. Vpgm 스텝 사이즈를 변경하는 것 대신, 유효 Vpgm 스텝 사이즈(△Vpgm-effective)를 감소시키기 위하여, Vpgm 펄스들의 스텝들과 동일한 비율로(in lockstep with) Vbl을 증가시킬 수 있다. △Vpgm-effective=△Vpgm-(k x △Vbl)(여기서, k>1 이고 △Vpgm-effective<△Vpgm)라고 쓸 수 있다. 일반적으로, k 값은 약 1.4일 수 있다. △Vbl이 더 클 수록 결과적으로 △Vpgm-effective가 더 작아진다. 이 기법의 이점은 Vbl이 서로 다른 시간들에 저장 소자들의 서로 다른 서브세트들에 대해 스텝 업될 수 있고, 여기서 각각의 서브세트가 서로 다른 타겟 데이터 상태를 갖는다는 것이다. 따라서, 서로 다른 타겟 데이터 상태에 속하는 저장 소자들의 세트에 대해 서로 다른 프로그래밍 속도를 달성할 수 있다. 다른 한편으로, Vpgm 스텝 사이즈가 감소되면, 이것은 전체 프로그래밍 저장 소자들의 프로그래밍 속도에 영향을 준다. 등가의 더 작은 Vpgm 스텝 사이즈를 사용하는 것과 비교해 볼 때, 특정한 타겟 데이터 상태에 대해 Vbl을 한번에(at a time) 스텝 업함으로써, 프로그래밍을 완료하기 위해 요구되는 프로그램 펄스들의 총 수를 감소시키는 한편, 검증 동작들의 수를 동일하게 유지할 수 있고, 따라서 전체 프로그래밍 시간을 감소시킴으로써 성능이 향상된다.
Vbl의 동일 비율 증가(lockstep increase)는, 예를 들어, 공통 타겟 데이터 상태를 갖는, 그리고 아직 프로그래밍이 로크아웃되지 않은 저장 소자들의 주어진 서브세트에 대해, Vbl이 각각의 프로그램 펄스로 스텝 업될 수 있다는 것을 나타낸다. 프로그래밍이 로크 아웃된 저장 소자의 Vbl은 Vbl-lockout으로 설정된다.
도 9a는 비트 라인 전압이 스텝 업되는 프로그래밍 기법을 도시한다. 모든 타겟 데이터 상태들의 저장 소자들에 대해 프로그래밍 패스가 단계(900)에서 시작한다. 단계(902-912)는 모든 타겟 데이터 상태들의 저장 소자들에 대해 개별적으로, 그리고 부분적으로 동시에, 수행된다. 단계(902)는 프로그래밍 중에 비트 라인 스텝 업이 없이 하나 이상의 프로그램-검증 동작들을 수행하는 것을 포함한다. 단계(904)에서, 제1 트리거 조건이 만족된다. 이는 예를 들어 하기에서 더 논의되는 것과 같이 Vpgm 레벨, 소정의 프로그램 펄스 수, 또는 비트 스캔에 근거한 것일 수 있다. 제1 트리거 조건은 공통 타겟 데이터 상태를 갖는 저장 소자들의 서브세트에 대해 비트 라인 스텝 업 루프를 시작하기 위한 조건을 나타낸다. 단계(906)는 프로그래밍 중에 비트 라인 스텝 업을 이용하여 하나 이상의 프로그램-검증 동작들을 수행하는 것을 포함한다. 단계(908)에서, 제2 트리거 조건이 만족된다. 이는, 예를 들어 하기에서 논의되는 것과 같이, Vpgm 레벨, 소정의 프로그램 펄스 수 또는 비트 스캔에 근거할 수 있다. 제2 트리거 조건은 공통 타겟 데이터 상태를 갖는 저장 소자들의 서브세트에 대해 비트 라인 스텝 업 루프를 정지시키기 위한 조건을 나타낸다. 단계(910)는 프로그래밍 중에 비트 라인 스텝 업 없이 하나 이상의 프로그램-검증 동작들을 수행하는 것을 포함한다. 이 경우에, 비트 라인은 로크아웃 레벨보다 낮은 최대 허용 레벨에 고정될 수 있다. 관련된 타겟 데이터 상태의 저장 소자들에 대해 프로그래밍-검증 동작들은 단계(912)에서 종료된다. 실제는, 검증 레벨에 도달한 저장 소자들이 추가의 프로그래밍으로부터 로크아웃되어, 특정 타겟 데이터 상태를 갖는 다른 저장 소자들이 계속 프로그램되는 반면, 특정 타겟 데이터 상태를 갖는 일부 저장 소자들은 프로그래밍으로부터 로크아웃될 수 있다. 일부 경우에, 관련된 타겟 데이터 상태의 모든 저장 소자들이 단계(906)에서 로크 아웃될 때와 같이 단계(910)이 수행되지 않는다. 도 9a의 프로그래밍 기법은 하기에서 더 자세히 논의된다.
도 9b는, 도 9a의 프로그래밍 기법의 예로서, 프로그램 펄스 수의 함수로서 검증 동작들을 겪는 데이터 상태들을 도시한다. 프로그래밍 동안, 모든 저장 소자들이 함께 프로그램되나, A-상태 검증 레벨이 B-상태 검증 레벨보다 낮고 B-상태 검증 레벨이 C-상태 검증 레벨보다 낮으므로, 하위 타겟 상태들에 속한 저장 소자들은 상위 타겟 상태에 속한 저장 소자들에 대한 것보다 그 타겟 레벨에 더 먼저 도달한다. 따라서, 프로그래밍 시간을 절약하기 위하여, 상위 타겟 상태에 대한 검증 동작이 제1 프로그램 펄스 그 자체에서부터 시작할 필요가 없다. 일반적으로, B-상태 검증 동작들이 초기의 몇몇 프로그램 펄스들에 대해 생략(skip)될 수 있고, C-상태 검증 동작들이 다음의 프로그램 펄스들에 대해 생략될 수 있다.
예를 들어, Vbl이 여기에서 설명된 것과 같이 스텝 업되지 않으나, 프로그래밍 동안에 0V에 고정이고, △Vpgm=△Vpgm-effective=0.3V일 때, 순서(950)이 발생한다. 먼저, A-상태 저장 소자들이 검증되고, 그후 A-상태 저장 소자들 및 B-상태 저장 소자들이 검증되고, 그후 B-상태 저장 소자들 및 C-상태 저장 소자들이 검증되고, 그리고 마지막으로 C-상태 저장 소자들이 검증된다. 이 순서가 제공되는 3 개의 순서들(950, 960, 970)의 대부분의 프로그래밍 시간을 소비한다. 이 특정한 예에서, 우연히도, A-, B-, 및 C- 상태 저장 소자들이 검증되는 프로그래밍 펄스들의 세트가 없다는 것에 주목하여야한다. 다른 Vpgm 스텝 사이즈 또는 타 디바이스 파라미터들에서의 몇몇 변화들을 갖는다면, 이러한 경우가 되지 않을 수 있다. 즉, 순서(960 및 970)에 도시된 것과 같이, A-, B-, 및 C- 상태 저장 소자들이 검증되는 하나 이상의 프로그래밍 펄스들이 있을 수 있다.
프로그래밍 동안에 모든 타겟 데이터 상태들에 대해 Vbl이 여기에서 설명된 것과 같이 스텝 업될 때 순서(960)이 발생하며, 여기서, 예를 들어, △Vpgm=0.4V이고 △Vpgm-effective=0.3V이도록 △Vbl이 선택된다. 먼저, A-상태 저장 소자들이 검증되고, 이후 A- 및 B-상태 저장 소자들이 검증되고, 이후 B- 및 C-상태 저장 소자들이 검증되고, 그리고 마지막으로 C-상태 저장 소자들이 검증된다. 이 순서는 순서(950)에 비해 프로그래밍 시간을 단축시킨다. 순서(950) 동안 내내 Vpgm=△Vpgm-effective=0.3V인 것과 비교하여, 순서(960)에서는 비트 라인 스텝 업 전과 후 모두에 △Vpgm=△Vpgm-effective=0.4V이므로, 저장 소자들은 순서(950)에서보다 순서(960)에서 더 빠르게 프로그램된다. 그러나, 순서(950) 및 (960) 둘 모두에서 공통 타겟 데이터 상태를 갖는 저장 소자들의 프로그래밍 동안 △Vpgm-effective=0.3V이므로, 동일한 Vth 분포 폭들이 두 순서들 모두에서 달성될 수 있다.
프로그래밍 동안, 최고 타겟 데이터 상태(예를 들어, C-상태)를 제외한 모든 타겟 데이터 상태들에 대해 Vbl이 여기에서 설명된 것과 같이 스텝 업 될 때, 순서(970)가 발생하며, 여기서 △Vpgm=0.4V이고, △Vbl은 △Vpgm-effective=0.3V이도록 선택된다. 먼저, A-상태 저장 소자들이 검증되고, 이후, A- 및 B- 상태 저장 소자들이 검증되고, 이후 A-, B-, 및 C-상태 저장 소자들이 검증되고, 이후 B- 및 C-상태 저장 소자들이 검증되고, 그리고 마지막으로 C-상태 저장 소자들이 검증된다. 저장 소자들의 프로그래밍 동안 C-상태 저장 소자들에 대해 △Vpgm=△Vpgm-effective=0.4V이므로, 이 순서는 순서(960)에 비해 프로그래밍 시간을 더 단축시키며, 따라서 C-상태 저장 소자들의 프로그래밍 시간이 감소된다. 일반적으로, 주어진 프로그램 펄스에 대해 더 많은 검증 동작들이 수행될 때, 프로그램 펄스들의 수 및 관련된 셋업 시간이 단축되므로, 프로그래밍 시간이 단축된다.
언급된 바와 같이, 최고의 타겟 데이터 상태에 대해 보통 더 넓은 Vth 분포가 용인될 수 있으며, 따라서 프로그래밍 시간은 최고의 타겟 데이터 상태에 대해 Vbl을 스텝 업하지 않음으로써 더 단축될 수 있다. 구체적으로, Vbl이 스텝 업 되지 않을 때 Vth 분포의 상부 꼬리가 더 높을 것이다. 그러나, 최저 상태 상부 꼬리와 최고 상태 하부 꼬리 사이의 갭으로서 정의되는 Vth 윈도우의 관점에서 이는 그리 중요한 것이 아니다. 최고 타겟 데이터 상태에 대해 Vbl을 스텝 업하지 않는 것의 또 다른 이점은 최고 상태 저장 소자들을 프로그램하는데 필요한 최고 Vpgm이 Vbl이 스텝 업될 때보다 낮다는 것이다. 더 높은 Vpgm은 E-상태 저장 소자들에 대해 증가된 프로그램 방해를 야기할 수 있다. 따라서, 최고 상태 비트 라인 스텝 업을 디스에이블시키는 것이 프로그램 방해 관점에서 바람직할 수 있다.
이 예는 4-상태 메모리 디바이스와 관련되나 본 개념은 8 또는 16 상태와 같은 추가의 상태들로 확장될 수 있음에 주목하여야 한다.
도 10은 도 9b의 순서(960)에 대한 프로그램 펄스 수의 함수로서의 프로그램-검증 동작들을 도시한다. 일반적으로, 프로그램 동작은 선택된 워드 라인에 펄스 트레인을 인가하는 것을 수반할 수 있고, 여기서 펄스 트레인은 프로그램 펄스들 다음에 하나 이상의 검증 펄스들을 포함한다. 프로그램 펄스 및 후속되는 하나 이상의 검증 펄스들의 각각의 조합은 프로그램-검증 동작 또는 반복(iteration)을 형성한다. 프로그램 펄스는 임의의 개수의 서로 다른 파형 형상들을 가질 수 있음에 주목하여야 한다. 정현파가 도시되었으나, 다중레벨 형상 또는 램프 형상과같은 다른 형상들도 가능하다. 펄스 트레인은 일반적으로 고정 스텝 사이즈를 사용하여, 진폭에 있어서 계단식으로 증가하는 프로그램 펄스들을 일반적으로 포함하나, 변하는 스텝 사이즈가 또한 사용될 수 있다. 다중-패스 프로그래밍 동작의 각각의 프로그래밍 패스에서, 초기 Vpgm 레벨에서 시작하여 최대 허용 Vpgm 레벨 미만인 최종 Vpgm 레벨에서 종료되는 새로운 펄스 트레인이 적용될 수 있다. 초기 Vpgm 레벨들은 서로 다른 프로그래밍 패스들에서 동일하거나 서로 다를 수 있다. 최종 Vpgm 레벨들이 또한 서로 다른 프로그래밍 패스들에서 동일하거나 서로 다를 수 있다. 스텝 사이즈가 서로 다른 프로그래밍 패스들에서 동일하거나 서로 다를 수 있다. 일부 경우들에, Vth 분포 폭을 축소시키기 위하여 더 작은 스텝 사이즈가 최종 프로그래밍 패스에서 사용된다.
펄스 트레인(1000)은 프로그래밍을 위해 선택된 워드 라인 및 비휘발성 저장 소자들의 관련 세트에 인가되는 일련의 프로그램 펄스들(1005, 1010, 1015, 1020, 1025, 1030, 1035, 1040, 1045, 1050, 1055, 1060, 1065, 1070, 1075)을 포함한다.검증되고 있는 타겟 데이터 상태들에 근거하여, 예를 들어 하나, 둘 또는 세 개의 검증 레벨들이 각각의 프로그램 펄스 다음에 제공된다. 0V가 프로그램 펄스와 검증 펄스 사이에서 WLn에 인가될 수 있다. 예를 들어, A-상태 검증 펄스(예컨대, 파형(1006))가 제1, 제2 및 제3 프로그램 펄스들(1005, 1010, 1015) 각각의 다음에 인가될 수 있다. A- 및 B-상태 검증 펄스들(예를 들어, 파형(1021))은 제4, 제5, 및 제6 프로그램 펄스들( 1020, 1025, 및 1030) 각각의 다음에 인가될 수 있다. A-, B- 및 C-상태 검증 펄스들(예를 들어, 파형(1036))은 제7 및 제8 프로그램 펄스들(1035, 1040) 각각의 다음에 인가될 수 있다. B- 및 C-상태 검증 펄스들(예를 들어, 파형(1046))은, 제9, 제10, 및 제11 프로그램 펄스들(1045, 1050 및 1055) 각각의 다음에 인가될 수 있다. 마지막으로, C-상태 검증 펄스(예를 들어, 파형(1061))가 제12, 제13, 제14 및 제15 프로그램 펄스들(1060, 1065, 1070 및 1075) 각각의 다음에 인가될 수 있다.
도 11a는 서로 다른 데이터 상태들에 대한 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝 업을 도시하며, 여기서 모든 데이터 상태들에 속하는 저장 소자들에 대해 공통 스텝 사이즈가 사용된다. 파형(1100, 1102, 1104)은 A-, B-, 및 C-상태에 대한 비트 라인 전압을 각각 나타낸다. 이 예에서, Vbl은 고정 스텝 사이즈 △Vbl를 사용하여 V1, V2, V3, V4, V5 및 Vbl-max(최대 허용 레벨)로 스텝 업된다. Vbl-lockout은 로크아웃 비트 라인 전압을 표시하며, 이는 Vbl-max보다 높다. 일부 경우에, 특정 타겟 상태의 모든 저장 소자들이 Vbl-max이 도달되기 전에 로크아웃될 수 있고 따라서 Vbl-max는 도달될 수 있거나 도달될 수 없는 세이프가드(safeguard)이다.
각각의 타겟 데이터 상태의 저장 소자들에 대해, 비트 라인 스텝 업의 시작 및/또는 비트 라인 스텝 업의 종료가 서로 다른 트리거 조건들에 근거하여 설정될 수 있다. 비적응적(non-adaptive) 일 기법에서, 각각의 타겟 데이터 상태에 대해 비트 라인 스텝 업 제어 루프의 시작 및 종료를 위해 고정 Vpgm 펄스 수가 설정된다. 예를 들어, 메모리 디바이스의 ROM 퓨즈 파라미터는 BL-램프-시작-A=2, BL-램프-종료-A=7, BL-램프-시작-B=5, BL-램프-종료-B=10, BL-램프-시작-C=8 및 BL-램프-종료=13이다. 각각의 데이터 상태는 그 고유의 비트 라인 스텝 업 제어 루프를 가진다. 이 예에서, 요구되는 Vth 분포 폭이 각각의 데이터 상태에 대해 동일하므로, 각각의 비트 라인 스텝 업 제어 루프에서 프로그램 펄스들의 수는 동일하다. 더 넓은 Vth 분포 폭이 허용가능하다면, 비트 라인 스텝 업 제어 루프는, 더 적은 프로그램 펄스들을 갖고, 더 작을 수 있다.
비트 라인 스텝 업 시작 및 종료에 사용되는 Vpgm 펄스 수들은 상대적으로 적은 데이터 상태 저장 소자들이 그 데이터 상태의 비트 라인 스텝 업 제어 루프 전 또는 후에 검증 레벨에 도달하고 그리고 로크아웃 되도록 선택될 수 있으며, 한편 비트 라인 스텝 업 제어 루프 동안에 저장 소자들의 대다수가 검증 레벨에 도달하고 로크 아웃될 것이다. 비트 라인 스텝 업 제어 루프 전 또는 후에 적은 수의 저장 소자들이 검증 레벨에 도달하고 로크 아웃될 수 있게 하는 것은 Vth 분포를 크게 넓히지 않는다. 그러나, 이는 △Vpgm-effective가 낮아지는 시간을 단축시켜 주며, 따라서 전체 프로그래밍 시간이 불필요하게 연장되지 않는다.
도 11b는 A-상태 저장 소자들에 대해 비트 라인 스텝 업 루프를 시작하기 위한 트리거 조건을 도시한다. 예시적인 프로그래밍 패스에서, A-상태 저장 소자들은 E-상태 분포(1110)로부터 시작하여 VvaL을 사용하여 프로그램된다. 하나 이상의 프로그램 펄스들 후, 분포(1112)는 A-상태 저장 소자들을 나타낸다. 분포(1112)의 부분(1114)은 Vth>VvaL인 A-상태 저장 소자들을 나타낸다.
도 11c는 A-상태 저장 소자들에 대해 비트 라인 스텝 업 루프를 정지시키기 위한 트리거 조건을 도시한다. 하나 이상의 추가적인 프로그램 펄스들 후, 분포(1120)가 A-상태 저장 소자들을 나타낸다. 분포(1120)의 부분(1116)은 Vth<VvaL인 A-상태 저장 소자들을 나타낸다. 동시에 프로그램될 수 있는 다른 타겟 상태들의 저장 소자들의 Vth 분포는 도시되지 않는다.
위에서 기술된 비적응적 기법에 대한 대안으로서, 비트 라인 스텝 업 루프의 시작 및/또는 종료를 설정하기 위해 적응적 기법이 사용될 수 있다. 이는 서로 다른 워드 라인들 상에서와 같은, 동일한 메모리 디바이스 내의 서로 다른 저장 소자들의 세트들에 대해 시작 및/또는 종료 시간이 달라질 수 있게 한다. 또한, 예컨대, 시간에 따른 성능 변화에 기초하여, 프로그램-소거 사이클이 축적됨에 따라, 또는 온도 변화와 같은 서로 다른 환경 조건들에 기초하여, 저장 소자들의 동일한 세트에 대해 시작 및/또는 종료 시간이 달라질 수 있다.
예를 들어, 고정 프로그램 펄스 수를 사용하는 대신, 특정 검증 레벨 초과 또는 미만인 저장 소자들의 최소 수에 근거하여 비트 라인 스텝 업 루프를 시작 및/또는 종료할 수 있다. 예컨대, 영역(1114)로 나타낸 저장 소자들은 관련된 저장 소자에 대해 Vth>VvaL인지 결정하기 위하여 각각의 비트 라인의 감지 증폭기가 판독되는 비트 스캔 절차에 의해 검출될 수 있다. 비트들, 예를 들어, A-상태 저장 소자들의 최소 수가 VvaL을 초과한 것으로 검출될 때, A-상태에 대한 비트 라인 스텝 업 루프가 시작될 수 있다. 마찬가지로, 비트 라인 스텝 업 루프는 그 Vth가 VvaL 미만인 A-상태 비트들의 수가 특정 수보다 작을 때(또는 Vth>VvaL인 A-상태 비트들의 수가 특정 수를 초과할 때) 정지할 수 있다. 비트 라인 스텝 업 시작 또는 정지 결정이 이루어지는, 비트-스캔 동안의 비트들의 특정 수는 다른 ROM 퓨즈 파라미터에 의해 제어될 수 있다. 비트-스캔을 그들 각각의 검증 레벨들에서 수행함으로써 다른 상태들에 대해 유사한 결정들이 이루어질 수 있다.
비트 라인 스텝 업을 정지시키기 위한 다른 트리거 조건이 아직 만족되지 않았을 때 Vbl이 과도하게 높은 레벨로 스텝 업되지 않도록 최대 허용(maximum allowed) Vbl(예를 들어, 도 11a의 Vbl-max)을 강제하는 것이 또한 가능하다.
또 다른 기법에서, 비트 라인 스텝 업 루프는, 각각의 데이터 상태에 대해,비트-스캔 을통과한 후, 그리고, 특정 수의 추가적인 프로그램 펄스들의 완료 후 시작될 수 있다. 마찬가지로, 비트 라인 스텝 업이, 각각의 데이터 상태에 대해, 비트-스캔 패스 후, 그리고 특정 수의 추가적인 프로그램 펄스들의 완료 후 종료될 수 있다.
또 다른 기법에서, 일 데이터 상태에 대한 비트 라인 스텝 업 루프는, 다른 하위 데이터 상태에 대한 비트-스캔을 통과한 후에, 그리고 특정 수의 추가적인 프로그램 펄스들의 완료 후 시작될 수 있다. 예를 들어, B-상태 저장 소자들에 대한 비트 라인 스텝 업 루프는, A-상태 저장 소자들에 대해 VvaL에서 비트-스캔을 통과한 후, 그리고 (도 11a에 따른 3개의 프로그램 펄스들과 같은) 특정 수의 추가적인 프로그램 펄스들의 완료 후 시작될 수 있다. 유사한 방법론이 비트 라인 스텝 업을 정지시키기 위해 사용될 수 있다. 그러한 방법을 이용하여, 단지 최저의 상태에 대해서만 비트-스캔 동작들을 수행함으로써 비트 라인 스텝 업의 시작 및 정지가 모든 데이터 상태들에 대해 적응적으로 만들어질 수 있다.
임의의 특정 타겟 데이터 상태에 대해 언제 비트 라인 스텝 업 루프를 시작 및/또는 종료할지를 결정하기 위해 위의 방법들의 임의의 조합이 또한 사용될 수 있다.
제공된 예들에서, 저장 소자 메모리 디바이스 마다 4-상태, 2-비트의 구현예가 도시된다. 그러나, 본 개념들이, 8개 또는 16개 상태 디바이스들에 대해서도 사용될 수 있다. 그러나, 추가의 비트 라인 전압들을 동시에 발생시키는 것이 필요할 수 있다.
도 12a는 도 11a와 일치하는, A-상태 저장 소자들에 대한 프로그램 펄스 수에 따른 프로그래밍 레이트를 도시한다. 언급된 바와 같이, 프로그램 펄스 당 저장 소자의 Vth 변화(△Vth/pulse) 면에서, 프로그래밍 속도 또는 레이트는 Vbl의 함수이다. 비트 라인 바이어스가 인가되지 않으면(Vbl=0V), △Vth/pulse=R2, 즉 더 높은 레이트이다. Vpgm 스텝 업과 같은 비율(lockstep)로 일정한 비트 라인 스텝 업이 적용되면, △Vth/pulse=R1<R2(여기서, R1은 더 낮은 레이트)이다. 도 11a의 예에서, A-상태 저장 소자들에 속한 비트 라인들이 제2 프로그램 펄스에서 스텝 업을 시작하며, 따라서 제2 프로그램 펄스에서 A-상태 저장 소자들에 대해 R2로부터 R1으로의 천이가 발생한다. 마찬가지로, A-상태 저장 소자들에 대한 비트 라인 스텝 업이 8번째 프로그램 펄스에서 정지되고(최종 스텝 업은 7번째 프로그램 펄스에 있음); 따라서 8번째 프로그램 펄스에서 A-상태 저장 소자들에 대해 R1으로부터 다시 R2로의 천이가 발생한다. 실제로, △Vth/pulse는 간결성을 위하여 도시된 스텝 변화를 보이기 보다는 하나 이상의 프로그램 펄스들에 대해 점진적으로 천이할 수 있다. 9번재 프로그래밍 펄스에서, A-상태 저장 소자들이 로크아웃되고 따라서 프로그래밍 속도가 0으로 떨어진다.
도 12b는 도 11a와 일치하는, B-상태 저장 소자들에 대한 프로그램 펄스 수에 따른 프로그래밍 레이트를 도시한다. 도 11a의 예에서, B-상태 저장 소자들에 대해, 5번째 프로그램 펄스에서 R2로부터 R1으로의 천이가 발생하고, 그후 11번째 프로그램 펄스에서 R2으로부터 R1으로의 천이가 발생한다. 12번째 프로그램 펄스에서, B-상태 저장 소자들이 로크아웃되고, 따라서 프로그래밍 속도가 0으로 떨어진다.
도 12c는 도 11a와 일치하는, C-상태 저장 소자들에 대한 프로그램 펄스 수에 따른 프로그래밍 레이트를 도시한다. 도 11a의 예에서, C-상태 저장 소자들에 대해, 8번째 프로그램 펄스에서 R2로부터 R1으로의 천이가 발생하고, 그후 14번째 프로그램 펄스에서 R2로부터 R1으로의 천이가 발생한다. 15번째 프로그램 펄스 후, 프로그래밍이 종료되고 따라서 C-상태 저장 소자들을 위한 프로그램 속도가 0으로 떨어진다.
도 13은 서로 다른 데이터 상태들에 대해 프로그램 펄스 수에 따른 비트 라인 전압의 스텝 업을 도시하며, 여기서 모든 데이터 상태들에 대해, 작은 스텝 사이즈, 그후 더 큰 스텝 사이즈, 그 후 더 작은 스텝 사이즈가 사용된다. 도 11a의 예에서, Vbl은 고정 스텝 사이즈를 사용하여(즉, 고정 레이트에서) 스텝 업되었다. 이 기법에서, 서로 다른 비트 라인 스텝 업 레이트들이 사용된다. 제1의 작은 비트 라인 스텝 업 레이트를 사용하고 그후 제2의 더 큰 비트 라인 스텝 업 레이트를, 그후 제3의 더 작은 비트 라인 스텝 업 레이트를 이용하는 것이 유용할 수 있다. 제3 비트 라인 스텝 업 레이트는 제2 비트 라인 스텝 업 레이트보다 작고, 제1 비트 라인 스텝 업 레이트와 동일할 수 있다. 이 기법은 가우시안 분포에 따라 저장 소자들의 대부분이 타겟 검증 레벨 및 로크아웃 조건에 도달하고 있을 때 프로그래밍을 가장 느려지게 한다. 주어진 워드 라인 상의 저장 소자들에 대한 본래의 프로그램된 Vth 분포는 일반적으로 특성상 가우시안 분포이며, 따라서 저장 소자들의 대부분의 Vth가 분포의 중앙 근처에서 발생하고 반면에 더 적은 셀들의 Vth는 가우시안 분포의 하부 또는 상부 꼬리들에 존재한다.
따라서, 주어진 타겟 데이터 상태에 대해, 저장 소자들의 대부분이, 가우시안 분포의 피크에서, 동일한 프로그램 펄스 수에 가깝게 로크 아웃될 것이며, 그러므로 이제 최고의 비트 라인 스텝 업 레이트를 사용하여 프로그래밍을 최대한 느려지게 함으로써 최고의 이득 대 비용 비율을 달성할 수 있다. 이점은 Vth 분포를 좁히는 것이고 비용은 프로그래밍 시간의 증가이다. 가우시안 분포의 하부 및 상부 꼬리에 있는 저장 소자들은 저장 소자들 대부분이 로크아웃될 프로그램 펄스와는 거리가 먼 특정 프로그램 펄스 수들에서 로크 아웃될 것이다. 이 경우에, 최고의 이득 대 비용 비율은 그 특정 프로그램 펄스들 동안 낮은(그러나, 0이 아닌) 비트 라인 스텝 업 레이트에 의해 달성될 수 있다. 가우시안 분포의 매우 낮은 그리고 매우 높은 꼬리들에 있는 저장 소자들은, 저장 소자들의 대부분이 로크(lock)될 프로그램 펄스와는 더 먼 다른 프로그램 펄스 수들에서 로크 아웃될 것이다. 이 경우에, 그 다른 프로그램 펄스들 동안 비트 라인 스텝 업을 하지 않음으로써 최고의 이득 대 비용 비율이 달성될 수 있다.
예를 들어, 파형(1300, 1302, 1304)은 각각 A-, B-, 및 C- 상태 저장 소자들에 대한 Vbl을 나타낸다. 각각의 파형은 비트 라인 레벨(V1', V2', V3', V4', V5' 및 Vbl-max)을 포함한다. Vbl이 V1' 및 V2'로 설정될 때 스텝 업 레이트 또는 스텝 사이즈는 상대적으로 작다. 마찬가지로, Vbl이 V5' 및 Vbl-max로 설정될 때 스텝 업 레이트 또는 스텝 사이즈가 또한 상대적으로(그리고 선택적으로, 동일하게) 작다. Vbl이 V3' 및 V4'로 설정될 때 스텝 업 레이트 또는 스텝 사이즈는 상대적으로 크다.
도 14는 서로 다른 데이터 상태들에 대한 프로그램 펄스 수에 따른 비트 라인 전압의 스텝 업을 도시하며, 여기서 하위 데이터 상태들에 대해 더 큰 스텝 사이즈가 사용되고, 그리고 최고의(highest) 데이터 상태에 대해 작은 스텝 사이즈가 사용된다. 이 예는 더 작은 Vbl 스텝 사이즈가 최고의 상태(이 예에서 C-상태)에 대해 사용되는 것을 제외하고는 도 11a의 것과 유사하다. 이 경우에, Vbl은 각각의 타겟 데이터 상태와 관련된 스텝 사이즈를 사용하여 스텝 업되며, 여기서 서로 다른 각각의 스텝 사이즈들은 가능한 타겟 데이터 상태들의 세트의 적어도 두 개의 서로 다른 각각의 타겟 데이터 상태들과 관련된다. 예를 들어, 일 Vbl 스텝 업 레이트가 A- 및 B-상태 저장 소자들에 대해 사용될 수 있고, 다른, 하위 Vbl 스텝 업 레이트가 C-상태 저장 소자들에 대해 사용될 수 있다. 더 작은 Vbl 스텝 업 레이트의 사용은 결과적으로 더 넓은 Vth 분포의 비용으로 더 빠른 프로그래밍이 되게 한다.
파형(1400, 1402 및 1404)은 각각 A-, B-, 및 C-상태 저장 소자들에 대한 Vbl을 나타낸다. 여기서, C-상태에 대해 파형(1404)에서 V1, V2, V3, V4, V5 의 Vbl 레벨들은 도 11a의 것과 동일할 수 있다. 파형(1400, 1402)에서 각각, V1", V2", V3" 및 V4"의 Vbl 레벨들이 A- 및 B-상태들에 대해 사용된다. 언급된 바와 같이, 비트 라인 스텝 업이 없는 것은 결과적으로, 최고의 상태에 대해 더 넓은 Vth 분포가 되게 하고, 이는 일반적으로 프로그래밍 시간을 단축시키기 위한 허용가능한 트레이드오프이다. 반면, 더 큰 Vbl 스텝 업 레이트는 결과적으로 Vth 분포를 더 조밀하게 하나, 프로그래밍 시간을 더 길어지게 한다. 본 예시는 최고의 상태에 대해 비트 라인 스텝 업을 사용하지 않는 것과, 하위 상태들(예를 들어, A-, B-, 및 C- 상태들)에 대해 더 큰 비트 라인 스텝 업을 사용하는 것 사이의 절충(compromise)을 제공한다. 이는 결과적으로, 비트 라인 스텝 업이 사용되지 않는 경우와 비교하여, 최고의 상태에 대해 어느 정도 더 좁은 Vth 분포가 제공된다는 점에서 균형이 되게 한다. 최고의 상태에 대해 Vbl 스텝 업이 사용되지 않았다면 프로그래밍 시간이 더 길지만, 최고의 상태에 대해 더 큰 Vbl 스텝 업이 사용되었다면 프로그래밍 시간은 더 짧다.
도 15는 서로 다른 데이터 상태들에 대한 프로그램 펄스 수에 따른 비트 라인 전압의 스텝 업을 도시하며, 여기서 모든 데이터 상태들에 대해 공통 스텝 사이즈가 사용되고, Vth 레벨에 기초하여 추가의 비트 라인 전압이 부가된다. 일부 프로그래밍 기법들에서, 추가의 비트 라인 전압(Δ)이, 일반적으로 가장 높은 상태를 제외한 모든 상태들에 대해, 프로그래밍을 느려지게 하기 위해 사용된다. 이 추가의 비트 라인 전압은 아직 프로그래밍으로부터 로크아웃되지 않았으며 그 Vth가 각각의 타겟 데이터 상태의 제1 검증 레벨과 제2 검증 레벨 사이에 있는 저장 소자들에 대해 사용될 수 있다. 예를 들어, 예컨대 도 4를 참조하여, 제1 및 제2 검증 레벨은 A-상태에 대해 각각 VvaL 및 Vva일 수 있고, B-상태에 대해 각각 VvbL 및 Vvb일 수 있고, C-상태에 대해 각각 VvcL 및 Vvc일 수 있다. 한가지 가능한 구현예에서, 비트 라인 스텝 업은 일 프로그램 펄스에서 시작하고, 그리고 다른 프로그램 펄스에서 시작하는 추가의 비트 라인 전압이 부가된다. 마찬가지로, 비트 라인 스텝 업이 일 프로그램 펄스에서 정지될 수 있고, 반면 상기 추가의 비트 라인 전압은 다른 프로그램 펄스에서 정지한다. 비트 라인 스텝 업은 공통 타겟 데이터 상태를 갖는 저장 소자들의 서브세트에 동시에 인가될 수 있고, 반면, 서브세트의 프로그래밍 진행과 상관 없이, 추가의 비트 라인 전압이 그 비트 라인을 통해 개별 저장 소자에 인가된다. 추가의 비트 라인 전압을 인가하는 것은 Vbl을 현재 스텝 업 레벨 너머로 추가의 고정 양만큼 증가시킴으로써 달성된다. 이 기법은 주어진 시간에 요구되는 비트 라인 전압들의 수를 증가시킬 수 있다.
예를 들어, A-상태 저장 소자들에 대해, 파형(1500, 1502)은 추가적인 비트 라인 전압이 부가되거나 부가되지 않는 비트 라인 스텝 업 레벨을 각각 도시한다. 부가된 추가의 비트 라인 전압이 또한 비트 라인 스텝 업 전 또는 후에 인가될 수 있음에 주목하여야 한다. B-상태 저장 소자들에 대해, 파형(1504, 1506)은 추가의 비트 라인 전압이 부가되거나 부가되지 않은 비트 라인 스텝 업 레벨을 각각 도시한다. C-상태 저장 소자들에 대해, 파형(1508, 1510)은 추가의 비트 라인 전압이 부가되거나 부가되지 않은 비트 라인 스텝 업 레벨을 각각 도시한다. Vbl-max-new는 허용될 수 있는 새로운, 더 높은 Vbl을 나타낸다. 대안적으로, Vbl-max가 강제되어, Vbl-max를 초과하는 것을 방지하기 위하여 비트 라인 스텝 업이 조기에 종료되도록 할 수 있다. 즉, 비트 라인 스텝 업 레벨과 추가의 비트 라인 전압의 합에 대해 최대 허용 Vbl이 강제될 수 있다.
일 실시예에서, 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법은 프로그램 펄스들의 세트를 비휘발성 저장 소자들의 세트에 인가하는 것을 포함하며, 여기서 비휘발성 저장 소자들의 세트 내의 각각의 비휘발성 저장 소자가 각각의 비트 라인과 관련되고, 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함한다. 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각 타겟 데이터 상태의 각 검증 레벨(Vva, Vvb, Vvc)로 프로그램되된다. 본 방법은 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족될 때를 결정하는 단계를 더 포함한다. 본 방법은, 제1 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로, 스텝 업하는 단계를 더 포함한다.
다른 실시예에서, 대응하는 비휘발성 저장 시스템은 비휘발성 저장 소자들의 세트를 포함하며, 여기서 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하고, 그리고 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각각의 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각각의 타겟 데이터 상태의 각각의 검증 레벨로 프로그램된다. 각각의 비트 라인은 각각의 비휘발성 저장 소자와 관련된다. 적어도 하나의 제어 회로가 (a) 비휘발성 저장 소자들의 세트에 프로그램 펄스들의 세트를 인가하고, (b) 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족될 때를 결정하고, 그리고 (c) 제1 트리거 조건이 만족될 때, 프로그래밍으로부터 아직 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로(in lockstep) 스텝 업시킨다.
또 다른 실시예에서, 비휘발성 저장 시스템은 프로그램 펄스들의 세트를 비휘발성 저장 소자들의 세트에 인가하기 위한 수단을 포함하며, 여기서 비휘발성 저장 소자들의 세트 내의 각각의 비휘발성 저장 소자는 각각의 비트 라인과 관련되고, 상기 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함한다. 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각각의 타겟 데이터 상태의 각각의 검증 레벨(Vva, Vvb, Vvc)로 프로그램된다. 비휘발성 저장 시스템은 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족될 때를 결정하기 위한 수단을 더 포함한다. 비휘발성 저장 시스템은, 제1 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로, 스텝 업시키기 위한 수단을 더 포함한다.
다른 실시예에서, 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법은 비휘발성 저장 소자들의 세트에 프로그램 펄스들의 세트를 인가하는 것을 포함하며, 여기서 비휘발성 저장 소자들의 세트 내의 각각의 비휘발성 저장 소자는 각각의 비트 라인과 관련되고, 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하며, 그리고 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각각의 타겟 데이터 상태의 각각의 검증 레벨로 프로그램된다. 본 방법은 또한 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로, 스텝 업시키는 단계, 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 트리거 조건이 만족될 때를 결정하는 단계, 그리고 트리거 조건이 만족될 때, 프로그램 펄스들의 세트의 하나 이상의 추가적인 프로그램 펄스들의 각각의 프로그램 펄스로 전압을 고정(fix)시키는 단계를 더 포함한다.
다른 실시예에서, 대응하는 비휘발성 저장 시스템은, 비휘발성 저장 소자들의 세트를 포함한다. 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하며, 여기서 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소잗르의 일서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각각의 타겟 데이터 상태의 각각의 검증 레벨로 프로그램된다. 각각의 비트 라인은 각각의 비휘발성 저장 소자와 관련된다. 적어도 하나의 제어 회로가 (a) 프로그램 펄스들의 세트를 비휘발성 저장 소자들의 세트에 인가하고, (b) 프로그래밍으로부터 아직 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로, 스텝 업 시키고, (c) 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 트리거 조건이 만족될 때를 결정하고, 그리고 (d) 트리거 조건이 만족될 때, 프로그램 펄스들의 세트의 하나 이상의 추가적인 프로그램 펄스들의 각각의 프로그램 펄스로 전압을 고정시키는 단계를 더 포함한다.
여기에서 제공되는 방법을 수행하기 위한 대응하는 방법, 시스템, 및 컴퓨터 또는 프로세서 판독가능 저장 장치들이 제공된다.
본 발명의 상기 상세한 설명은 예시 및 설명의 목적으로 제시되었다. 본 상세한 설명이 모든 실시예를 포괄하거나 본 발명을 개시된 특정한 형태로 제한하려 의도된 것은 아니다. 위의 내용에 비추어 많은 수정들 및 변형이 가능하다. 개시된 실시예들은 본 발명의 원리들을 가장 잘 설명함으로써, 본 기술 분야의 당업자들이 다양한 실시예들에서, 그리고 고려되는 특정 용도에 적합한 다양한 수정들로 본 발명을 가장 잘 이용할 수 있게 하기 위하여 선택된 것이다. 본 발명의 범주는 첨부된 청구항들에 의해 한정되는 것으로 의도된다.

Claims (15)

  1. 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법으로서,
    프로그램 펄스들의 세트(1005, 1010, ...)를 비휘발성 저장 소자들의 세트(155)에 인가하는 단계와, 상기 비휘발성 저장 소자들의 세트 내의 각각의 비휘발성 저장 소자는 각각의 비트 라인(BL0, BL1, ...)과 관련되고, 상기 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하고, 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들(A, B, C) 중의 각 타겟 데이터 상태의 각 검증 레벨(Vva, Vvb, Vvc)로 프로그램되고;
    상기 프로그램 펄스들의 세트 동안 상기 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족되는 때를 결정하는 단계와; 그리고
    상기 제1 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브 세트의 비휘발성 저장소자들의 각각의 비트 라인들의 전압(Vbl)을, 상기 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로(in lockstep) 스텝 업(step up)시키는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  2. 제1 항에 있어서,
    상기 비휘발성 저장 소자들의 세트는 공통 워드 라인(WLn)과 통신하고; 그리고
    상기 프로그램 펄스들의 세트는 상기 공통 워드 라인을 통해 상기 비휘발성 저장 소자들의 세트에 인가되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  3. 제1 항 또는 제2 항에 있어서,
    상기 제1 트리거 조건은 소정의(predetermined) 프로그램 펄스 수에 도달될 때에 근거하여 만족되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  4. 제1 항 또는 제2 항에 있어서,
    상기 제1 트리거 조건은, 상기 일 서브세트 내의 적어도 특정 개수의 상기 비휘발성 저장 소자들의 임계 전압들이 상기 하나의 각 검증 레벨에 도달한 것으로 검증되었을 때에 근거하여 만족되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  5. 제4 항에 있어서,
    상기 제1 트리거 조건은, 상기 일 서브세트 내의 상기 적어도 특정 개수의 비휘발성 저장 소자들의 임계 전압들이 상기 하나의 각 검증 레벨에 도달한 것으로 검증된 때 만족되고, 그후 상기 비휘발성 저장 소자들의 세트에 고정 개수의 프로그램 펄스들이 인가되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  6. 제1항에 있어서,
    상기 제1 트리거 조건이 만족되기 전에, 상기 제1 트리거 조건을 선행하는(precede) 프로그램 펄스들의 세트의 각각의 프로그램 펄스 동안 상기 전압(Vbl)을 고정(fix)시키는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  7. 제1항에 있어서,
    임계 전압이 상기 하나의 각 타겟 데이터 상태의 제1 검증 레벨과 제2 검증 레벨 사이에 있는 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들에 대해, 상기 전압(Vbl)을 추가의 고정 양(additional fixed amount) 만큼 상승시키는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  8. 제1항에 있어서,
    상기 전압(Vbl)은 상기 하나의 각 타겟 데이터 상태와 관련된 스텝 사이즈를 사용하여 스텝 업되고, 서로 다른 각 스텝 사이즈들은 상기 복수의 타겟 데이터 상태들 중 적어도 두 개의 서로 다른 각 타겟 데이터 상태들과 관련되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  9. 제1항에 있어서,
    상기 전압(Vbl)은 상기 복수의 연속적인 프로그램 펄스들 동안에, 제1 레이트(rate)(R1)에서 스텝 업되고 이후 제2의 더 높은 레이트(R2)에서 스텝 업 되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  10. 제9항에 있어서,
    상기 전압(Vbl)은, 상기 복수의 연속적인 프로그램 펄스들 동안에, 후속적으로, 상기 제2 레이트보다 낮은 제3 레이트에서 스텝 업되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  11. 제1항에 있어서,
    상기 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 제2 트리거 조건이 만족될 때를 결정하는 단계와; 그리고
    상기 프로그램 펄스들의 세트의 하나 이상의 추가적인 프로그램 펄스들의 각각의 프로그램 펄스 동안에, 상기 제2 트리거 조건이 만족될 때, 상기 전압(Vbl)을 로크아웃 레벨(Vbl-lockout) 미만으로 고정시키는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  12. 제1항에 있어서, 상기 비휘발성 저장 소자들의 서로 다른 서브세트들은, 상기 하나의 각 타겟 데이터 상태보다 높은 또 다른 각 타겟 데이터 상태의 또 다른 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 또 다른 서브세트를 포함하고,
    상기 프로그램 펄스들의 세트 동안에 상기 비휘발성 저장 소자들의 또 다른 서브세트에 대해 또 다른 트리거 조건이 만족되는 때를 결정하는 단계와; 그리고
    상기 또 다른 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크 아웃되지 않은 또 다른 서브세트의 비휘발성 저장 소자들의 각 비트 라인들의 전압을, 상기 프로그램 펄스들의 세트의 또 다른 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로(in lockstep) 스텝 업시키는 단계를 더 포함하며, 상기 또 다른 트리거 조건은 상기 제1 트리거 조건이 만족된 후에 만족되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  13. 제12 항에 있어서,
    상기 또 다른 트리거 조건은 상기 제1 트리거 조건이 만족된 때에 근거하여 만족되고, 그후 고정 수의 프로그램 펄스들을 상기 비휘발성 저장 소자들의 세트에 인가하는 단계가 수행되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.
  14. 비휘발성 저장 시스템으로서,
    비휘발성 저장 소자들의 세트(155)와, 상기 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하고, 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들(A, B, C) 중의 각 타겟 데이터 상태의 각 검증 레벨(Vva, Vvb, Vvc)로 프로그램되며,
    각각의 비휘발성 저장 소자와 관련된 각 비트 라인(BL0, BL1, ...)과; 그리고
    적어도 하나의 제어 회로를 포함하며, 상기 적어도 하나의 제어 회로는, (a) 프로그램 펄스들의 세트(1005, 1010, ...)를 비휘발성 저장 소자들의 세트에 인가하고, (b) 상기 프로그램 펄스들의 세트 동안 상기 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족될 때를 결정하고, 그리고 (c) 상기 제1 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압(Vbl)을, 상기 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로 스텝 업 시키는 것을 특징으로 하는 비휘발성 저장 시스템.
  15. 제14 항에 있어서,
    상기 제1 트리거 조건은 상기 하나의 서브세트 내의 적어도 특정 개수의 상기 비휘발성 저장 소자들의 임계 전압들이 상기 하나의 각 검증 레벨에 도달한것으로 검증된 때에 근거하여 만족되는 것을 특징으로 하는 비휘발성 저장 시스템.
KR1020137004047A 2010-07-19 2011-07-14 비트 라인 전압 스텝 업을 이용한 비휘발성 메모리의 프로그래밍 KR101787802B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/838,902 US8274838B2 (en) 2010-07-19 2010-07-19 Programming non-volatile memory with bit line voltage step up
US12/838,902 2010-07-19
PCT/US2011/044016 WO2012012261A1 (en) 2010-07-19 2011-07-14 Programming non-volatile memory with bit line voltage step up

Publications (2)

Publication Number Publication Date
KR20140012608A KR20140012608A (ko) 2014-02-03
KR101787802B1 true KR101787802B1 (ko) 2017-10-18

Family

ID=44628766

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137004047A KR101787802B1 (ko) 2010-07-19 2011-07-14 비트 라인 전압 스텝 업을 이용한 비휘발성 메모리의 프로그래밍

Country Status (7)

Country Link
US (1) US8274838B2 (ko)
EP (1) EP2596500A1 (ko)
JP (1) JP2013531331A (ko)
KR (1) KR101787802B1 (ko)
CN (1) CN103081015B (ko)
TW (1) TW201216283A (ko)
WO (1) WO2012012261A1 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8174895B2 (en) 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
TWI471862B (zh) 2011-08-19 2015-02-01 Silicon Motion Inc 快閃記憶體控制器
US8902659B2 (en) 2012-03-26 2014-12-02 SanDisk Technologies, Inc. Shared-bit-line bit line setup scheme
US9053819B2 (en) * 2012-07-11 2015-06-09 Sandisk Technologies Inc. Programming method to tighten threshold voltage width with avoiding program disturb
US8953386B2 (en) * 2012-10-25 2015-02-10 Sandisk Technologies Inc. Dynamic bit line bias for programming non-volatile memory
CN103019616B (zh) * 2012-11-23 2015-11-25 记忆科技(深圳)有限公司 一种固态硬盘及闪存芯片的充放电控制方法
US8837214B2 (en) 2012-12-10 2014-09-16 Apple Inc. Applications for inter-word-line programming
US8824214B2 (en) 2012-12-10 2014-09-02 Apple Inc. Inter-word-line programming in arrays of analog memory cells
US20140198576A1 (en) * 2013-01-16 2014-07-17 Macronix International Co, Ltd. Programming technique for reducing program disturb in stacked memory structures
US8879331B2 (en) 2013-03-12 2014-11-04 Sandisk Technologies Inc. Shared bit line string architecture
US8982626B2 (en) * 2013-06-05 2015-03-17 Sandisk Technologies Inc. Program and read operations for 3D non-volatile memory based on memory hole diameter
JP2015041402A (ja) * 2013-08-23 2015-03-02 株式会社東芝 不揮発性半導体記憶装置、及びデータ書き込み方法
CN104425025B (zh) * 2013-08-27 2017-10-24 晶豪科技股份有限公司 非易失性半导体存储器元件
US9396791B2 (en) 2014-07-18 2016-07-19 Micron Technology, Inc. Programming memories with multi-level pass signal
US9595345B2 (en) * 2014-08-07 2017-03-14 Sandisk Technologies Llc Adaptive selective bit line pre-charge for current savings and fast programming
KR102235492B1 (ko) 2014-08-25 2021-04-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법
US9299443B1 (en) * 2014-09-29 2016-03-29 Sandisk Technologies Inc. Modifying program pulses based on inter-pulse period to reduce program noise
KR102333743B1 (ko) * 2015-01-21 2021-12-01 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법
US9875805B2 (en) * 2015-01-23 2018-01-23 Sandisk Technologies Llc Double lockout in non-volatile memory
KR20160117713A (ko) * 2015-03-30 2016-10-11 에스케이하이닉스 주식회사 반도체 장치 및 그것의 동작 방법
US9595317B2 (en) * 2015-05-28 2017-03-14 Sandisk Technologies Llc Multi-state programming for non-volatile memory
US9437319B1 (en) * 2015-06-25 2016-09-06 Macronix International Co., Ltd. Method for programming non-volatile memory with reduced bit line interference and associated device
KR102348092B1 (ko) * 2015-09-14 2022-01-10 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
US10381094B2 (en) 2016-10-11 2019-08-13 Macronix International Co., Ltd. 3D memory with staged-level multibit programming
IT201600121618A1 (it) * 2016-11-30 2018-05-30 St Microelectronics Srl Metodo di riduzione della durata di un'operazione di memoria in un dispositivo di memoria non volatile e relativo dispositivo di memoria non volatile
KR102639697B1 (ko) 2017-01-09 2024-02-21 삼성전자주식회사 비휘발성 메모리 장치 및 그 프로그램 방법
US10650885B2 (en) * 2017-03-07 2020-05-12 Alibaba Group Holding Limited Extending flash storage lifespan and data quality with data retention protection
CN108962313A (zh) * 2017-05-23 2018-12-07 旺宏电子股份有限公司 存储器操作方法及存储器操作装置
US10297312B1 (en) 2017-12-06 2019-05-21 Sandisk Technologies Llc Resistive memory cell programmed by metal alloy formation and method of operating thereof
US10643720B2 (en) * 2018-05-23 2020-05-05 Sandisk Technologies Llc Bit line voltage control for damping memory programming
US10811109B2 (en) 2018-12-27 2020-10-20 Sandisk Technologies Llc Multi-pass programming process for memory device which omits verify test in first program pass
US10726929B1 (en) 2019-01-25 2020-07-28 Sandisk Technologies Llc Programming process which compensates for data state of adjacent memory cell in a memory device
US10706941B1 (en) 2019-04-01 2020-07-07 Sandisk Technologies Llc Multi-state programming in memory device with loop-dependent bit line voltage during verify
CN110176269B (zh) * 2019-04-16 2020-11-17 华中科技大学 一种精确调控非易失性存储单元状态的方法及系统
US10811075B1 (en) * 2019-08-19 2020-10-20 Silicon Motion, Inc. Method for performing access control regarding quality of service optimization of memory device with aid of machine learning, associated memory device and controller thereof
US11081184B2 (en) * 2019-10-30 2021-08-03 Sandisk Technologies Llc Method of concurrent multi-state programming of non-volatile memory with bit line voltage step up
US11417400B2 (en) 2020-01-31 2022-08-16 Sandisk Technologies Llc Controlling timing and ramp rate of program-inhibit voltage signal during programming to optimize peak current
US11049578B1 (en) * 2020-02-19 2021-06-29 Sandisk Technologies Llc Non-volatile memory with program verify skip
US11250920B2 (en) * 2020-06-30 2022-02-15 Sandisk Technologies Llc Loop-dependent switching between program-verify techniques
US11662941B2 (en) 2020-10-13 2023-05-30 Western Digital Technologies, Inc. System and method for mitigating effect of erase cells on adjacent cells
CN114220471A (zh) * 2021-01-06 2022-03-22 长江存储科技有限责任公司 3d存储器件及其读取方法
US11475959B1 (en) 2021-06-30 2022-10-18 Sandisk Technologies Llc Reduced program time for memory cells using negative bit line voltage for enhanced step up of program bias
US12046288B2 (en) * 2021-12-02 2024-07-23 Winbond Electronics Corp. Memory device comprising source switch to float source line of unselected memory cell block, memory array and program method using the same
US11972817B2 (en) 2022-06-10 2024-04-30 Sandisk Technologies, Llc State look ahead quick pass write algorithm to tighten ongoing natural threshold voltage of upcoming states for program time reduction

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005043548A1 (en) 2003-10-20 2005-05-12 Sandisk Corporation Programming method based on the behaviour of non-volatile memory cenlls

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327183B1 (en) 2000-01-10 2001-12-04 Advanced Micro Devices, Inc. Nonlinear stepped programming voltage
JP3631463B2 (ja) * 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
US6882567B1 (en) 2002-12-06 2005-04-19 Multi Level Memory Technology Parallel programming of multiple-bit-per-cell memory cells on a continuous word line
US7158421B2 (en) 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7564713B2 (en) 2005-04-28 2009-07-21 Kabushiki Kaisha Toshiba Semiconductor integrated circuit device wherein during data write a potential transferred to each bit line is changed in accordance with program order of program data
TW200727113A (en) 2006-01-03 2007-07-16 Via Tech Inc Computer system external power supply connector
US7656709B2 (en) 2007-05-03 2010-02-02 Micron Technology, Inc. NAND step up voltage switching method
US7599224B2 (en) * 2007-07-03 2009-10-06 Sandisk Corporation Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
US7508715B2 (en) * 2007-07-03 2009-03-24 Sandisk Corporation Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
US7551477B2 (en) 2007-09-26 2009-06-23 Sandisk Corporation Multiple bit line voltages based on distance
US7688638B2 (en) * 2007-12-07 2010-03-30 Sandisk Corporation Faster programming of multi-level non-volatile storage through reduced verify operations
KR101427896B1 (ko) 2008-08-06 2014-08-11 삼성전자주식회사 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치 및그것을 포함하는 메모리 시스템
US20100080064A1 (en) 2008-09-30 2010-04-01 Ercole Rosario Di Iorio Bit line bias for programming a memory device
KR101532755B1 (ko) 2008-10-13 2015-07-02 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 프로그램 방법, 및 그것의 프리차지 전압 부스팅 방법
JP2010211883A (ja) * 2009-03-11 2010-09-24 Toshiba Corp 不揮発性半導体記憶装置
US7986573B2 (en) * 2009-11-24 2011-07-26 Sandisk Technologies Inc. Programming memory with direct bit line driving to reduce channel-to-floating gate coupling
US8089815B2 (en) * 2009-11-24 2012-01-03 Sandisk Technologies Inc. Programming memory with bit line floating to reduce channel-to-floating gate coupling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005043548A1 (en) 2003-10-20 2005-05-12 Sandisk Corporation Programming method based on the behaviour of non-volatile memory cenlls

Also Published As

Publication number Publication date
WO2012012261A1 (en) 2012-01-26
CN103081015B (zh) 2016-01-20
KR20140012608A (ko) 2014-02-03
EP2596500A1 (en) 2013-05-29
CN103081015A (zh) 2013-05-01
US20120014184A1 (en) 2012-01-19
TW201216283A (en) 2012-04-16
JP2013531331A (ja) 2013-08-01
US8274838B2 (en) 2012-09-25

Similar Documents

Publication Publication Date Title
KR101787802B1 (ko) 비트 라인 전압 스텝 업을 이용한 비휘발성 메모리의 프로그래밍
US7800956B2 (en) Programming algorithm to reduce disturb with minimal extra time penalty
USRE45520E1 (en) Data state-dependent channel boosting to reduce channel-to-floating gate coupling in memory
KR101697271B1 (ko) 감소된 개수의 검증 동작들을 이용한 비휘발성 메모리의 프로그래밍
US8051240B2 (en) Compensating non-volatile storage using different pass voltages during program-verify and read
US7995394B2 (en) Program voltage compensation with word line bias change to suppress charge trapping in memory
US8310870B2 (en) Natural threshold voltage distribution compaction in non-volatile memory
US8054691B2 (en) Detecting the completion of programming for non-volatile storage
US7839687B2 (en) Multi-pass programming for memory using word line coupling
US8395936B2 (en) Using channel-to-channel coupling to compensate floating gate-to-floating gate coupling in programming of non-volatile memory
US20150092496A1 (en) Dynamic Bit Line Bias For Programming Non-Volatile Memory
USRE45544E1 (en) Saw-shaped multi-pulse programming for program noise reduction in memory
US20080013374A1 (en) Method for programming of multi-state non-volatile memory using smart verify
KR101314306B1 (ko) 스마트 검증을 이용한 다중 상태 비휘발성 메모리프로그래밍 방법
US20070097747A1 (en) Apparatus for programming of multi-state non-volatile memory using smart verify
US7440327B1 (en) Non-volatile storage with reduced power consumption during read operations
US20120081963A1 (en) Multi-step channel boosting to reduce channel to floating gate coupling in memory
WO2014046887A1 (en) Block and page level bad bit line and bits screening method for non-volatile memory

Legal Events

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