KR20170031195A - 데이터 상태마다 단일 프로그램 펄스를 사용한 메모리 재프로그래밍 - Google Patents

데이터 상태마다 단일 프로그램 펄스를 사용한 메모리 재프로그래밍 Download PDF

Info

Publication number
KR20170031195A
KR20170031195A KR1020177003824A KR20177003824A KR20170031195A KR 20170031195 A KR20170031195 A KR 20170031195A KR 1020177003824 A KR1020177003824 A KR 1020177003824A KR 20177003824 A KR20177003824 A KR 20177003824A KR 20170031195 A KR20170031195 A KR 20170031195A
Authority
KR
South Korea
Prior art keywords
reprogramming
memory cells
memory
programming
cells
Prior art date
Application number
KR1020177003824A
Other languages
English (en)
Other versions
KR101903580B1 (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 KR20170031195A publication Critical patent/KR20170031195A/ko
Application granted granted Critical
Publication of KR101903580B1 publication Critical patent/KR101903580B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • H01L27/1157
    • H01L27/11582
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/20EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels
    • H10B43/23EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels
    • H10B43/27EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels the channels comprising vertical portions, e.g. U-shaped channels
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/30EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region
    • H10B43/35EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region with cell select transistors, e.g. NAND
    • 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)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

문턱 전압 분포에서의 하향천이를 야기하는 디트래핑의 효과들을 감소시키면서 메모리 셀들을 프로그래밍하는 기법들이 제공된다. 디트래핑은 3D 적층형 비휘발성 메모리 디바이스에서와 같은 전하 트래핑 메모리 셀들에 대해 특히 문제가 된다. 전체 프로그래밍 패스의 완료 이후에, 재프로그래밍이 정당화되는 셀들을 식별하기 위해 검증 테스트가 수행된다. 재프로그래밍은 각각의 목표 데이터 상태에 대한 단일 프로그램 펄스를 포함하고, 여기서 각각의 프로그램 펄스는 전체 프로그래밍 패스에서보다 더 길다. 펄스 폭들이 전체 프로그래밍 패스로부터의 프로그래밍 속도 또는 문턱 전압 분포 폭과 같은 인자들에 기초하여 최적화될 수 있다.

Description

데이터 상태마다 단일 프로그램 펄스를 사용한 메모리 재프로그래밍{REPROGRAMMING MEMORY WITH SINGLE PROGRAM PULSE PER DATA STATE}
본 기술은 메모리 셀들을 프로그래밍하는 기법들에 관한 것이다.
반도체 메모리는 다양한 전자 디바이스들에서 사용하기 위해 점점 더 보편화되었다. 예를 들어, 비휘발성 반도체 메모리는 셀룰러 전화, 디지털 카메라, PDA(personal digital assistant), 모바일 컴퓨팅 디바이스, 비모바일 컴퓨팅 디바이스 및 다른 디바이스에서 사용된다. 플래시 메모리는 가장 보편화된 유형의 비휘발성 반도체 메모리들 중에 속한다. 플래시 메모리의 경우, 메모리 어레이 전체의 내용이 한 번에 소거될 수 있다.
예를 들어, 2차원(2D) NAND 메모리는 부유 게이트가 반도체 기판에서 채널 영역 위쪽에 배치되고 그로부터 절연되어 있는 한 유형의 플래시 메모리이다. 부유 게이트는 소스 영역과 드레인 영역 사이에 배치된다. 제어 게이트는 부유 게이트 위에 제공되고 그로부터 절연되어 있다. 이와 같이 형성된 트랜지스터의 문턱 전압(Vth)은 부유 게이트 상에 유지되는 전하의 양에 의해 제어된다. 즉, 트랜지스터의 소스와 드레인 사이의 도통을 가능하게 하기 위해 트랜지스터가 턴온되기 전에 제어 게이트에 인가되어야만 하는 전압의 최소량은 부유 게이트 상의 전하의 레벨에 의해 제어된다.
더욱이, 때때로 BiCS(Bit Cost Scalable) 아키텍처라고 지칭되는 3차원(3D) 적층형(stacked) 메모리 구조물을 사용하는 초고밀도(ultra high density) 저장 디바이스들이 제안되었다. 예를 들어, 3차원(3D) NAND 적층형 메모리 디바이스는 교대로 있는 전도성 층과 유전체 층의 스택(stack)으로 형성될 수 있다. 많은 메모리 층들을 동시에 정의하기 위해 층들에 메모리 홀(memory hole)이 형성된다. 전하 트래핑 층(charge-trapping layer)을 비롯한 재료들로 메모리 홀을 충전시키는 것에 의해 NAND 스트링이 이어서 형성된다. 직선형 NAND 스트링은 하나의 메모리 홀에 연장되는 반면, 파이프 형상의 또는 U자 형상의 NAND 스트링(P-BiCS)은, 2개의 메모리 홀들에 연장되고 하부 백 게이트(bottom back gate)에 의해 결합되는, 한 쌍의 수직 메모리 셀 컬럼(vertical column of memory cells)들을 포함한다. 메모리 셀들의 제어 게이트들은 전도성 층들에 의해 제공된다.
그렇지만, 이러한 메모리 디바이스들을 작동시키는 데 다양한 과제들이 제시된다.
유사한 도면 부호가 부기된 요소들은 상이한 도면들에서의 공통의 컴포넌트들을 지칭한다.
도 1a는 3D 적층형 비휘발성 메모리 디바이스의 사시도.
도 1b는 도 1a에 도시된 것과 같은 3D 적층형 비휘발성 메모리 디바이스 또는 도 5a에 도시된 것과 같은 2D 메모리 디바이스를 제공하기 위해 사용될 수 있는 메모리 디바이스의 블록도.
도 1c는 도 1b의 감지 블록(SB0)의 일 실시예를 도시한 블록도.
도 2a는 도 1a에서의 BLK0의 예시적인 구현으로서, 예시적인 SGD 라인 서브셋들(SGDL-SB0 및 SGDL-SB1)을 나타내는, 블록(200)의 U자 형상의 NAND 실시예의 상면도.
도 2ba은 예시적인 워드 라인 서브셋들(WLL23D-SB 및 WLL23S-SB)과 예시적인 비트 라인 서브셋들(BL-SB0 및 BL-SB1)을 나타내는, 도 2a의 블록(200)을 도시한 도면.
도 2bb는 예시적인 NAND 스트링 세트들(210 내지 215)을 나타내는, 도 2a의 블록(200)을 도시한 도면.
도 2c는 라인(220)을 따른 도 2a의 블록(200)의 부분(209)의 단면도를 나타내는 스택(230)의 일 실시예를 도시한 도면.
도 3a는 예시적인 메모리 셀들(MC23D, MC22D, MC23S 및 MC22S)을 나타내는, 도 2c의 컬럼(C0)의 영역(236)의 확대도.
도 3b는 도 3a의 라인(302)을 따른 단면도.
도 3c는 3D 적층형 비휘발성 메모리 디바이스에서의 회로(301)의 일 실시예를 도시한 도면.
도 4a는 예시적인 SGD 라인 서브셋들(SGDL-SB0A 및 SGDL-SB1A)을 나타내는, 도 1a의 블록(BLK0)의 직선형 NAND 스트링 실시예(블록(480))의 상면도.
도 4ba은 예시적인 WL 라인 서브셋(WLL23-SB)과 예시적인 비트 라인 서브셋들(BL-SB0A 및 BL-SB1A)을 나타내는, 도 4a의 블록(BLK0)을 도시한 도면.
도 4bb는 예시적인 NAND 스트링 세트들(216 내지 219, 221 및 222)을 나타내는, 도 4a의 블록(BLK0)을 도시한 도면.
도 4c는 라인(486)을 따른 도 4a의 블록(480)의 부분(488)의 단면도.
도 5a는 도 1b의 메모리 구조물(126)에서의 메모리 셀들의 다른 예로서 편평한 제어 게이트와 전하 트래핑 영역들을 포함하는 메모리 셀들의 단면도.
도 5b는 메모리 디바이스 내의 메모리 셀들을 프로그래밍하는 프로세스를 도시한 도면.
도 5c는 도 5b에서의 단계들(530 및 531)에 따른 프로그래밍 패스(programming pass)의 예시적인 구현을 도시한 도면.
도 5d는, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 동시에 재프로그래밍되는, 도 5b에서의 단계들(532 및 532a)에 따른 재프로그래밍의 예시적인 구현을 도시한 도면.
도 5e는, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 개별적으로 프로그래밍되는, 도 5b에서의 단계들(532 및 532a)에 따른 재프로그래밍의 예시적인 구현을 도시한 도면.
도 5f는 도 5b에서의 단계들(533 및 533a)에 따라, 목표 데이터 상태마다 하나의 프로그램 펄스를 사용하는 재프로그래밍의 예시적인 구현을 도시한 도면.
도 6a 및 도 6b는 도 5c의 프로그래밍 패스의 일 예로서 4개의 데이터 상태들을 갖는 1-패스 프로그래밍 동작을 도시한 도면.
도 7a 내지 도 7c는 도 5c의 프로그래밍 패스의 다른 예로서 4개의 데이터 상태들을 갖는 2-패스 프로그래밍 동작을 도시한 도면.
도 7a는 프로그래밍 동작의 시작시에서의 메모리 셀들의 Vth 분포를 도시한 도면.
도 7b는 제1 프로그래밍 패스에서 하위 페이지(lower page)의 데이터의 프로그래밍 이후의 메모리 셀들의 Vth 분포를 도시한 도면.
도 7c는 제2 프로그래밍 패스에서 상위 페이지(upper page)의 데이터의 프로그래밍 이후의 메모리 셀들의 Vth 분포를 도시한 도면.
도 8a 내지 도 8c는 도 5c의 프로그래밍 패스의 다른 예로서 8개의 데이터 상태들을 갖는 3-패스 프로그래밍 동작을 도시한 도면.
도 8a는 8개의 데이터 상태들을 갖는 예시적인 3-패스 프로그래밍 동작의 시작 문턱값 분포를 도시한 도면.
도 8b는 도 8a의 예시적인 3-패스 프로그래밍 동작의 제1 패스 이후에 얻어지는 문턱값 분포를 도시한 도면.
도 8c는 도 8a의 예시적인 3-패스 프로그래밍 동작의 제2 패스 이후에 얻어지는 문턱값 분포를 도시한 도면.
도 8d는 도 8a의 예시적인 3-패스 프로그래밍 동작의 제3 패스 이후에 얻어지는 문턱값 분포를 도시한 도면.
도 9a 및 도 9b는 도 5c의 프로그래밍 패스의 다른 예로서 8개의 데이터 상태들을 갖는 1-패스 프로그래밍 동작을 도시한 도면.
도 9a는 8개의 데이터 상태들을 갖는 예시적인 1-패스 프로그래밍 동작의 시작 문턱값 분포를 도시한 도면.
도 9b는 도 9a의 1-패스 프로그래밍 동작의 최종 문턱값 분포를 도시한 도면.
도 10a는 4개의 데이터 상태들을 갖는 메모리 디바이스에서, 디트래핑(de-trapping) 및 차후의 재프로그래밍으로 인한 문턱 전압 분포의 변화들을 도시한 도면.
도 10b는 목표 데이터 상태들의 Vth 분포들의 폭들을 결정하는 데 사용되는 검증 전압들을 도시한 도면.
도 11a는 도 5c의 1-패스 프로그래밍의 일 예에서의 일련의 프로그램-검증 반복들을 도시한 도면.
도 11b는 도 11a에서의 프로그램 전압 파형(1101)의 일 예를 도시한 도면.
도 11c는 도 5c의 단계(545b)에 따라, 프로그래밍 속도를 검출하는 일 예를 도시한 도면.
도 12a는 도 5d에 따라, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 동시에 재프로그래밍되는, 재프로그래밍 패스에서의 일련의 프로그램-검증 반복들을 도시한 도면.
도 12b는 도 5e에 따라, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 개별적으로 재프로그래밍되는, 재프로그래밍 패스에서의 일련의 프로그램-검증 반복들을 도시한 도면.
도 12c는 도 5e에 따라 그리고 도 12b에 대한 대안으로서, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 개별적으로 재프로그래밍되는, 재프로그래밍 패스의 다른 예에서의 일련의 프로그램-검증 반복들을 도시한 도면.
도 12d는 도 5e의 단계(564b)에 따라, 재프로그래밍 패스에서의 프로그래밍 속도를 검출하는 일 예를 도시한 도면.
도 13a는 도 5b의 단계들(533 및 533a)과 도 5f에 따라, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 개별적인 단일 프로그램 펄스로 재프로그래밍되고 각각의 프로그램 펄스가 공통의 크기를 가지는, 재프로그래밍 패스의 다른 예에서의 일련의 프로그램-검증 반복들을 도시한 도면.
도 13b는 도 5b의 단계들(533 및 533a)과 도 5f에 따라, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 개별적인 단일 프로그램 펄스로 재프로그래밍되고 각각의 프로그램 펄스가 상이한 크기를 가지는, 재프로그래밍 패스의 다른 예에서의 일련의 프로그램-검증 반복들을 도시한 도면.
도 14a 내지 도 14f는 상이한 프로그램 펄스 크기들에 대해, 하나의 프로그래밍 패스 이후의 그리고 1-펄스 재프로그램 이후의 Vth 분포들을 도시한 도면.
도 15a 내지 도 15f는 상이한 프로그램 펄스 폭들에 대해, 하나의 프로그래밍 패스 이후의 그리고 1-펄스 재프로그램 이후의 Vth 분포들을 도시한 도면.
도 16a는 도 14a 내지 도 14f에 따라, 하나의 프로그래밍 패스 이후의 Vth 폭(라인(1600)), 및 1-펄스 재프로그램 이후에 상이한 프로그램 펄스 크기들로 달성되는 Vth 폭들(라인(1601))을 나타내는, Vth 폭 대 프로그램 펄스 크기를 도시한 도면.
도 16b는 도 15a 내지 도 15f에 따라, 하나의 프로그래밍 패스 이후의 Vth 폭(라인(1610)), 및 1-펄스 재프로그램 이후에 상이한 프로그램 펄스 폭들로 달성되는 Vth 폭들(라인(1611))을 나타내는, Vth 폭 대 프로그램 펄스 폭을 도시한 도면.
도 16c는 하나의 프로그래밍 패스 이후의 Vth 폭(라인(1620)), 및 증분 스텝 펄스 재프로그래밍 패스 이후에 상이한 프로그램 펄스 폭들로 달성되는 Vth 폭들(라인들(1621 내지 1624))을 나타내는, 상이한 프로그램 펄스 폭 값들에 대한 Vth 폭 대 초기 프로그램 펄스 크기를 도시한 도면.
도 16d는 예시적인 프로그래밍 패스(라인(1640)) 및 동일한 폭의 프로그램 펄스들을 사용하는 연관된 전체 재프로그래밍(라인(1641)) 이후의 그리고 다른 예시적인 프로그래밍 패스(라인(1642)) 및 보다 긴 폭의 프로그램 펄스를 사용하는 연관된 데이터 상태당 1-펄스 재프로그래밍(라인(1643)) 이후의 로그 스케일 폭에서의 셀들의 수 대 Vth를 도시한 도면.
도 16e는 하나의 프로그래밍 패스(라인(1650)) 이후의 그리고 증분 스텝 펄스 재프로그래밍 패스(라인(1651)) 이후의 로그 스케일 폭에서의 셀들의 수 대 Vth를 도시한 도면으로서, 여기서 양 경우에 동일한 펄스 폭이 사용됨.
도 16f는 하나의 프로그래밍 패스(라인(1660)) 이후의 그리고 증분 스텝 펄스 재프로그래밍 패스(라인(1661)) 이후의 로그 스케일 폭에서의 셀들의 수 대 Vth를 도시한 도면으로서, 여기서 증분 스텝 펄스 재프로그래밍 패스에 대해 보다 긴 펄스 폭이 사용됨.
도 17a는 모든 데이터 상태들의 공통의 또는 개별적인 재프로그래밍에 의한 증분 스텝 펄스 재프로그래밍에 대한, 프로그램 펄스 폭(W)(라인(1700)) 대 프로그래밍 속도 또는 재프로그래밍되는 셀들의 수의 플롯을 도시한 도면.
도 17b는 각각의 데이터 상태의 개별적인 재프로그래밍에 의한 증분 스텝 펄스 재프로그래밍 또는 데이터 상태별 1-펄스 재프로그래밍에 대한, 프로그램 펄스 폭(W) 대 프로그래밍 속도 또는 재프로그래밍되는 셀들의 수의 플롯을 도시한 도면.
도 17c는 재프로그래밍에서의 프로그램 펄스 크기(Vpgmt) 또는 스텝 크기(dVpgm) 대 프로그램 펄스 폭(W)의 플롯을 도시한 도면.
도 17d는 도 5c의 단계(545b) 또는 도 5e의 단계(564b)에 따라, 프로그래밍 속도 대 다양한 프로그래밍 메트릭들의 플롯을 도시한 도면.
도 18a는 소거된 메모리 셀에 대한 래치 세트에서의 비트 조합을 도시한 도면.
도 18b는 A-상태 메모리 셀에 대한 래치 세트를 도시한 도면으로서, 여기서 하나의 비트 조합 (010)은 셀이 프로그래밍 또는 재프로그래밍되어야 한다는 것을 나타내고, 다른 비트 조합 (011)은, 하나의 프로그래밍 패스 동안 그리고/또는 재프로그래밍 동안, 셀이 검증 테스트를 통과했다는 것을 나타냄.
도 18c는 B-상태 메모리 셀에 대한 래치 세트를 도시한 도면으로서, 여기서 하나의 비트 조합 (000)은 셀이 프로그래밍 또는 재프로그래밍되어야 한다는 것을 나타내고, 다른 비트 조합 (001)은, 하나의 프로그래밍 패스 동안 그리고/또는 재프로그래밍 동안, 셀이 검증 테스트를 통과했다는 것을 나타냄.
도 18d는 C-상태 메모리 셀에 대한 래치 세트를 도시한 도면으로서, 여기서 하나의 비트 조합 (100)은 셀이 프로그래밍 또는 재프로그래밍되어야 한다는 것을 나타내고, 다른 비트 조합 (101)은, 하나의 프로그래밍 패스 동안 그리고/또는 재프로그래밍 동안, 셀이 검증 테스트를 통과했다는 것을 나타냄.
도 19는 예시적인 메모리 셀 세트를 도시한 도면.
전하 디트래핑(charge detrapping), 예컨대, 메모리 셀의 전하 트래핑 층으로부터의 전하의 손실을 겪는 메모리 셀들을 프로그래밍하기 위한 기법들이 제공된다.
전하 트래핑 메모리 셀들은 전하를 SiN 또는 다른 질화물과 같은 전하 트래핑 층에 저장한다. 예를 들어, 산화물-질화물-산화물(O-N-O) 구성이 사용될 수 있다. 2D 및 3D 메모리 디바이스들에서 전하 트래핑 메모리 셀들이 사용될 수 있다. 그렇지만, 이러한 메모리 셀들에서 단기 데이터 유지 손실(data-retention loss)이 상당할 수 있다. 이 손실은 메모리 셀들의 터널 ONO 층들에 있는 얕은 트랩(shallow trap)들로부터의 전하 디트래핑에 의해 야기되고, 프로그래밍 전압이 인가된 후에 아주 빠르게 일어날 수 있다. 프로그래밍 전압이 인가된 후에 그리고 검증 동작이 수행되기 전에 어느 정도의 디트래핑이 일어날 수 있다. 이 경우에, 메모리 셀은 검증 테스트를 통과하기 위해 하나 이상의 부가 프로그램 펄스들을 필요로 할 것이다. 그렇지만, 검증 동작이 수행된 후에 상당한 양의 디트래핑이 일어난다. 이 경우에, 메모리 셀은 검증 테스트를 통과할 수 있고 상당한 디트래핑이 일어나기 전에는 추가의 프로그래밍을 하지 못하게 잠금될 수 있다. 그 결과, 메모리 셀이 나중에 읽혀질 때 그의 문턱 전압이 상당히 더 낮을 것이다. 이것은 메모리 셀 세트의 문턱 전압들의 전체적인 하향천이(downshift)를 가져오고, 문턱 전압(Vth) 분포를 넓어지게 한다. 예를 들어, 각각의 데이터 상태에 대한 Vth 분포의 하부 테일(lower tail)이 검증 전압보다 약 0.5 내지 0.8 V만큼 아래로 떨어질 수 있다. 전하 트래핑 메모리 셀들은 부유 게이트 메모리 셀들과 비교하여 디트래핑에 특히 취약하다.
하나의 접근법은 2개의 전체 프로그래밍 패스(full programming pass)들에서 메모리 셀들을 동일한 검증 전압들로 프로그래밍하는 것이다. 이 경우에, 제1 프로그래밍 패스 동안 빠른 전하 손실을 겪은 메모리 셀들은 프로그래밍될 기회를 한번 더 갖는다. 이 접근법은 Vth 분포가 보다 좁아지게 되도록 Vth 분포의 하부 테일을 밀어올린다. 그렇지만, 프로그래밍 시간이 거의 두배로 된다.
본원에 제공되는 기법들은 디트래핑의 효과들을 감소시키고 그로써, 프로그래밍 시간의 비교적 작은 증가로, Vth 분포의 하향천이 및 넓어짐을 감소시킨다. 일 양태에서, 하나의 프로그래밍 패스는 그것이 완료될 때까지 수행된다. 예를 들어, 프로그래밍되고 있는 모든 또는 대부분의 메모리 셀들이 검증 테스트를 통과했을 때 - 이는 그들의 Vth가 각자의 목표 데이터 상태의 검증 전압을 초과했다는 것을 나타냄 - 패스가 완료될 수 있다. 그 후에, 디트래핑 평가 프로세스에서, 재프로그래밍이 정당화되는 메모리 셀들을 식별하기 위해 추가의 검증 테스트가 수행된다. 이들은 결함 있는 메모리 셀들이다. 예를 들어, 재프로그래밍을 위해 디트래핑 평가 프로세스에서 메모리 셀들의 목표 데이터 상태의 검증 테스트를 통과하지 못하는 메모리 셀들이 식별될 수 있다. 결함 있는 메모리 셀들은 이전에 하나의 프로그래밍 패스에서 검증 테스트를 통과했지만 그들의 Vth를 저하시킨 디트래핑을 그 후에 경험한 메모리 셀들을 포함할 수 있다. 결함 있는 메모리 셀들은 이전에 하나의 프로그래밍 패스에서 검증 테스트를 통과하지 못했고 또한 재프로그래밍될 수 있는 메모리 셀들을 포함할 수 있다. 이들은 일반적으로 메모리 셀들을 프로그래밍하기가 아주 어렵고 고장 비트(fail bit)라고 지칭된다. 목표 데이터 상태에 대해, 재프로그래밍이 정당화되는지를 식별해주는 검증 테스트가 하나의 프로그래밍 패스 동안의 검증 테스트와 동일하거나 상이할 수 있다.
재프로그래밍은 하나의 프로그래밍 패스에서보다 더 적은 프로그램-검증 반복들로 Vth 분포를 치밀화(tighten)하기 위해 각각의 프로그램 펄스 폭이 최적화되어 있는 다수의 프로그램-검증 반복들을 포함하는 재프로그래밍 패스(증분 스텝 펄스 재프로그래밍)일 수 있다. 그 결과, 재프로그래밍은 비교적 작은 프로그래밍 시간 증가를 가져온다. 하나의 접근법에서, 프로그램 펄스들의 단일의 계단상 연속체(staircase progression)는 결함 있는 메모리 셀들을 재프로그래밍하는 데 사용되고, 여기서 이 단일의 계단상 연속체는, 모든 목표 데이터 상태들에 걸쳐, 초기 크기, 스텝 크기 및 프로그램 펄스 폭의 면에서 최적화된다. 다른 접근법에서, 개별적인 프로그램-검증 반복 세트가 각각의 목표 데이터 상태에 대해 사용된다. 각각의 개별적인 프로그램-검증 반복 세트 내에서, 프로그램 펄스들의 각자의 계단상 연속체는 결함 있는 메모리 셀들을 프로그래밍하는 데 사용되고, 여기서 이 계단상 연속체는, 각자의 목표 데이터 상태에 대해, 초기 크기, 스텝 크기 및 프로그램 펄스 폭의 면에서 최적화된다. 관련된 양태에서, 프로그램-검증 반복 세트들 중 하나의 세트에서 검증 테스트를 통과하지 못한 메모리 셀은 프로그램-검증 반복 세트들 중 다른 세트의 프로그램-검증 반복의, 검증이 없는, 하나의 부가 프로그램 펄스에 의해 프로그래밍되도록 허용된다.
다른 양태에서, 프로그래밍 속도의 메트릭 또는 결함 있는 메모리 셀들의 수가 하나의 프로그래밍 패스에서 결정되고 재프로그래밍에서의 프로그램 펄스의 초기 크기, 스텝 크기 및 펄스 폭을 설정하는 데 사용될 수 있다.
다른 양태에서, 프로그래밍 속도의 메트릭 또는 결함 있는 메모리 셀들의 수가 재프로그래밍 패스에서 하나의 목표 데이터 상태에 대해 결정되고 재프로그래밍에서의 다른 목표 데이터 상태에 대한 프로그램 펄스의 초기 크기, 스텝 크기 및 펄스 폭을 설정하는 데 사용될 수 있다.
다른 양태에서, 재프로그래밍은 각각의 목표 데이터 상태에 대한 하나의 프로그램 펄스를 포함하고(목표 데이터 상태당 1-펄스 재프로그래밍), 여기서 프로그램 펄스 폭 및 크기는 각자의 목표 데이터 상태에 대한 Vth 분포를 치밀화하도록 최적화되고 어떤 검증 테스트도 수행되지 않는다. 이 재프로그래밍은 Vth 분포들을 상당히 좁아지게 하는 것을 여전히 달성하면서 아주 작은 프로그래밍 시간 증가를 가져온다.
재프로그래밍은 상부 테일(upper tail)을 증가시키는 일 없이 각각의 Vth 분포의 하부 테일을 상승시키는 것에 의해 Vth 분포들을 좁아지게 할 수 있다.
메모리 셀들과 연관된 래치들은 메모리 셀이 재프로그래밍되어야만 하는지를 표시하도록 구성될 수 있다.
앞서 언급된 기법들의 장점들은 디트래핑으로 인한 메모리 셀 세트의 Vth 분포의 하향천이 및 넓어짐을 감소시키는 것을 포함한다.
이하의 논의는 앞서 언급된 문제들을 해결하는 메모리 디바이스의 구조 그리고 관련된 프로그래밍 및 감지 기법들의 상세를 제공한다.
도 1a는 3D 적층형 비휘발성 메모리 디바이스의 사시도이다. 언급된 바와 같이, 전하 트래핑 메모리 디바이스의 일 예는 메모리 셀들이 3D 구조로 배열되어 있는 3D 메모리 디바이스이다.
메모리 디바이스(100)는 기판(101)을 포함한다. 기판 상에는 메모리 셀들의 예시적인 블록들(BLK0 및 BLK1)과 블록들에 의해 사용하기 위한 회로부를 갖는 주변 구역(104)이 있다. 기판(101)은 또한, 회로부의 신호들을 전달하는 전도성 경로들로 패터닝되는 하나 이상의 하부 금속 층들과 함께, 블록들 아래에 있는 회로부를 가지고 있을 수 있다. 블록들은 메모리 디바이스의 중간 영역(102)에 형성된다. 메모리 디바이스의 상부 영역(103)에는, 하나 이상의 상부 금속 층들이 회로부의 신호들을 전달하는 전도성 경로들로 패터닝된다. 각각의 블록은 메모리 셀들의 적층된 구역을 포함하고, 여기서 스택의 교대로 있는 레벨들은 워드 라인들을 나타낸다. 하나의 가능한 접근법에서, 각각의 블록은 반대쪽에 있는 계층화된 측면들(tiered side)들을 가지며, 전도성 경로들에의 연결들을 형성하기 위해 이 계층화된 측면들로부터 수직 콘택들이 위쪽으로 상부 금속 층까지 연장된다. 2개의 블록들이 일 예로서 도시되어 있지만, x-방향 및/또는 y-방향으로 연장되는, 부가 블록들이 사용될 수 있다.
하나의 가능한 접근법에서, x-방향에서의 평면의 길이는 워드 라인들까지의 신호 경로들이 하나 이상의 상부 금속 층들에서 연장되는 방향(워드 라인 또는 SGD 라인 방향)을 나타내고, y-방향에서의 평면의 폭은 비트 라인들까지의 신호 경로들이 하나 이상의 상부 금속 층들에서 연장되는 방향(비트 라인 방향)을 나타낸다. z-방향은 메모리 디바이스의 높이를 나타낸다.
도 1b는 도 1a에 도시된 것과 같은 3D 적층형 비휘발성 메모리 디바이스 또는 도 5a에 도시된 것과 같은 2D 메모리 디바이스를 제공하기 위해 사용될 수 있는 메모리 디바이스의 블록도이다. 메모리 디바이스(100)는 하나 이상의 메모리 다이(108)를 포함할 수 있다. 메모리 다이(108)는 (예컨대, 블록들(BLK0 및 BLK1)을 포함하는) 메모리 셀들의 메모리 구조물(126), 제어 회로부(110), 및 읽기/쓰기 회로들(128)을 포함한다. 메모리 구조물(126)은 로우 디코더(124)를 통해 워드 라인들에 의해 그리고 컬럼 디코더(132)를 통해 비트 라인들에 의해 주소지정가능하다. 읽기/쓰기 회로들(128)은 다수의 감지 블록들(SB0, SB1, SBn-1)(감지 회로부)을 포함하고 한 페이지의 메모리 셀들이 병렬로 읽혀지거나 프로그래밍될 수 있게 한다. 전형적으로, 제어기(122)는 하나 이상의 메모리 다이(108)와 동일한 메모리 디바이스(100)(예컨대, 이동식 저장 카드)에 포함된다. 커맨드들 및 데이터가 데이터 버스(120)를 통해 호스트와 제어기(122) 사이에서 그리고 라인들(118)을 통해 제어기와 하나 이상의 메모리 다이(108) 사이에서 전송된다.
메모리 구조물은 2D 또는 3D 어레이를 비롯한 하나 이상의 메모리 셀 어레이를 포함할 수 있다. 메모리 구조물은 다수의 메모리 레벨들이 중간 기판들을 사용함이 없이, 웨이퍼와 같은, 단일의 기판 위쪽에 형성되는(단일의 기판 내에 형성되지 않음) 모놀리식 3차원 메모리 어레이를 포함할 수 있다. 메모리 구조물은 실리콘 기판 위쪽에 배치된 활성 구역을 가지는 메모리 셀 어레이들의 하나 이상의 물리적 레벨들에 모놀리식 방식으로 형성되는 임의의 유형의 비휘발성 메모리를 포함할 수 있다. 메모리 구조물은, 연관된 회로부가 기판 위쪽에 있든 기판 내에 있든 간에, 메모리 셀들의 동작과 연관된 회로부를 가지는 비휘발성 메모리 디바이스에 있을 수 있다.
제어 회로부(110)는 메모리 구조물에 대해 메모리 동작들을 수행하기 위해 읽기/쓰기 회로들(128)과 협력하고, 상태 머신(112), 온-칩 주소 디코더(114), 및 전력 제어 모듈(116)을 포함한다. 상태 머신(112)은 메모리 동작들의 칩-레벨 제어를 제공한다. 온-칩 주소 디코더(114)는 호스트 또는 메모리 제어기에 의해 사용되는 것과 디코더들(124 및 132)에 의해 사용되는 하드웨어 주소 사이의 주소 인터페이스를 제공한다. 전력 제어 모듈(116)은 메모리 동작들 동안 워드 라인들과 비트 라인들에 제공되는 전력과 전압들을 제어한다. 이는 WLL들에 대한 구동기들, 드레인측 및 소스측 선택 게이트 구동기들(예컨대, 메모리 셀 스트링 - 예를 들어, NAND 스트링 등 - 의 드레인측 및 소스측 또는 단부를 지칭함) 및 소스 라인들을 포함할 수 있다. 감지 블록들은, 하나의 접근법에서, 비트 라인 구동기들을 포함할 수 있다.
일부 구현들에서, 컴포넌트들 중 일부가 결합될 수 있다. 다양한 설계들에서, 메모리 구조물(126) 이외의, 컴포넌트들 중 하나 이상은 (단독으로 또는 조합하여) 적어도 하나의 제어 회로로서 또는 제어 회로부로서 생각될 수 있다. 예를 들어, 제어 회로는 제어 회로부(110), 상태 머신(112), 디코더들(114/132), 전력 제어 모듈(116), 감지 블록들(SB0, 도 1c에서의 프로세서(192) 및 관리 회로(MC0)를 포함함), 읽기/쓰기 회로들(128), 및 제어기(122), 기타 중 임의의 것 또는 이들의 조합을 포함할 수 있다. 감지 블록(SB0)은 도 1c와 관련하여 추가로 논의된다.
다른 접근법에서, 비휘발성 메모리 시스템은 듀얼 로우/컬럼 디코더들 및 읽기/쓰기 회로들을 사용한다. 다양한 주변 회로들에 의한 메모리 구조물에의 액세스는 각각의 측면에서의 액세스 라인들 및 회로부의 밀도가 절반으로 감소되도록, 어레이의 양 측면에서, 대칭 방식으로 구현된다. 이와 같이, 로우 디코더가 2개의 로우 디코더들로 분할되고, 컬럼 디코더가 2개의 컬럼 디코더들로 분할된다. 이와 유사하게, 읽기/쓰기 회로들이 메모리 구조물(126)의 하부로부터 비트 라인들에 연결하는 읽기/쓰기 회로들과 메모리 구조물(126)의 상부로부터 비트 라인들에 연결하는 읽기/쓰기 회로들로 분할된다. 이러한 방식으로, 읽기/쓰기 모듈들의 밀도가 절반으로 감소된다.
NAND 플래시 메모리에 부가하여 다른 유형들의 비휘발성 메모리가 또한 사용될 수 있다.
반도체 메모리 디바이스들은 DRAM(dynamic random access memory) 또는 SRAM(static random access memory) 디바이스들과 같은 휘발성 메모리 디바이스들, ReRAM(resistive random access memory), EEPROM(electrically erasable programmable read only memory), 플래시 메모리(EEPROM의 서브셋으로 간주될 수도 있음), FRAM(ferroelectric random access memory), 및 MRAM(magnetoresistive random access memory)과 같은 비휘발성 메모리 디바이스들, 그리고 정보를 저장할 수 있는 다른 반도체 요소들을 포함한다. 각각의 유형의 메모리 디바이스는 상이한 구성들을 가질 수 있다. 예를 들어, 플래시 메모리 디바이스들은 NAND 또는 NOR 구성으로 구성될 수 있다.
메모리 디바이스들은, 임의의 조합으로, 수동 및/또는 능동 요소들로 형성될 수 있다. 비제한적인 예로서, 수동 반도체 메모리 요소들은, 일부 실시예에서, 안티퓨즈(anti-fuse), 상변화 재료 등과 같은, 저항률 스위칭 저장 요소(resistivity switching storage element) 그리고, 임의로, 다이오드 또는 트랜지스터와 같은, 조정 요소(steering element)를 포함하는, ReRAM 디바이스 요소들을 포함한다. 게다가 비제한적인 예로서, 능동 반도체 메모리 요소들은, 일부 실시예에서, 부유 게이트, 전도성 나노입자들, 또는 전하 저장 유전체 재료와 같은 전하 저장 영역을 포함하는 요소들을 포함하는, EEPROM 및 플래시 메모리 디바이스 요소들을 포함한다.
다수의 메모리 요소들은 직렬로 연결되도록 또는 각각의 요소가 개별적으로 액세스가능하도록 구성될 수 있다. 비제한적인 예로서, NAND 구성으로 된 플래시 메모리 디바이스들(NAND 메모리)은 전형적으로 직렬로 연결된 메모리 요소들을 포함한다. NAND 메모리 어레이는 어레이가 다수의 메모리 스트링(string of memory)들로 이루어지도록 구성될 수 있고, 여기서 스트링은 단일의 비트 라인(bit line)을 공유하고 그룹으로서 액세스되는 다수의 메모리 요소들로 이루어져 있다. 대안적으로, 메모리 요소들은 각각의 요소가 개별적으로 액세스가능하도록 구성될 수 있다 - 예컨대, NOR 메모리 어레이 -. NAND 및 NOR 메모리 구성들은 예시적인 것이고, 메모리 요소들이 다른 방식으로 구성될 수 있다.
기판 내에 및/또는 그 위에 위치된 반도체 메모리 요소들이, 2차원 메모리 구조물 또는 3차원 메모리 구조물과 같이, 2차원 또는 3차원으로 배열될 수 있다.
2차원 메모리 구조물에서, 반도체 메모리 요소들은 단일의 평면 또는 단일의 메모리 디바이스 레벨에 배열된다. 전형적으로, 2차원 메모리 구조물에서, 메모리 요소들은 메모리 요소들을 지지하는 기판의 주 표면에 실질적으로 평행하게 연장되는 평면에(예컨대, x-y 방향 평면에) 배열된다. 기판은 웨이퍼일 수 있거나 - 웨이퍼 위에 또는 웨이퍼 내에 메모리 요소들의 층이 형성됨 -, 메모리 요소들이 형성된 후에 메모리 요소들에 부착되는 캐리어 기판(carrier substrate)일 수 있다. 비제한적인 예로서, 기판은 실리콘과 같은 반도체를 포함할 수 있다.
메모리 요소들은 단일의 메모리 디바이스 레벨에 정렬된 어레이(ordered array)로 - 예컨대, 복수의 로우들 및/또는 컬럼들로 - 배열될 수 있다. 그렇지만, 메모리 요소들은 비규칙적 또는 비직교적 구성들로 배열될 수 있다. 메모리 요소들 각각은 2개 이상의 전극들 또는 콘택 라인들(contact line) - 비트 라인들 및 워드 라인들 등 - 을 가질 수 있다.
3차원 메모리 어레이는 메모리 요소들이 다수의 평면들 또는 다수의 메모리 디바이스 레벨들을 차지함으로써, 구조물을 3차원으로(즉, x, y 및 z 방향으로, 여기서 z 방향은 기판의 주 표면에 실질적으로 수직이고 x 방향 및 y 방향은 그에 실질적으로 평행함) 형성하도록 배열된다.
비제한적인 예로서, 3차원 메모리 구조물은 다수의 2차원 메모리 디바이스 레벨들의 스택으로서 수직으로 배열될 수 있다. 다른 비제한적인 예로서, 3차원 메모리 어레이는 다수의 수직 컬럼들(예컨대, 기판의 주 표면에 실질적으로 수직으로, 즉 y 방향으로 연장되는 컬럼들) - 각각의 컬럼은 다수의 메모리 요소들을 가짐 - 로서 배열될 수 있다. 컬럼들이 2차원 구성으로, 예컨대, x-y 평면에 배열될 수 있고, 그 결과 다수의 수직으로 적층된 메모리 평면들 상에 요소들을 갖는 메모리 요소들의 3차원 배열이 얻어진다. 3차원으로 된 메모리 요소들의 다른 구성들이 또한 3차원 메모리 어레이를 구성할 수 있다.
비제한적인 예로서, 3차원 NAND 메모리 어레이에서, 메모리 요소들이 단일의 수평(예컨대, x-y) 메모리 디바이스 레벨 내에 NAND 스트링을 형성하기 위해 서로 결합될 수 있다. 대안적으로, 메모리 요소들이 다수의 수평 메모리 디바이스 레벨들에 걸쳐 횡단하는 수직 NAND 스트링을 형성하기 위해 서로 결합될 수 있다. 일부 NAND 스트링들은 단일의 메모리 레벨에 있는 메모리 요소들을 포함하는 반면 다른 스트링들은 다수의 메모리 레벨들을 통해 걸쳐 있는 메모리 요소들을 포함하는 다른 3차원 구성들이 생각될 수 있다. 3차원 메모리 어레이들이 또한 NOR 구성으로 그리고 ReRAM 구성으로 설계될 수 있다.
전형적으로, 모놀리식 3차원 메모리 어레이에서, 하나 이상의 메모리 디바이스 레벨들이 단일의 기판 위쪽에 형성된다. 임의로, 모놀리식 3차원 메모리 어레이는 또한 적어도 부분적으로 단일의 기판 내에 하나 이상의 메모리 층들을 가질 수 있다. 비제한적인 예로서, 기판은 실리콘과 같은 반도체를 포함할 수 있다. 모놀리식 3차원 어레이에서, 어레이의 각각의 메모리 디바이스 레벨을 구성하는 층들은 어레이의 아래에 있는 메모리 디바이스 레벨들의 층들 상에 형성된다. 그렇지만, 모놀리식 3차원 메모리 어레이의 인접한 메모리 디바이스 레벨들의 층들은 공유되거나 메모리 디바이스 레벨들 사이에 중간 층들을 가질 수 있다.
이어서 다시 말하지만, 2차원 어레이들이 개별적으로 형성된 다음에, 다수의 메모리 층들을 가지는 비모놀리식 메모리 디바이스를 형성하기 위해 하나로 패키징될 수 있다. 예를 들어, 메모리 레벨들을 개별 기판들 상에 형성하고 이어서 메모리 레벨들을 서로의 위에 적층시키는 것에 의해 비모놀리식 적층형 메모리들이 구성될 수 있다. 기판들이 적층 이전에 박형화되거나 메모리 디바이스 레벨들로부터 제거될 수 있지만, 메모리 디바이스 레벨들이 처음에 개별 기판들 위에 형성되기 때문에, 그 결과 얻어진 메모리 어레이들은 모놀리식 3차원 메모리 어레이들이 아니다. 게다가, 적층형 칩 메모리 디바이스를 형성하기 위해, 다수의 2차원 메모리 어레이들 또는 3차원 메모리 어레이들(모놀리식 또는 비모놀리식)이 개별 칩들 상에 형성되고 이어서 하나로 패키징될 수 있다.
메모리 요소들의 동작을 위해 그리고 메모리 요소들과의 통신을 위해 연관된 회로부가 전형적으로 필요하게 된다. 비제한적인 예로서, 메모리 디바이스들은 프로그래밍 및 읽기와 같은 기능들을 달성하기 위해 메모리 요소들을 제어하고 구동하는 데 사용되는 회로부를 가질 수 있다. 이 연관된 회로부는 메모리 요소들과 동일한 기판 상에 그리고/또는 별개의 기판 상에 있을 수 있다. 예를 들어, 메모리 읽기-쓰기 동작들을 위한 제어기는 별개의 제어기 칩 상에 그리고/또는 메모리 요소들과 동일한 기판 상에 위치될 수 있다.
본 기술분야의 통상의 기술자는 본 기술이 기술된 예시적인 2차원 및 3차원 구조물들로 제한되지 않고, 본원에 기술되는 바와 같이 그리고 본 기술분야의 통상의 기술자에 의해 이해되는 바와 같이 본 기술의 사상 및 범주 내의 모든 관련 메모리 구조물들을 포함한다는 것을 알 것이다.
도 1c는 도 1b의 감지 블록(SB0)의 일 실시예를 도시한 블록도이다. 감지 블록(SB0)은, 감지 모듈(예컨대, SM0) 또는 감지 증폭기라고 지칭되는, 하나 이상의 코어 부분들과, 관리 회로(예컨대, MC0)라고 지칭되는, 공통 부분으로 파티셔닝된다. 일 실시예에서, 각각의 비트 라인에 대한 별개의 감지 모듈과, SM0, SM1, SM2 및 SM3과 같은, 일단의 감지 모듈들에 대한 하나의 공통 관리 회로가 있다. 그룹 내의 감지 모듈들 각각은 연관된 관리 회로와 데이터 버스(172)를 통해 통신한다. 이와 같이, 메모리 셀 세트의 감지 모듈들과 통신하는 하나 이상의 관리 회로들이 있다.
각각의 감지 모듈(SM0, SM1, SM2 및 SM3)은 연결된 비트 라인(각각, BL0, BL1, BL2 및 BL3)에서의 도통 전류(conduction current)가 미리 결정된 문턱 전압(검증 전압) 초과 또는 미만인지를 결정하는 것에 의해 감지를 수행하는 감지 회로부(각각, SC0, SC1, SC2 및 SC3)를 포함한다. 각각의 감지 모듈(SM0, SM1, SM2 및 SM3)은 또한 연결된 비트 라인 상에서의 전압 조건을 설정하는 데 사용되는 비트 라인 래치(각각, BLL0, BLL1, BLL2 및 BLL3)를 포함한다. 예를 들어, 프로그래밍 전압 동안, 비트 라인 래치에 래치된 미리 결정된 상태의 결과에 따라, 연결된 비트 라인이 잠금 상태(lockout state)(예컨대, 1.5 내지 3 V), 저속 프로그래밍 상태(slow programming state)(예컨대, 0.5 내지 1 V) 또는 정상 프로그래밍 상태(normal programming state)(예컨대, 0 V)로 풀링될 것이다.
관리 회로(MC0)는 프로세서(192), 4개의 예시적인 데이터 래치 세트들(194, 195, 196 및 197) 및 데이터 래치 세트들과 데이터 버스(120) 사이에 결합된 I/O 인터페이스(198)를 포함한다. 하나의 데이터 래치 세트가 각각의 감지 모듈을 위해 제공될 수 있고, LDL, UDL 및 VDL로 나타내어진 데이터 래치들을 포함할 수 있다. LDL은, 각각의 메모리 셀에 2 비트의 데이터를 저장하는 메모리에, 하위 페이지(LP)의 쓰기 데이터에 대한 비트를 저장하고, UDL은, 각각의 메모리 셀에 2 비트의 데이터를 저장하는 메모리에, 상위 페이지(UP)의 쓰기 데이터에 대한 비트를 저장한다. VDL은 검증 테스트를 통과한 메모리 셀을 식별해주는 검증 데이터 비트를 저장한다.
부가의 데이터 래치들이 또한 사용될 수 있을 것이다. 예를 들어, 메모리 셀당 3-비트 구현에서, 하나의 추가 데이터 래치가 중간 페이지(MP)의 데이터를 저장하는 데 사용될 수 있다. 메모리 셀당 4-비트 구현은 하위-중간(lower-middle) 및 상위-중간(upper-middle) 데이터 래치들을 사용할 수 있다. 본원에 제공되는 기법들은 이러한 변형들을 포괄하는 것으로 의미된다.
프로세서(192)는 읽기 및 프로그래밍 동안 계산들을 수행한다. 읽기에 대해, 프로세서는 감지된 메모리 셀에 저장된 데이터 상태를 결정하고 데이터를 데이터 래치 세트에 저장한다. 프로그래밍에 대해, 프로세서는 메모리 셀에 쓰여져야만 하는 데이터 상태를 결정하기 위해 래치들을 읽는다.
읽기 동안, 시스템의 동작은 주소지정된 메모리 셀에의 상이한 제어 게이트 전압들의 공급을 제어하는 상태 머신(112)의 제어 하에 있다. 감지 모듈이 메모리에 의해 지원되는 다양한 메모리 상태들(예컨대, 상태 A, 상태 B 및 상태 C)에 대응하는 다양한 미리 정의된 제어 게이트 전압들(예컨대, 도 6b에서의 VrA, VrB 및 VrC)을 통해 지나갈 때, 감지 모듈은 이 전압들 중 하나에서 트리핑(trip)될 수 있고, 대응하는 출력이 감지 모듈로부터 버스(172)를 통해 프로세서(192)에 제공될 것이다. 그 시점에서, 프로세서(192)는 감지 모듈의 트리핑 이벤트(들)와 상태 머신으로부터 입력 라인들(193)을 통해 인가된 제어 게이트 전압에 관한 정보를 고려하여 메모리 상태를 결정한다. 프로세서(192)는 이어서 메모리 상태에 대한 이진 인코딩을 계산하고 그 결과 얻어진 데이터 비트들을 데이터 래치들(194 내지 197)에 저장한다. 관리 회로(MC0)의 다른 실시예에서, 비트 라인 래치는 감지 모듈의 출력을 래치하기 위한 래치로서도 앞서 기술된 바와 같은 비트 라인 래치로서도 역할한다.
일부 구현들은 다수의 프로세서들을 포함할 수 있다. 일 실시예에서, 각각의 프로세서는 출력 라인들 각각이 서로 와이어드 OR(wired-OR)되도록 출력 라인(도시되지 않음)을 포함할 것이다. 일부 실시예들에서, 출력 라인들은 와이어드 OR 라인(wired-OR line)에 연결되기 전에 반전된다. 이 구성은, 와이어드 OR를 수신하는 상태 머신이 프로그래밍되고 있는 모든 비트들이 원하는 레벨에 도달했을 때를 결정할 수 있기 때문에, 프로그램 검증 프로세스 동안 프로그래밍 프로세스가 완료될 때의 빠른 결정을 가능하게 한다. 예를 들어, 각각의 비트가 그의 원하는 레벨에 도달했을 때, 그 비트에 대한 논리 0이 와이어드 OR 라인으로 송신될 것이다(또는 데이터 1이 반전된다). 모든 비트들이 데이터 0을 출력할 때(또는 데이터 1이 반전될 때), 상태 머신은 프로그래밍 프로세스를 종료해야 한다는 것을 안다. 각각의 프로세서가 4개의 감지 모듈들과 통신하기 때문에, 상태 머신은 와이어드 OR 라인을 네 번 읽을 필요가 있거나, 상태 머신이 와이어드 OR 라인을 한 번만 읽으면 되도록 연관된 비트 라인들의 결과들을 축적할 로직이 프로세서(192)에 추가된다. 이와 유사하게, 논리 레벨들을 정확하게 선택하는 것에 의해, 전역 상태 머신(global state machine)은 제1 비트가 그의 상태를 변경하는 때를 검출하고 알고리즘들을 그에 따라 변경할 수 있다.
프로그램 또는 검증 동작들 동안, 프로그래밍될 데이터(쓰기 데이터)가 데이터 버스(120)로부터 데이터 래치 세트(194 내지 197)에, LP 및 UP 데이터 래치들에 저장된다. 프로그래밍 동작은, 상태 머신의 제어 하에서, 일련의 프로그래밍 전압 펄스들이 주소지정된 메모리 셀들의 제어 게이트들에 인가되는 것을 포함한다. 메모리 셀이 원하는 메모리 상태로 프로그래밍되었는지를 결정하기 위해 각각의 프로그래밍 전압에 뒤이어서 리드백(read back)(검증)이 행해진다. 어떤 경우에, 프로세서는 원하는 메모리 상태와 관련하여 리드백된 메모리 상태를 모니터링한다. 2개의 상태들이 일치할 때, 프로세서는 비트 라인이 프로그램 금지(program inhibit)를 가리키는 상태로 풀링되게 하기 위해 비트 라인 래치를 설정한다. 이것은 비트 라인에 결합된 메모리 셀을, 프로그래밍 전압들이 그의 제어 게이트에 나타나더라도, 더 이상 프로그래밍하지 못하게 한다. 다른 실시예들에서, 프로세서는 먼저 비트 라인 래치를 로딩하고, 감지 회로부는 검증 프로세스 동안 비트 라인 래치를 금지 값(inhibit value)으로 설정한다.
각각의 데이터 래치 세트(194 내지 197)는 각각의 감지 모듈에 대한 데이터 래치 스택(stack of data latches)으로서 구현될 수 있다. 일 실시예에서, 감지 모듈당 3개의 데이터 래치들이 있다. 일부 구현들에서, 데이터 래치들에 저장된 병렬 데이터가 데이터 버스(120)를 위한 직렬 데이터로 그리고 그 반대로 변환되도록 데이터 래치들이 시프트 레지스터로서 구현된다. 메모리 셀들의 읽기/쓰기 블록에 대응하는 데이터 래치들 모두는, 데이터 블록이 직렬 전송(serial transfer)에 의해 입력 또는 출력될 수 있도록, 블록 시프트 레지스터를 형성하기 위해 서로 연결될 수 있다. 상세하게는, 읽기/쓰기 모듈들의 뱅크는 그의 데이터 래치 세트의 각각의 데이터 래치가, 마치 읽기/쓰기 블록 전체에 대한 시프트 레지스터의 일부인 것처럼, 데이터를 데이터 버스 내로 또는 데이터 버스 밖으로 순차적으로 시프트하도록 되어 있다.
데이터 래치들은 연관된 메모리 셀이 프로그래밍 동작에서 특정 이정표들에 도달했을 때를 식별한다. 예를 들어, 데이터 래치들은 메모리 셀의 Vth가 특정의 검증 전압 미만인 것을 식별할 수 있다. 데이터 래치들은 메모리 셀이 하나의 페이지의 데이터로부터의 하나 이상의 비트들을 현재 저장하고 있는지를 표시한다. 예를 들어, 하위 페이지 비트가 연관된 메모리 셀에 저장되어 있을 때 LP 데이터 래치가 (예컨대, 0으로부터 1로) 플리핑(flip)된다. 상위 페이지 비트가 연관된 메모리 셀에 저장되어 있을 때 UP 데이터 래치가 플리핑된다. 연관된 메모리 셀이 프로그래밍을 완료할 때, 예컨대, 그의 Vth가 목표 검증 전압을 초과할 때 비트의 플리핑이 일어난다. 하위 페이지 비트, 중간 페이지 비트 및 상위 페이지 비트가 사용될 때(예컨대, 메모리 셀당 3-비트 메모리의 경우에), 중간 페이지 비트가 연관된 메모리 셀에 저장되어 있을 때 MP 데이터 래치가 또한 플리핑된다. 데이터 래치들에서의 비트 조합들의 설정에 관한 부가 정보가 이하에서 추가로 논의된다.
도 2a는 도 1a에서의 BLK0의 예시적인 구현으로서, 예시적인 SGD 라인 서브셋들(SGDL-SB0 및 SGDL-SB1)을 나타내는, 블록(200)의 U자 형상의 NAND 실시예의 상면도를 도시한다. 도면은 스택에 있는 다수의 WLL들 중 대표적인 층에 대한 것이다. 또한 도 2c를 참조하면, 스택은 교대로 있는 유전체 층들과 전도성 층들을 포함한다. 유전체 층들은 D0 내지 D25를 포함하고, 예를 들어, SiO2로 이루어져 있을 수 있다. 전도성 층들은 백 게이트 층(back gate layer)인 BG, 그 층에 있는 메모리 셀들의 제어 게이트들로의 전도성 경로들인 WLL0 내지 WLL23, 그리고 선택 게이트 층, 예컨대, NAND 스트링들의 선택 게이트 트랜지스터들의 제어 게이트들로의 전도성 경로인 SG를 포함한다. 도 2a는, 예를 들어, 24개의 WLL들을 갖는 일 예에서, WLL0 내지 WLL23 중 임의의 하나를 나타낼 수 있다. 전도성 층들은, 예를 들어, 도핑된 폴리실리콘, 금속 실리사이드 또는 금속을 포함할 수 있다. 드레인측 컬럼들과 소스측 컬럼들을 연결시키는 도통 상태를 유지하기 위해 5 내지 10 V의 예시적인 전압이 백 게이트에 인가될 수 있다.
각각의 블록에 대해, WLL이 2개의 부분들(202 및 204)로 나누어진다. 각각의 블록은 슬릿 패턴(slit pattern)을 포함한다. 슬릿은 스택 내에서 수직으로, 전형적으로 하부에 있는 에칭 스톱 층(etch stop layer)부터 적어도 스택의 상부층까지 연장되는 보이드(void)이다. 슬릿은 워드 라인 층 부분들을 서로 절연시키기 위해 절연물(insulation)로 충전될 수 있다. 슬릿(206)은 블록이, 서로 절연되는, 2개의 부분들(202 및 204)로 나누어지도록 블록에서 지그재그 패턴으로 연장되는 단일의 연속 슬릿이다. 이 접근법은, WLL 부분들이 독립적으로 구동될 수 있기 때문에, 메모리 셀들을 제어하는 데 보다 큰 유연성을 제공할 수 있다.
각각의 블록은, 원들로 표현된, 기둥 모양의, 예컨대, 수직의 메모리 홀들 또는 필라(pillar)들의 로우들을 포함한다. 각각의 로우는 도면에서 컬럼들의 수직 그룹을 나타낸다. 메모리 홀들은 스택에서 수직으로 연장되고, 수직 NAND 스트링에서와 같은 메모리 셀들을 포함한다. 라인(220)을 따라 있는 예시적인 메모리 셀 컬럼들은 C0 내지 C11을 포함한다. 도면에서 좌우로 확장하여, 훨씬 더 많은 메모리 홀들의 로우들이 전형적으로 사용될 것이기 때문에, 도면은 단순화한 것을 나타내고 있다. 또한, 도면들이 꼭 축척대로 되어 있지는 않다. 메모리 셀 컬럼들이 서브블록들과 같은 서브셋들로 배열될 수 있다.
메모리 셀들의 서브셋들은, WL 서브셋들, SGD 라인 서브셋들 및 BL 서브셋들과 같은, 상이한 유형들일 수 있다.
블록의 일부분(209)이 도 2c와 관련하여 더욱 상세히 도시되어 있다.
도 2ba은 예시적인 워드 라인 서브셋들(WLL23D-SB 및 WLL23S-SB)과 예시적인 비트 라인 서브셋들(BL-SB0 및 BL-SB1)을 나타내는, 도 2a의 블록(200)을 도시하고 있다. 이 예는 WLL23 층이 도시되는 것을 가정한다. WLL23S-SB는 각각의 U자 형상의 NAND 스트링의 소스측에 있는 하나의 메모리 셀과 통신하는 WLL 부분이고, WLL23D-SB는 각각의 U자 형상의 NAND 스트링의 드레인측에 있는 하나의 메모리 셀과 통신하는 WLL 부분이다.
U자 형상의 NAND 스트링들이 사용될 때, 각각의 SGD 라인 서브셋은 메모리 셀 컬럼들의 2개의 인접한 로우들을 포함할 수 있다. 서브셋에서, 인접한 로우들은 슬릿에 의해 분리되어 있다. 슬릿의 한쪽에 있는 메모리 셀 컬럼들은 NAND 스트링들의 드레인측 컬럼들(예컨대, 도 2c에서의 C0, C3, C4 및 C7)이고, 슬릿의 다른 쪽에 있는 메모리 셀 컬럼들은 NAND 스트링들의 소스측 컬럼들(예컨대, 도 2c에서의 C1, C2, C5 및 C6)이다. 유의할 점은, 2개의 드레인측 컬럼들 사이의 2개의 소스측 컬럼들의 패턴이 y-방향에서 반복된다는 것이다.
워드 라인 구동기들은 전압 파형들과 같은 신호들을 WLL 부분들(202 및 204)에 독립적으로 제공할 수 있다.
도면들이 축척대로 되어 있지 않고 메모리 컬럼들 모두를 나타내고 있지는 않다. 예를 들어, 보다 현실적인 블록은 도시된 바와 같이 y 방향으로 12개의 메모리 컬럼들을 가질 수 있지만, x 방향으로는 32k 개와 같은 아주 많은 수의 의 메모리 컬럼들을 가질 수 있으며, 블록 내에 총 384k 개의 메모리 컬럼들이 있을 수 있다. U자 형상의 NAND 스트링들의 경우, 이 예에서 192k 개의 NAND 스트링들이 제공된다. 직선형 NAND 스트링들의 경우, 이 예에서 384k 개의 NAND 스트링들이 제공된다. 컬럼당 24개의 메모리 셀들이 있는 것으로 가정하면, 세트 내에 384k x 24 = 9,216k 개의 메모리 셀들이 있다. NAND 스트링 세트들(210 내지 215)이 또한 도시되어 있다.
도 2bb는 예시적인 NAND 스트링 세트들(210 내지 215)을 나타내는, 도 2a의 블록(200)을 도시하고 있다. NAND 스트링 세트(210)는, 도 2bb에 도시된 것과 같은, 예시적인 NAND 스트링(NS0)과, 도 2bb에 도시된 바와 같은, 예시적인 메모리 셀들(MCD23-0, MCD23-1, MCD23-2,..., MCD23-14)을 포함한다. 이 표기법에서, "MC"는 메모리 셀를 가리키고, "D"는 NAND 스트링들의 드레인측을 가리키며, 숫자(0,1,2,...,14)는 스택에서의 그의 위치에 기초한 NAND 스트링의 번호를 가리킨다. NAND 스트링들(NS0, NS0-1, NS0-2,..., NS0-14)이 또한 도시되어 있다.
도 2c는 라인(220)을 따른 도 2a의 블록(200)의 부분(209)의 단면도를 나타내는 스택(230)의 일 실시예를 도시하고 있다. 하나의 접근법에서, WLL들은 균일한 두께를 가지며, 메모리 홀들은 다른 균일한 두께를 갖는다. Lcg는 메모리 셀들에 대한 제어 게이트 길이를 나타내고, 이는 각각의 WLL의 두께 또는 높이와 동일하다. 메모리 셀 컬럼들(C0 내지 C7)이 다층 스택(multi-layer stack)으로 도시되어 있다. 스택(230)은 기판(101), 기판 상의 절연 막(250), 및 절연 막 상의, 전도성 층인, 백 게이트 층(BG)을 포함한다. U자 형상의 NAND 스트링의 메모리 셀 컬럼들의 쌍들 아래에 있는 백 게이트의 부분들에 트렌치가 제공된다. 메모리 셀들을 형성하기 위해 컬럼들에 제공되는 재료들의 층들이 트렌치들에도 또한 제공되고, 트렌치들에서의 나머지 공간들은 컬럼들을 연결시키는 연결 부분들(263 내지 266)을 제공하기 위해 반도체 재료로 충전된다. 백 게이트가 이와 같이 각각의 U자 형상의 NAND 스트링의 2개의 컬럼들을 연결시킨다. 예를 들어, NS0(NS=NAND string(스트링))은 컬럼들(C0 및 C1)과 연결 부분(263)을 포함하고, 드레인 단부(232)와 소스 단부(240)를 갖는다. NS1은 컬럼들(C2 및 C3)과 연결 부분(264)을 포함하고, 드레인 단부(244)와 소스 단부(242)를 갖는다. NS2는 컬럼들(C4 및 C5)과 연결 부분(265)을 포함한다. NS3은 컬럼들(C6 및 C7)과 연결 부분(266)을 포함한다.
C0에 대응하는, MH0은 참조를 위해 도시되어 있다. 메모리 홀이 스택의 상부(237)로부터 하부(238)로 계속하여(progressively) 그리고 점진적으로(gradually) 보다 좁아지는 것으로 도시되어 있다. 메모리 홀들은 기둥 모양이고 적어도 복수의 WLL들의 상부 워드 라인 층(WLL23)부터 복수의 WLL들의 하부 워드 라인 층(WLL0)까지 연장된다. 각각의 워드 라인 층은 워드 라인을 제공한다.
소스 라인(SL0)은 2개의 인접한 메모리 스트링들(NS0 및 NS1)의 소스 단부들(240 및 242)에 연결된다. SL0은 또한 x 방향에서 NS0와 NS1 뒤쪽에 있는 다른 메모리 스트링 세트들에 연결된다. 스택(230) 내의 부가의 U자 형상의 NAND 스트링들(예컨대, 도 2bb으로부터의 NS0-1, NS0-2,..., NS0-14)은, 예컨대, x-축을 따라, SGD 라인 방향에서 단면으로 도시된 U자 형상의 NAND 스트링 뒤쪽에 연장된다. U자 형상의 NAND 스트링들(NS0 내지 NS3) 각각은 상이한 SGD 라인 서브셋에 있지만, 공통의 BL 서브셋에 있다.
도 2a로부터의 슬릿(206)이 또한 일 예로서 도시되어 있다. 단면에서, 다수의 슬릿 부분들이 보여지고, 여기서 각각의 슬릿 부분은 U자 형상의 NAND 스트링의 드레인측 컬럼들과 소스측 컬럼들 사이에 있다. 비트 라인(BL0)의 일부분이 또한 도시되어 있다.
스택의 영역(236)은 도 3a에 보다 상세히 나타내어져 있다.
워드 라인 층들(WLL0 내지 WLL23)과 유전체 층들(D0 내지 D24)은 스택에서 교대로 있는 방식으로 연장된다. SG 층은 D24와 D2 사이에 있다. 각각의 WLL은 드레인측 부분과 소스측 부분을 갖는다. 예를 들어, 도 2ba에 따르면, WLL23S-SB는 WLL23의 소스측 서브블록이고, WLL23D-SB는 WLL23의 드레인측 서브블록이다. 각각의 WLL에서, 대각선 패터닝된 영역은 소스측 서브블록을 나타내고, 패터닝되지 않은 영역은 드레인측 서브블록을 나타낸다.
도 3a는 예시적인 메모리 셀들(MC23D, MC22D, MC23S 및 MC22S)을 나타내는, 도 2c의 컬럼(C0)의 영역(236)의 확대도를 도시하고 있다. 영역은 또한 유전체 층(D24)의 부분들(D24D 및 D24S), 유전체 층(D23)의 부분들(D23D 및 D23S), 그리고 유전체 층(D22)의 부분들(D22D 및 D22S)을 나타내고 있다. 영역은 또한 전도성 층(WLL24)의 부분들(WLL24D 및 WLL24S), 전도성 층(WLL23)의 부분들(WLL23D 및 WLL23S), 그리고 전도성 층(WLL22)의 부분들(WLL22D 및 WLL22S)을 나타내고 있다.
다수의 층들이 컬럼의 측벽들을 따라 그리고 각각의 워드 라인 층 내에 퇴적될 수 있다. 이 층들은, 예컨대, 원자 층 퇴적(atomic layer deposition)을 사용하여 퇴적되는 산화물-질화물-산화물(O-N-O)과 폴리실리콘 층들을 포함할 수 있다. 예를 들어, 컬럼은 SiN 또는 다른 질화물과 같은 전하 트래핑 층 또는 막(CTL)(297), 터널 산화물(TNL)(298), 폴리실리콘 보디 또는 채널(CH)(299), 그리고 코어 필러 유전체(core filler dielectric)(300)를 포함한다. 워드 라인 층은 블록 산화물(BOX)(296), 블록 하이-k 재료(295), 장벽 금속(294), 그리고 W와 같은 전도성 금속(293)을 포함한다. 다른 접근법에서, W를 제외한 이 층들 모두는 컬럼에 제공된다. 부가의 메모리 셀들이 컬럼들 전체에 걸쳐 이와 유사하게 형성된다. 이 층들은 NAND 스트링의 기둥 모양의 활성 구역(AA)을 형성한다.
메모리 셀이 프로그래밍될 때, 전자들이, 메모리 셀과 연관되어 있는, CTL의 일부분에 저장된다. 이 전자들은 채널로부터 TNL을 통해 CTL 내로 끌려들어간다. 메모리 셀의 Vth는 저장된 전하의 양에 비례하여 증가된다.
제1 메모리 셀 세트의 각자의 메모리 셀 각각은 제2 메모리 셀 세트의 각자의 메모리 셀과 인접해 있고, 그와 공통의 전하 트래핑 층을 따라 배열된다. 예를 들어, MC23D는 MC22D에 인접해 있고, 그와 공통의 전하 트래핑 층(297)을 따라 배열된다. 또한, MC23S는 MC22S에 인접해 있고, 그와 공통의 전하 트래핑 층(297)을 따라 배열된다.
CTL에서의 원들은 MC23D에서의 전하들(전자들)을 나타낸다. 좌측을 가리키는 화살표들은 CTL 내로 끌려들어가는 전하들을 나타내고, 우측을 가리키는 화살표는 CTL 밖으로 디트래핑되는 전하를 나타낸다.
도 3b는 도 3a의 라인(302)을 따른 단면도를 도시하고 있다. 각각의 층은 하나의 가능한 접근법에서, 원통인 코어 필러를 제외하고는, 링 형상으로 되어 있다.
도 3c는 3D 적층형 비휘발성 메모리 디바이스에서의 회로(301)의 일 실시예를 도시하고 있다. 단순화한 것으로서, 컬럼마다 4개의 메모리 셀들이 제공된다.
NAND 스트링들(NS0, NS1, NS2 및 NS3)은 비트 라인(BL0)과 통신하고, NAND 스트링들(NS0A, NS1A, NS2A 및 NS3A)은 비트 라인(BL1)과 통신한다. 이 예에서, 각각의 NAND 스트링은 4개의 메모리 셀들과 하나의 SGD 트랜지스터를 갖는 드레인측 컬럼과, 4개의 메모리 셀들과 하나의 SGS 트랜지스터를 갖는 소스측 컬럼을 가진다. 채워진 원들은 NAND 스트링의 드레인측에 있는 선택 트랜지스터 및 메모리 셀들의 제어 게이트들을 나타낸다. 비어 있는 원들은 NAND 스트링의 소스측에 있는 선택 트랜지스터 및 메모리 셀들의 제어 게이트들을 나타낸다.
예를 들어, NS0은 메모리 셀들(M00, M01, M02 및 M03)과 SGD 트랜지스터(SGD0)를 포함하는 드레인측 컬럼(C0D), 및 메모리 셀들(M10, M11, M12 및 M13)과 SGS 트랜지스터(SGS0)를 포함하는 소스측 컬럼(C0S)을 가진다. NS1은 메모리 셀들(M30, M31, M32 및 M33)과 SGD 트랜지스터(SGD1)를 포함하는 드레인측, 및 메모리 셀들(M20, M21, M22 및 M23)과 SGS 트랜지스터(SGS1)를 포함하는 소스측을 가진다. NS2는 메모리 셀들(M40, M41, M42 및 M43)과 SGD 트랜지스터(SGD2)를 포함하는 드레인측, 및 메모리 셀들(M50, M51, M52 및 M53)과 SGS 트랜지스터(SGS2)를 포함하는 소스측을 가진다. NS3은 메모리 셀들(M70, M71, M72 및 M73)과 SGD 트랜지스터(SGD3)를 포함하는 드레인측, 및 메모리 셀들(M60, M61, M62 및 M63)과 SGS 트랜지스터(SGS3)를 포함하는 소스측을 가진다.
이와 유사하게, NS0A는 메모리 셀들(M00A, M01A, M02A 및 M03A)과 SGD 트랜지스터(SGD0A)를 포함하는 드레인측, 및 메모리 셀들(M10A, M11A, M12A 및 M13A)과 SGS 트랜지스터(SGS0A)를 포함하는 소스측을 가진다. NS1A는 메모리 셀들(M30A, M31A, M32A 및 M33A)과 SGD 트랜지스터(SGD1A)를 포함하는 드레인측, 및 메모리 셀들(M20A, M21A, M22A 및 M23A)과 SGS 트랜지스터(SGS1A)를 포함하는 소스측을 가진다. NS2A는 메모리 셀들(M40A, M41A, M42A 및 M43A)과 SGD 트랜지스터(SGD2A)를 포함하는 드레인측, 및 메모리 셀들(M50A, M51A, M52A 및 M53A)과 SGS 트랜지스터(SGS2A)를 포함하는 소스측을 가진다. NS3A는 메모리 셀들(M70A, M71A, M72A 및 M73A)과 SGD 트랜지스터(SGD3A)를 포함하는 드레인측, 및 메모리 셀들(M60A, M61A, M62A 및 M63A)과 SGS 트랜지스터(SGS3A)를 포함하는 소스측을 가진다.
각각의 NAND 스트링은 백 게이트(NS0에 대한 BG0, NS1에 대한 BG1, NS2에 대한 BG2, NS3에 대한 BG3, NS0A에 대한 BG0A, NS1A에 대한 BG1A, NS2A에 대한 BG2A, NS3A에 대한 BG3A)를 가진다. 회로 내의 백 게이트들 모두의 제어 게이트들은 서로 연결될 수 있다.
하나의 접근법에서, 각각의 SGS 트랜지스터의 소스측은 회로의 공통 소스 라인에 연결된다.
메모리 셀 세트는 한꺼번에 프로그래밍되거나 읽혀질 수 있는 셀들을 포함한다. 예를 들어, 메모리 셀 세트는 공통의 워드 라인 층(WLL) 부분에 그리고 공통의 SGD 라인에 연결된 셀들을 포함할 수 있다. 예를 들어, Set0은 셀들(M00 및 M00A)을 포함하고, Set1은 셀들(M01 및 M01A)을 포함하며, Set2는 셀들(M02 및 M02A)을 포함하고, Set3은 셀들(M03 및 M03A)을 포함한다.
회로의 각각의 레벨에서, 드레인측 메모리 셀들의 제어 게이트들은 공통의 WLL에 의해 서로 연결된다. 예를 들어, 상부 WLL에서, M03, M03A, M33, M33A, M43, M43A, M73 및 M73A는 워드 라인 층에 의해 연결된 제어 게이트들을 가진다. 이와 유사하게, 소스측 메모리 셀들의 제어 게이트들도 공통의 WLL에 의해 서로 연결된다. 예를 들어, 상부 WLL에서, M13, M13A, M23, M23A, M53, M53A, M63 및 M63A는 워드 라인 층에 의해 연결된 제어 게이트들을 가진다.
그에 부가하여, SGD 트랜지스터들의 제어 게이트들이 서로 연결되어 있다. 예를 들어, SGD0, SGD0A의 제어 게이트들이 연결되고, SGD1, SGD1A의 제어 게이트들이 연결되며, SGD2, SGD2A의 제어 게이트들이 연결되고, SGD3, SGD3A의 제어 게이트들이 연결된다.
SGS 트랜지스터들의 제어 게이트들이 x-방향으로 서로 연결되어 있다. 예를 들어, SGS0, SGS0A의 제어 게이트들이 연결되고, SGS1, SGS1A의 제어 게이트들이 연결되며, SGS2, SGS2A의 제어 게이트들이 연결되고, SGS3, SGS3A의 제어 게이트들이 연결된다.
도 4a는 예시적인 SGD 라인 서브셋들(SGDL-SB0A 및 SGDL-SB1A)을 나타내는, 도 1a의 블록(BLK0)의 직선형 NAND 스트링 실시예(블록(480))의 상면도를 도시하고 있다. 이 구성에서, NAND 스트링은 단지 하나의 컬럼을 가지며, 소스측 선택 게이트는, U자 형상의 NAND 스트링에서와 같이, 컬럼의 상부가 아니라 컬럼의 하부에 있다. 더욱이, 블록의 주어진 레벨은 층의 메모리 셀들 각각에 연결되는 하나의 WLL을 가진다.
예를 들어, 도 4ba은 예시적인 WL 라인 서브셋(WLL23-SB)과 예시적인 비트 라인 서브셋들(BL-SB0A 및 BL-SB1A)을 나타내는, 도 4a의 블록(BLK0)을 도시하고 있다. 예시적인 슬릿(482)과 같은, 다수의 슬릿들이 또한 사용될 수 있다. 이 절연물 충전된 슬릿들은 제조 프로세스에서 교대로 있는 유전체 층들을 형성하기 위해 도핑되지 않은 폴리실리콘 층들이 습식 에칭에 의해 제거되고 유전체가 퇴적될 때 스택에 대한 구조적 지지를 제공하는 데 사용된다. 파선(486)이 컬럼들(C12 내지 C17)을 통해 연장되어 있다. 부분(488)의 라인(486)을 따른 단면도가 도 4c에 나타내어져 있다.
도 4bb는 예시적인 NAND 스트링 세트들(216, 217, 218, 219, 221 및 222)을 나타내는, 도 4a의 블록(BLK0)을 도시하고 있다. 부분(488)에서의 예시적인 NAND 스트링들(NS0A 내지 NS3A)이 또한 도시되어 있다.
도 4c는 라인(486)을 따른 도 4a의 블록(480)의 부분(488)의 단면도를 도시하고 있다. 도 4bb에서의 NAND 스트링들(NS0A 내지 NS3A)에 대응하는 메모리 셀 컬럼들이 다층 스택으로 도시되어 있다. 그 부분에서, 스택(490)은 기판(101), 기판 상의 절연 막(250), 및 소스 라인(SL0A)의 일부분을 포함한다. SGD 라인 서브셋 내의 부가의 직선형 NAND 스트링들이, 예컨대, x-축을 따라, 단면으로 도시된 NAND 스트링들의 전방에서 그리고 후방에서 연장된다는 것을 상기한다. NS0A는 소스 단부(494)와 드레인 단부(492)를 가진다. 도 4a로부터의 슬릿(482)이 또한 다른 슬릿들과 함께 도시되어 있다. 비트 라인(BL0A)의 일부분이 또한 도시되어 있다. 파선들은 메모리 셀들과 선택 게이트 트랜지스터들을 나타낸다. 본원에 기술되는 기법들은 U자 형상의 또는 직선형 NAND에서 사용될 수 있다. 워드 라인 층들(WLL0 내지 WLL23A)은 스택에서 유전체 층들(D0A 내지 D24A)과 교대로 배열된다. SGD 층(SGD A), SGS 층(SGSA), 및 부가의 유전체 층(DS)이 또한 도시되어 있다. SGDA는 D24A와 D25A 사이에 있다.
도 5a는 도 1b의 메모리 구조물(126)에서의 메모리 셀들의 다른 예로서 편평한 제어 게이트와 전하 트래핑 영역들을 포함하는 메모리 셀들의 단면도를 도시하고 있다. NOR 및 NAND 플래시 메모리 디바이스에서 전하 트래핑 메모리가 사용될 수 있다. 이 기술은, 전자들을 저장하기 위해 도핑된 다결정 실리콘과 같은 도체를 사용하는 부유 게이트 MOSFET 기술과 달리, 전자들을 저장하기 위해 SiN 막과 같은 절연체를 사용한다. 일 예로서, 워드 라인(524)은 각자의 채널 영역들(506, 516 및 526)을 포함하는 NAND 스트링들에 걸쳐 연장된다. 워드 라인의 부분들은 제어 게이트들(502, 512 및 522)을 제공한다. 워드 라인 아래쪽에는 IPD(inter-poly dielectric) 층(528), 전하 트래핑 층들(504, 514 및 521) 그리고 폴리실리콘 층들(505, 515 및 525)이 있다.
메모리 셀(500)은 제어 게이트(502), 전하 트래핑 층(504), 폴리실리콘 층(505), 및 채널 영역(506)의 일부분을 포함한다. 메모리 셀(510)은 제어 게이트(512), 전하 트래핑 층(514), 폴리실리콘 층(515), 및 채널 영역(516)의 일부분을 포함한다. 메모리 셀(520)은 제어 게이트(522), 전하 트래핑 층(521), 폴리실리콘 층(525), 및 채널 영역(526)의 일부분을 포함한다.
부유 게이트를 휘감고 있는 제어 게이트 대신에 편평한 제어 게이트가 사용된다. 하나의 장점은 전하 트래핑 층이 부유 게이트보다 더 얇게 제조될 수 있다는 것이다. 그에 부가하여, 메모리 셀들이 서로 보다 가깝게 위치될 수 있다.
도 5b는 메모리 디바이스 내의 메모리 셀들을 프로그래밍하는 프로세스를 도시하고 있다. 단계(530)는 메모리 셀 세트에 대해 하나의 프로그래밍 패스를 수행하는 것을 포함한다. 단계(531)에서, 하나의 프로그래밍 패스의 끝에서, 디트래핑 평가 프로세스에서, 부가의 프로그래밍이 정당화되는 결함 있는 메모리 셀들이 식별된다. 예를 들어, 이것은 메모리 셀이 그의 목표 데이터 상태에 도달했는지를 결정하기 위해 프로그래밍 패스에서 이전에 사용되었던 바로 그 검증 전압에서 메모리 셀을 읽는 것을 포함할 수 있다. 메모리 셀의 Vth가 검증 전압 미만이라면, Vth를 검증 전압 아래로 떨어지게 한 디트래핑이 일어났다. 또는, 메모리 셀은 프로그래밍 패스에서 Vth가 검증 전압을 초과하지 않았던 고장 비트이다. 임의로, 결함 있는 메모리 셀을 식별하는 데 사용되는 검증 전압은 프로그래밍 패스에서 이전에 사용되었던 검증 전압보다 더 낮거나 더 높다.
그 후에, 2개의 경로들 중 하나를 따라갈 수 있다. 하나의 경로에서, 단계(532)는 식별된 메모리 셀들을, 프로그래밍 전압들의 하나 이상의 계단상 연속체들이 결함 있는 메모리 셀들에 인가되는 증분 스텝 펄스 재프로그래밍을 사용하여, 재프로그래밍하는 것을 포함한다. 각각의 계단상 연속체는 초기 크기와 스텝 크기를 갖는다. 단계(532a)는 재프로그래밍에서의 프로그램 펄스들의 초기값, 펄스 폭 및/또는 스텝 크기가 재프로그래밍을 위해 최적화되는 것을 나타낸다. 재프로그래밍에서의 프로그램 펄스들의 초기값, 펄스 폭 및/또는 스텝 크기 중 적어도 하나가 이전의 프로그래밍 패스에서와 상이하다. 재프로그래밍은, 이하에서 더 논의되는 바와 같이, 모든 목표 데이터 상태들의 결함 있는 메모리 셀들이 동시에 프로그래밍되거나 상이한 목표 데이터 상태들의 메모리 셀들이 개별적으로 프로그래밍되는 다수의 프로그램-검증 반복들을 포함할 수 있다. 결함 있는 것으로 식별되지 않은 메모리 셀들은 재프로그래밍 동안 프로그래밍되지 않는다. 증분 스텝 펄스 재프로그래밍은 검증 테스트를 통과하거나 최대 수의 프로그램-검증 반복들이 수행될 때까지 계속된다.
제2 경로에서, 단계(533)는 식별된 메모리 셀들에 대한 재프로그래밍을 각각의 목표 데이터 상태에 대해 단일의 부가 프로그램 펄스를 사용하여, 예컨대, 데이터 상태당 하나의 프로그램 펄스를 사용하여 수행한다. 단계(533a)는 각각의 목표 데이터 상태에 대해 프로그램 펄스의 크기 및/또는 폭이 최적화되는 것을 나타낸다. 프로그램 펄스의 크기 및/또는 폭 중 적어도 하나가 이전의 프로그래밍 패스에서와 상이하다. 단일의 부가 프로그램 펄스는 검증 동작이 뒤따르지 않는 목표 데이터 상태당 정확히(단지) 하나의 프로그램 펄스를 포함할 수 있다.
도 5c는 도 5b에서의 단계들(530 및 531)에 따른 프로그래밍 패스의 예시적인 구현을 도시하고 있다. 단계(542)는 상이한 목표 데이터 상태들을 갖는 상이한 메모리 셀 서브셋들을 포함하는 메모리 셀 세트에 대해 하나의 프로그래밍 패스를 시작한다. 임의로, 하나 이상의 이전 프로그래밍 패스들이 수행되었다. 단계(543)는 프로그래밍 패스에서 사용되어야 하는 프로그램 펄스들의 초기 크기, 폭 및 스텝 크기를 설정한다. 하나의 접근법에서, 프로그래밍 패스 동안 폭 및 스텝 크기가 고정된다. 단계(544)는 Vpgm(프로그램 펄스)을, 예컨대, 선택된 워드 라인을 통해, 메모리 셀 세트에 인가하는 것을 포함한다. 이와 동시에, 단계(544a)는 잠금되지 않은 메모리 셀들의 프로그래밍을 인에이블시키고, 잠금된 메모리 셀들의 프로그래밍을 금지시킨다. 프로그래밍을 인에이블시키는 것은 비트 라인 전압을 0 V 또는 다른 로우 레벨로 설정하는 것을 포함할 수 있는 반면, 프로그래밍을 금지시키는 것은 비트 라인 전압을 비교적 하이 레벨로 설정하는 것을 포함할 수 있다. 잠금된 메모리 셀들은 소거된 상태에 있는 메모리 셀들과 검증 테스트를 통과하는 것에 의해 재프로그래밍을 완료했거나 재프로그래밍되고 있지 않은 목표 데이터 상태(예컨대, A, B 또는 C)를 갖는 메모리 셀들을 포함할 수 있다. 잠금되지 않은 메모리 셀들은 검증 테스트를 통과하는 것에 의해 재프로그래밍을 완료하지 않은 목표 데이터 상태(예컨대, A, B 또는 C)를 갖는 메모리 셀들을 포함할 수 있다.
단계(545)는 상이한 목표 데이터 상태들에 대해 각자의 검증 전압들(예컨대, A, B 및 C 상태 메모리 셀들에 대해, 각각, VvA, VvB 및 VvC)을 사용하여 검증 테스트들을 수행한다. 예를 들어, 비트 라인들에 연결되어 있는 감지 회로부는 VvA, VvB 또는 VvC의 제어 게이트 전압이 워드 라인에 인가될 때 메모리 셀들의 도통 또는 비도통 상태를 감지하기 위해 사용될 수 있다. 비도통 상태에 있는 셀은 검증 테스트를 통과했고 잠금 상태로 제공된다. 감지 회로부에 의해 결정되는 바와 같은 검증 테스트의 결과에 기초하여, 단계(545a)는 그 각자의 검증 테스트를 통과하는 메모리 셀들에 대해 잠금 상태(lockout status)를 설정한다. 단계(545b)는 또한, 이하(예컨대, 도 11c)에서 더 논의되는 바와 같이, 각각의 목표 데이터 상태에 대한 메모리 셀들의 프로그래밍 속도, 또는 모든 목표 데이터 상태들에 걸친 전체적인 프로그래밍 속도를 결정하는 데도 사용될 수 있다. 결정 단계(546)는 프로그래밍 패스가 완료되었는지를 결정한다. 이것은, 예를 들어, 모든 또는 명시된 수의 메모리 셀들이 그 각자의 목표 데이터 상태의 검증 테스트를 통과할 때 일어날 수 있다. 환언하면, 하나의 프로그래밍 패스는 적은 수 이하의 메모리 셀들이 그 각자의 검증 테스트를 통과하지 못할 때 완료된다. 예를 들어, A, B 및 C 상태 메모리 셀들의 1 내지 5%가 그들의 검증 테스트를 통과하지 못할 수 있다. 이 양은 메모리 디바이스의 오류 정정 능력에 기초할 수 있다.
결정 단계(546)가 참이면, 단계(548)는, 예컨대, Vth가 각자의 검증 전압 미만인 메모리 셀들을 검출하는 것에 의해, 재프로그래밍이 정당화되는 결함 있는 메모리 셀들을 식별하기 위해 검증 테스트들을 수행한다. 이것은 디트래핑 평가 프로세스이다. 제1 카테고리의 결함 있는 메모리 셀들은 검증 전압 초과의 Vth로 검증 테스트를 이전에 통과했던 메모리 셀들을 포함하고, 여기서 Vth는 그 후에 상당한 디트래핑으로 인해 검증 전압 아래로 떨어졌다. 제2 카테고리의 결함 있는 메모리 셀들은 프로그래밍 패스 동안 검증 테스트를 통과하지 못한 적은 수의 메모리 셀들을 포함할 수 있다. 양 카테고리의 메모리 셀들은 재프로그래밍될 수 있다.
하나의 접근법에서, 디트래핑을 검출하기 위해 사용되는 검증 전압은 프로그래밍 패스에서 프로그래밍 동안 사용되는 검증 전압과 동일할 수 있다. 또는, 디트래핑을 검출하기 위해 사용되는 검증 전압은 프로그래밍 패스에서 사용되는 검증 전압과 상이할 수 있다. 단계(548)의 검증 테스트들의 결과는, 결함 있는 메모리 셀들이 식별되고 재프로그래밍 패스에서 프로그래밍될 수 있도록, 메모리 셀과 연관된 래치들에 저장될 수 있다. 예컨대, 도 18a 내지 도 18d를 참조하십시오. 결정 단계(546)가 거짓이면, 단계(547)에서 프로그램 펄스 크기가 스텝 크기만큼 증대(step up)되고, 단계(544)에서 Vpgm이 다시 인가된다.
임의로, 하나 이상의 데이터 상태들에 대한 Vth 폭을 결정하기 위해 단계(548a)가 수행될 수 있다. 이것은 하나 이상의 부가 감지 동작들을 포함할 수 있다.
도 5d는, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 동시에 재프로그래밍되는, 도 5b에서의 단계들(532 및 532a)에 따른 재프로그래밍의 예시적인 구현을 도시하고 있다. 단계(550)는 상이한 목표 데이터 상태들을 갖는 결함 있는 메모리 셀들이 동시에 프로그래밍되는 재프로그래밍 패스를 시작한다. 단계(551)는 프로그램 펄스들의 초기 크기, 폭 및 스텝 크기를 설정한다. 단계(551)는 프로그래밍 속도 및 재프로그래밍되고 있는 셀들의 수와 같은 메트릭들에 반응할 수 있다. 예컨대, 도 17a 내지 도 17d를 참조하십시오.
단계(552)는 Vpgm을, 예컨대, 선택된 워드 라인을 통해, 메모리 셀 세트에 인가하는 것을 포함한다. 이와 동시에, 단계(552a)는 잠금되지 않은, 결함 있는 메모리 셀들의 프로그래밍을 인에이블시키고, 다른 메모리 셀들의 프로그래밍을 금지시킨다. 잠금되지 않은, 결함 있는 메모리 셀들은 재프로그래밍 패스에서 검증 테스트를 통과하는 것에 의해 재프로그래밍을 완료하지 않은 목표 데이터 상태(예컨대, A, B 또는 C)를 갖는 결함 있는 메모리 셀들을 포함할 수 있다. 단계(553)는 상이한 목표 데이터 상태들에 대해 각자의 검증 전압들을 사용하여 검증 테스트들을 수행한다.
재프로그래밍에서의 각자의 검증 전압들은 이전의 프로그래밍 패스에서의 각자의 검증 전압들과 동일하거나 상이할 수 있다. 재프로그래밍의 목표는 디트래핑을 경험한 메모리 셀들의 Vth를 상승시키는 것이다. 하나의 접근법에서, 재프로그래밍에서의 각자의 검증 전압들은 일어날지도 모르는 잠재적인 추가 디트래핑을 보상하기 위해 이전의 프로그래밍 패스에서의 각자의 검증 전압들보다 더 높다. 예를 들어, 도 10a에서 전압들 VvA1, VvB1 및 VvC1이, 각각, VvA, VvB 및 VvC보다 더 높은 것을 참조하십시오.
다른 접근법에서, 재프로그래밍에서의 각자의 검증 전압들은 이전의 프로그래밍 패스에서의 각자의 검증 전압들보다 더 낮고, 추가의 디트래핑이 문제가 되지 않는다는 이론에 기초하여, 읽기 전압들과 유사할 수 있으며, 이 경우에 메모리 셀들이 그들의 데이터 상태를 다음으로 더 낮은 데이터 상태와 구별해주는 읽기 레벨 초과의(예컨대, C 상태 셀에 대해 VrC 초과의) Vth를 갖도록 하는 것으로 충분하다. 다른 접근법에서, 주어진 목표 데이터 상태를 갖는 주어진 결함 있는 메모리 셀에 대해, 재프로그래밍에서의 각자의 검증 전압은 하나의 프로그래밍 패스에서의 목표 데이터 상태의 각자의 검증 전압과 목표 데이터 상태를 다음으로 더 낮은 데이터 상태와 구별해주는 읽기 전압 초과 사이에(예컨대, C 상태 셀에 대해 VrC와 VvC 사이에) 있다.
감지 회로부에 의해 결정되는 바와 같은 검증 테스트의 결과에 기초하여, 단계(553a)는 그 각자의 검증 테스트를 통과하는 결함 있는 메모리 셀들에 대해 잠금 상태를 설정한다. 결정 단계(554)는 프로그래밍 패스가 완료되었는지를 결정한다. 이것은, 예를 들어, 모든 또는 적어도 명시된 수의 결함 있는 메모리 셀들이 그 각자의 목표 데이터 상태의 검증 테스트를 통과할 때 일어날 수 있다. 환언하면, 결함 있는 메모리 셀들 중 어느 것도 또는 명시된 수 이하의 결함 있는 메모리 셀들이 그 각자의 목표 데이터 상태의 검증 테스트를 통과하지 못했다. 완료에 대한 기준이 단계들(546 및 556)에서, 예컨대, 검증 테스트를 통과할 필요가 있는 셀들의 퍼센트의 면에서, 상이할 수 있다. 결정 단계(554)가 참이면, 단계(556)에서 재프로그래밍이 완료된다. 결정 단계(554)가 거짓이면, 단계(555)에서 프로그램 펄스 크기가 스텝 크기만큼 증대되고, 단계(552)에서 Vpgm이 다시 인가된다. 하나의 접근법에서, 프로그램 펄스는, 재프로그래밍이 하나의 프로그래밍 패스보다 더 적은 프로그래밍 루프들에서 완료되어야만 하도록, 하나의 프로그래밍 패스에 비해 더 긴 폭을 가진다. 임의로, 프로그램 루프들(프로그램-검증 반복들 또는 프로그램 펄스들)의 최대 허용 수가 이전의 프로그래밍 패스보다 재프로그래밍에서 더 작을 수 있다.
도 5e는, 상이한 목표 데이터 상태들을 갖는 결함 있는 메모리 셀들이 개별적으로, 예컨대, 상이한 프로그램-검증 반복 세트에서 프로그래밍되는(단계(560)), 도 5b에서의 단계들(532 및 532a)에 따른 재프로그래밍의 예시적인 구현을 도시하고 있다. 단계(561)는 재프로그래밍할 목표 데이터 상태, 예컨대, A 상태를 선택한다. 단계(562)는 목표 데이터 상태에 대한 프로그램 펄스들의 크기, 폭 및 스텝 크기를 초기화한다. 이 값들은 현재 데이터 상태(예컨대, A 상태)에 대해 최적화된다. 단계(562)는 프로그래밍 속도, Vth 폭 및 재프로그래밍되고 있는 셀들의 수와 같은 메트릭들에 반응할 수 있다. 예컨대, 도 17a 내지 도 17d를 참조하십시오. 단계(562)는 목표 데이터 상태의 결함 있는 메모리 셀들의 ISPP에 대한 최적의 파라미터들을 설정한다.
단계(563)는 Vpgm을 메모리 셀 세트에 인가하는 것을 포함한다. 이와 동시에, 단계(563a)는 선택된 목표 데이터 상태의 잠금되지 않은, 결함 있는 메모리 셀들의 프로그래밍을 인에이블시키고, 다른 메모리 셀들의 프로그래밍을 금지시킨다. 잠금되지 않은, 결함 있는 메모리 셀들은 재프로그래밍에서 검증 테스트를 통과하는 것에 의해 재프로그래밍을 완료하지 않은 A 상태의 결함 있는 메모리 셀들을 포함할 수 있다.
단계(563b)는 검증 테스트를 통과하지 못한 이전에 선택된 목표 데이터 상태의 메모리 셀에 대해 검증 없이 하나의 부가 프로그램 펄스에 대한 프로그래밍을 인에이블시키는 옵션을 제공한다. 즉, 다음 목표 데이터 상태가 재프로그래밍되기 이전에 그의 검증 테스트를 통과하지 못하는 재프로그래밍되고 있는 메모리 셀은 프로그래밍될 기회를 한 번 더 가질 수 있다. 예를 들어, A 상태 셀들이, 예컨대, 재프로그래밍되고 있는 A 상태 셀들의 95% 초과가 A 상태 검증 테스트를 통과했다는 점에서, 완료 기준을 충족시킬지도 모른다. 그렇지만, 재프로그래밍되고 있는 A 상태 셀들의 5% 이하가 A 상태 검증 테스트를 통과하지 못했다. 이 통과하지 못한 셀들은 B 상태 재프로그래밍 동안 또 하나의 프로그램 펄스로 계속하여 프로그래밍될 수 있다. 이 프로그래밍은, 감지를 위해 사용되는 임의의 부가 시간을 피하기 위해, A 상태의 검증이 없을 수 있다.
하나의 접근법에서, B 상태가 선택된 데이터 상태일 때 사용되는 첫 번째 프로그램 펄스는 통과하지 못한 A 상태 셀들을 프로그래밍하는 데 사용되고, C 상태가 선택된 데이터 상태일 때 사용되는 첫 번째 프로그램 펄스는 통과하지 못한 B 상태 셀들을 프로그래밍하는 데 사용된다. 그렇지만, 다른 옵션들이 가능하다. 예를 들어, B 상태가 선택된 데이터 상태일 때 사용되는 두 번째 프로그램 펄스는 통과하지 못한 A 상태 셀들을 프로그래밍하는 데 사용될 수 있다. 상이한 A 상태 셀들의 마지막 기회 프로그래밍에 최적인, B 상태를 재프로그래밍하는 데 사용되는 프로그램 펄스들 중 하나가 선택될 수 있다. 추가 상세에 대해서는, 예컨대, 도 12c를 참조하십시오. 이 접근법은, 예컨대, 각각의 목표 데이터 상태의 재프로그래밍에서 최대 허용 수의 프로그램-검증 반복들을 시행하는 것에 의해, 재프로그래밍 시간을 최소로 유지하면서 보다 완전한 재프로그래밍을 가져올 수 있다.
다른 옵션에서, 목표 데이터 상태에 대한 마지막 허용 프로그램 펄스가 인가되었을 때, 뒤따르는 검증 테스트가 생략될 수 있다. 추가 상세에 대해서는, 예컨대, 도 12c를 참조하십시오.
단계(564)는 선택된 목표 데이터 상태에 대해 각자의 검증 전압을 사용하여 검증 테스트를 수행한다. 검증 테스트는 선택된 목표 데이터 상태의 잠금되지 않은, 결함 있는 메모리 셀들에 대한 것이다. 재프로그래밍에서의 각자의 검증 전압은, 선택된 목표 데이터 상태에 대해, 이전의 프로그래밍 패스에서의 각자의 검증 전압들과 동일하거나 상이할 수 있다. 더욱이, 재프로그래밍 및 이전의 프로그래밍 패스에서의 각자의 검증 전압들 사이의 차이들이 상이한 목표 데이터 상태들에 대해 상이할 수 있다.
감지 회로부에 의해 결정되는 바와 같은 검증 테스트의 결과에 기초하여, 단계(564a)는 검증 테스트를 통과하는 결함 있는 메모리 셀들에 대해 잠금 상태를 설정한다. 결정 단계(565)는 목표 데이터 상태에 대해 검증 테스트를 통과하는지를 결정한다. 이것은, 예컨대, 모든 또는 적어도 명시된 수의 결함 있는 메모리 셀들이, 예를 들어, 목표 데이터 상태의 검증 테스트를 통과할 때 일어날 수 있다. 완료에 대한 기준이 상이한 데이터 상태들에 대해, 예컨대, 검증 테스트를 통과할 필요가 있는 셀들의 퍼센트의 면에서, 상이할 수 있다. 결정 단계(565)가 참이면, 결정 단계(568)는 재프로그래밍할 다음 목표 데이터 상태가 있는지를 결정한다. 결정 단계(568)가 거짓이면, 단계(569)에서 재프로그래밍 패스가 완료된다. 결정 단계(568)가 참이면, 단계(561)에서 재프로그래밍될 다음 목표 데이터 상태, 예컨대, B 상태가 선택된다. 결정 단계(565)가 거짓이면, 결정 단계(566)는 목표 데이터 상태에 대해 최대 허용 수의 프로그램 루프들이 수행되었는지를 결정한다. 프로그램 루프들의 최대 허용 수는 상이한 목표 데이터 상태들에 대해 동일하거나 상이할 수 있다. 결정 단계(566)가 거짓이면, 단계(567)에서 프로그램 펄스 크기가 스텝 크기만큼 증대되고, 단계(563)에서 Vpgm이 다시 인가된다. 즉, 선택된 목표 데이터 상태에 대한 재프로그래밍이 계속된다. 결정 단계(566)가 참이면, 결정 단계(568)에 도달된다.
도 5f는 도 5b에서의 단계들(533 및 533a)에 따라, 목표 데이터 상태마다 하나의 프로그램 펄스를 사용하는 재프로그래밍의 예시적인 구현을 도시하고 있다. 단계(570)는 각각의 상이한 목표 데이터 상태에 대해 개별적인 단일 프로그램 펄스를 사용하여 재프로그래밍을 시작한다. 단계(571)는 재프로그래밍할 목표 데이터 상태, 예컨대, A 상태를 선택한다. 단계(572)는 목표 데이터 상태에 대한 프로그램 펄스의 크기 및 폭(지속시간)을 설정한다. 이 값들은 A 상태에 대해 최적화된다. 단계(572)는 프로그래밍 속도 및 재프로그래밍되고 있는 셀들의 수와 같은 메트릭들에 반응할 수 있다. 단계(572)는 목표 데이터 상태의 결함 있는 메모리 셀들의 데이터 상태별 1-펄스 재프로그래밍에 대한 최적의 파라미터들을 설정한다. 단계(573)는 Vpgm을 메모리 셀 세트에 인가하는 것을 포함한다. 이와 동시에, 단계(573a)는 선택된 목표 데이터 상태의 잠금되지 않은, 결함 있는 메모리 셀들의 프로그래밍을 인에이블시키고, 다른 메모리 셀들의 프로그래밍을 금지시킨다. 잠금되지 않은, 결함 있는 메모리 셀들은 A 상태를 갖는 메모리 셀들을 포함할 수 있다. 결정 단계(574)는 재프로그래밍할 다음 목표 데이터 상태가 있는지를 결정한다. 결정 단계(574)가 거짓이면, 단계(575)에서 재프로그래밍이 완료된다. 결정 단계(574)가 참이면, 단계(571)에서 재프로그래밍될 다음 목표 데이터 상태, 예컨대, B 상태가 선택된다.
도 5d 내지 도 5f에서, 재프로그래밍 패스에서 프로그램-검증 반복들 동안 메모리 셀 세트에 인가되는 프로그램 펄스들의 하나 이상의 폭들은 각자의 목표 데이터 상태 각각에 대한 문턱 전압 분포의 폭을 최소화하도록 설정된다.
도 6a 및 도 6b는 도 5c의 프로그래밍 패스의 일 예로서 4개의 데이터 상태들을 갖는 1-패스 프로그래밍 동작을 도시하고 있다. 하나의 프로그래밍 패스 동작은, 선택된 메모리 셀들의 세트의 문턱 전압들이 각자의 목표 데이터 상태들의 하나 이상의 각자의 검증 전압들에 도달할 때까지, 초기 Vpgm 레벨부터 시작하여 최종 Vpgm 레벨까지 계속하여 수행되는 다수의 프로그램-검증 동작들의 (단지) 하나의 시퀀스를 포함한다. 모든 메모리 셀들은 프로그래밍 패스의 시작시에 있어서 처음에 소거된 상태에 있을 수 있다.
각각의 메모리 셀이 2 비트의 데이터를 저장하는 경우에 대해 메모리 셀 어레이에 대한 예시적인 Vth 분포들이 제공된다. 각각의 그래프는 수평 축에는 Vth를 그리고 수직 축에는, 로그 스케일을 사용하여, Vth 분포에서의 메모리 셀들의 수 또는 개수(population)를 나타낸다. 하나의 비트는 LP 데이터를 나타내고, 다른 비트는 UP 데이터를 나타낸다. 비트 조합은 UP 비트와 그에 뒤따르는 LP 비트에 의해 표시될 수 있고, 예컨대, 11은 UP=1 및 LP=1을 표시하고, 01은 UP=0 및 LP=1을 표시하며, 00은 UP=0 및 LP=0을 표시하고, 10은 UP=1 및 LP=0을 표시한다. 비트 조합은 도 1c에서와 같은 래치 세트에 저장된다. 예를 들어, LP 비트는 LDL에 저장될 수 있고, UP 비트는 UDL에 저장될 수 있다.
소거된(Er) 상태 메모리 셀들에 대한 제1 Vth 분포(600)가 제공된다. 3개의 Vth 분포들(602, 604 및 606)은 메모리 셀들의 Vth가 검증 전압(각각, VvA, VvB 또는 VvC)을 초과할 때 메모리 셀들에 의해 도달되는 목표 데이터 상태들(각각, A, B 및 C)을 나타낸다. 이 경우에, 각각의 메모리 셀은 4개의 가능한 Vth 범위들 중 하나에 2 비트의 데이터를 저장할 수 있다.
프로그래밍 패스가 완료된 후에, Vth 분포들 사이에 있는 읽기 기준 전압들(VrA, VrB 및 VrC)을 사용하여 메모리 셀들로부터 데이터가 읽혀질 수 있다. 주어진 메모리 셀의 Vth가 읽기 기준 전압들 중 하나 이상 초과인지 미만인지를 테스트하는 것에 의해, 시스템은 메모리 셀에 의해 표현되는 데이터 상태를 결정할 수 있다. 언급된 바와 같이, 재프로그래밍은 디트래핑에 의해 야기되는 읽기 오류들의 수를 감소시킬 수 있다.
도 7a 내지 도 7c는 도 5c의 프로그래밍 패스의 다른 예로서 4개의 데이터 상태들을 갖는 2-패스 프로그래밍 동작을 도시하고 있다. 도 5c의 프로그래밍 패스는 이 프로그래밍 패스들 중 하나 또는 둘 다에 대해 사용될 수 있다. 각각의 프로그래밍 패스는 하나의 페이지의 데이터를 프로그래밍하는 데 사용될 수 있다. 프로그래밍이 한 번에 하나의 논리 페이지(logical page)씩, 하위 페이지에 뒤이어서 상위 페이지에 대해, 수행될 수 있다.
도 7a는 프로그래밍 동작의 시작시에서의 메모리 셀들의 Vth 분포를 도시하고 있다. 처음에, 모든 메모리 셀들이, 분포(700)에 의해 표현된, Er 상태에 있다.
도 7b는 제1 프로그래밍 패스에서 하위 페이지의 데이터의 프로그래밍 이후의 메모리 셀들의 Vth 분포를 도시하고 있다. 하위 페이지가 비트=1을 가지면, 연관된 메모리 셀은 분포(700)에 있고, 데이터는 x1에 의해 표현되며, 여기서 x는 아직 알려지지 않은 상위 페이지 비트이다. 하위 페이지가 비트=0을 가지면, 메모리 셀은 검증 전압(Vv1)을 사용하여, 중간 분포(INT)인, 분포(702)에 의해 표현된 바와 같은 보다 높은 Vth로 프로그래밍된다. 이 메모리 셀들의 데이터는 x0에 의해 표현된다. 중간 분포는, 최종 분포가 아니고 최종 데이터 상태를 표현하지 않기 때문에, 비교적 넓을 수 있다.
도 7c는 제2 프로그래밍 패스에서 상위 페이지의 데이터의 프로그래밍 이후의 메모리 셀들의 Vth 분포를 도시하고 있다. UP/LP=11이면, 분포(700)에 있는 연관된 메모리 셀은 분포(700)에 여전히 있고 데이터 비트들 11을 저장한다. UP/LP=01이면, 분포(700)에 있는 메모리 셀들은 VvA를 사용하여 A 상태 분포(704)로 프로그래밍된다. UP/LP=00이면, 분포(702)에 있는 메모리 셀들은 VvB를 사용하여 B 상태 분포(706)로 프로그래밍된다. UP/LP=10이면, 분포(702)에 있는 메모리 셀들은 VvC를 사용하여 C 상태 분포(708)로 프로그래밍된다. 프로그래밍이 이와 유사하게 메모리 셀당 3개 이상의 비트들로 확장될 수 있다.
도 8a 내지 도 8c는 도 5c의 프로그래밍 패스의 다른 예로서 8개의 데이터 상태들을 갖는 3-패스 프로그래밍 동작을 도시하고 있다.
도 8a는 8개의 데이터 상태들을 갖는 예시적인 3-패스 프로그래밍 동작의 시작 문턱값 분포를 도시하고 있다. 처음에, 셀들은 모두가 문턱값 (Vth) 분포(800)에 의해 표현된 바와 같은 소거된(Er) 상태에 있다. 수직 축은 셀들의 수를 나타내고 수평 축은 Vth를 나타낸다.
도 8b는 도 8a의 예시적인 3-패스 프로그래밍 동작의 제1 패스 이후에 얻어지는 문턱값 분포를 도시하고 있다. 표시된 바와 같은 쓰기 데이터에 기초하여, Er 상태에 여전히 있어야 하는 또는 A, B 및 C 상태들로 프로그래밍되어야 하는 셀들은 Vth 분포(800)에 의해 표현되는 반면, D, E, F 및 G 상태들로 프로그래밍되어야 하는 셀들은 중간(INT) 분포(802)로 프로그래밍된다. 이 프로그래밍 패스는 VvINT의 검증 전압이 사용되는 제1 중간 패스(first intermediate pass)라고 지칭될 수 있다.
도 8c는 도 8a의 예시적인 3-패스 프로그래밍 동작의 제2 패스 이후에 얻어지는 문턱값 분포를 도시하고 있다. 표시된 바와 같은 쓰기 데이터에 기초하여, Er 상태에 여전히 있어야 하는 또는 A 상태로 프로그래밍되어야 하는 셀들은 Vth 분포(800)에 의해 표현되어 있다. B 상태와 C 상태로 프로그래밍되어야 하는 셀들은 제1 중간(INT1) 분포(804)로 프로그래밍된다. D 상태와 E 상태로 프로그래밍되어야 하는 셀들은 제2 중간(INT2) 분포(806)로 프로그래밍된다. F 상태와 G 상태로 프로그래밍되어야 하는 셀들은 제3 중간(INT3) 분포(808)로 프로그래밍된다. 이 프로그래밍 패스는 VvINT1, VvINT2 및 VvINT3의 검증 전압들이 사용되는 제2 중간 패스(second intermediate pass)라고 지칭될 수 있다.
도 8d는 도 8a의 예시적인 3-패스 프로그래밍 동작의 제3 패스 이후에 얻어지는 문턱값 분포를 도시하고 있다. 표시된 바와 같은 쓰기 데이터에 기초하여, Er 상태에 여전히 있어야 하는 셀들은 Vth 분포(800)에 의해 표현되는 반면, A, B, C, D, E, F 및 G 상태들로 프로그래밍되어야 하는 셀들은 Vth 분포들(각각, 810, 812, 814, 816, 818, 820 및 822)에 의해 표현된다. 이 프로그래밍 패스는 VvA, VvB, VvC, VvD, VvE, VvF 및 VvG의 검증 전압들을 사용한다. 각각의 데이터 상태는 표시된 바와 같은 3 비트의 데이터를 표현한다.
도 9a는 8개의 데이터 상태들을 갖는 예시적인 1-패스 프로그래밍 동작의 시작 문턱값 분포를 도시하고 있다. Vth 분포(900)는 Er 상태를 표현한다.
도 9b는 도 9a의 1-패스 프로그래밍 동작의 최종 문턱값 분포를 도시하고 있다. A, B, C, D, E, F 및 G 상태들은 Vth 분포들(각각, 910, 912, 914, 916, 918, 920 및 922)에 의해 표현된다.
도 10a는 디트래핑으로 인한 Vth의 하향천이와 재프로그래밍으로 인한 Vth의 상향천이(upshift)를 나타내는 문턱 전압 분포를 도시하고 있다. 언급된 바와 같이, 디트래핑은 메모리 셀의 Vth의 하향천이를 가져온다. 예를 들어, 하나의 프로그래밍 패스 이후에, 디트래핑이 없는 이론적 상황에서, Vth 분포들(1000, 1009, 1019 및 1029)은, 각각, Er, A, B 및 C 상태들을 표현한다. Vth 분포들(1008, 1018 및 1028)은, 각각, 디트래핑으로 인해 일어나는 실제 분포에서의 A, B 및 C 상태들을 표현한다. Vth 분포들의 하부 테일이 하향천이된다. 재프로그래밍에 의해, Vth 분포들(1008, 1018 및 1028)의 하부 테일들이 Vth 분포들(각각, 1010, 1020 및 1030)을 제공하기 위해 밀어올려진다. 실제로는, 어떤 추가의 디트래핑이 일어날 수 있고, 그 결과 분포들(1009, 1019 및 1029)이 얻어질 수 있다. 이 예에서, 재프로그래밍은 하나의 프로그래밍 패스로부터의 VvA, VvB 및 VvC보다 더 높은 검증 전압(각각, VvA1, VvB1 및 VvC1)을 사용한다.
도 10b는 목표 데이터 상태들의 Vth 분포들의 폭들을 결정하는 데 사용되는 검증 전압들을 도시하고 있다. 도 5c의 단계(548a)와 관련하여 언급된 바와 같이, 디트래핑 평가 프로세스와 관련하여, 하나 이상의 데이터 상태들에 대한 Vth 폭을 결정하기 위해 하나 이상의 부가 감지 동작들이 수행될 수 있다. Vth 분포의 폭 그리고 특히 하부 테일의 범위(extent)는 재프로그래밍에서의 프로그래밍 펄스 폭, 초기 크기 또는 스텝 크기를 설정하는 데 유용할 수 있다. 부가 감지 동작들의 수를 최소화하는 하나의 접근법에서, 하나의 읽기 전압으로부터의 감지 결과들이 하나의 데이터 상태의 하부 범위(lower extent) 및 다음 하위 데이터 상태의 상부 범위(upper extent)를 결정하는 데 사용될 수 있다. 예를 들어, VrBl의 읽기 전압은 B 상태의 하부 범위 및 A 상태의 상부 범위를 결정하는 데 사용될 수 있고, VrCl의 읽기 전압은 C 상태의 하부 범위 및 B 상태의 상부 범위를 결정하는 데 사용될 수 있다. 부가의 읽기 전압들은 A 상태의 하부 범위를 결정하는 VrAl 및 C 상태의 상부 범위를 결정하는 VrCu이다. 부가의 읽기 전압들은 Vth 폭들을 결정하는 데도 사용될 수 있다.
Vth 분포의 폭의 측정치(measure)는 하부 범위 읽기 전압 미만이고 상부 범위 읽기 전압 초과인 Vth를 가지는 셀들의 수에 기초하여 제어에 의해 결정될 수 있다. 비교적 더 많은 셀들이 하부 범위 읽기 전압 미만이고 그리고/또는 상부 범위 읽기 전압 초과인 Vth를 가질 때, Vth는 비교적 더 넓다. 제조 시에 메모리 디바이스들을 테스트하는 것은 하부 범위 읽기 전압 미만이고 상부 범위 읽기 전압 초과인 Vth를 가지는 셀들의 평균 수를 결정할 수 있고, 이 수들이 메모리 디바이스의 제어에 프로그래밍될 수 있다. 프로그래밍 동작 동안, 하부 범위 읽기 전압 미만이고 그리고/또는 상부 범위 읽기 전압 초과인 Vth를 가지는 셀들의 수가 Vth 분포의 게이지(gauge)를 획득하기 위해 평균 값들과 비교될 수 있다. 임의로, 디트래핑으로 인해 하부 테일이 상부 테일보다 더 가변적일 수 있기 때문에, VrCu에서의 읽기가 생략될 수 있다. Vth 분포 폭이 비교적 더 넓을 때, 가장 낮은 Vth를 갖는 셀들이 Vth 분포를 좁히도록 충분히 밀어올려지게 하기 위해 비교적 더 강한 재프로그래밍이 사용될 수 있다. 예를 들어, 비교적 더 넓은 프로그램 펄스 및/또는 더 높은 크기의 펄스가 사용될 수 있다.
프로세스는 따라서, 하나의 프로그래밍 패스의 완료 이후에, 목표 데이터 상태들 중 적어도 하나의 목표 데이터 상태의 문턱 전압 분포의 폭의 측정치를 획득하는 것을 포함하고, 여기서 목표 데이터 상태들 중 적어도 하나에 대해, 재프로그래밍 패스에서 프로그램-검증 반복들 동안 메모리 셀 세트에 인가되는 프로그램 펄스의 폭은, 문턱 전압 분포의 폭의 측정치가 비교적 더 클 때, 비교적 더 넓다. 프로세스는, 하나의 프로그래밍 패스의 완료 이후에, 각자의 메모리 셀 서브셋 각각에 대해, 각자의 문턱 전압 분포의 폭을 결정하는 것, 및 각자의 단일 프로그램 펄스 각각의 크기를 각자의 문턱 전압 분포의 함수로서 설정하는 것을 추가로 포함하고, 여기서 크기는 각자의 문턱 전압 분포가 비교적 더 넓을 때 비교적 더 높다.
도 11a는 도 5c의 1-패스 프로그래밍의 일 예에서의 일련의 프로그램-검증 반복들을 도시하고 있다. 수평 축은 프로그램-검증 반복 횟수(PV)를 나타내고, 수직 축은 메모리 셀 세트의 제어 게이트 또는 워드 라인 전압을 나타낸다. 프로그램 펄스들의 펄스 트레인(1100), 또는 계단은 프로그래밍을 위해 선택된 워드 라인에 인가되는 일련의 프로그램 펄스들(1101 내지 1113)을 포함한다. 프로그램 펄스들의 계단에서, Vpgm_init1은 프로그램 펄스의 초기 크기이고, W1은 프로그램 펄스들의 폭이며, dVpgm1은 스텝 크기이다.
이 프로그래밍 패스는 하위 목표 데이터 상태들을 갖는 메모리 셀들이 일반적으로 상위 목표 데이터 상태들을 갖는 메모리 셀보다 먼저 프로그래밍을 완료할 것이라는 사실에 기초하여 감소된 수의 검증 테스트들을 수행한다. 상이한 목표 데이터 상태들을 갖는 일부 메모리 셀들이 동일한 프로그램-검증 반복에서 프로그래밍을 완료하도록 얼마간의 중복이 있을 것이다. 이와 같이, 주어진 목표 데이터 상태에 대해, 일부 메모리 셀들은 하위 프로그램 루프에서 프로그래밍을 완료할 것이고 다른 메모리 셀들은 상위 프로그램 루프에서 프로그래밍을 완료할 것이다.
검증되고 있는 목표 데이터 상태들에 기초하여, 일 예로서 각각의 프로그램 펄스 이후에 하나, 2개 또는 3개의 검증 펄스들이 제공된다. 예를 들어, A 상태 셀들을 검증하기 위해 크기 VvA의 검증 전압(1120)이 PV1 내지 PV3에서 인가되고, A 및 B 상태 셀들을 검증하기 위해, 각각, 크기들 VvA 및 VvB를 갖는 검증 전압 세트(1121)가 PV4 내지 PV6에서 인가되며, A, B 및 C 상태 셀들을 검증하기 위해, 각각, 크기들 VvA, VvB 및 VvC를 갖는 검증 전압 세트(1122)가 PV7 및 PV8에서 인가되며, B 및 C 상태 셀들을, 각각, 검증하기 위해 크기들 VvB 및 VvC를 갖는 검증 전압 세트(1123)가 PV9 내지 PV11에서 인가되고, C 상태 셀들을 검증하기 위해 크기 VvC를 갖는 검증 전압(1124)이 PV12 및 PV13에서 인가된다. 게다가, 검증 전압 세트(1125)는 PV13에서 프로그래밍 패스의 완료 이후에 재프로그래밍을 위한 셀들을 식별하기 위해 사용된다.
검증 테스트는 셀이 검증 전압 초과 또는 미만의 Vth를 갖는지를 결정하기 위해 각각의 검증 펄스를 사용하여 수행된다. 검증 테스트에서, 워드 라인을 따라 있는 셀들에 대해 감지 동작이 수행된다. 감지 시에 각각의 NAND 스트링에서의 전류가 기준 전류와 비교된다. 전류가 기준 전류를 초과하면, NAND 스트링 내의 셀은 도통 상태에 있는 것으로 간주되고, Vth는 검증 전압 미만이다(검증 테스트를 통과하지 못함). 전류가 기준 전류 미만이면, NAND 스트링 내의 셀은 비도통 상태에 있는 것으로 간주되고, Vth는 검증 전압 초과이다(검증 테스트를 통과함). 셀이 감지되고 검증 테스트를 받을 때, 데이터 래치들이 검증 테스트의 결과에 기초하여 업데이트될 수 있다.
도 11b는 도 11a에서의 프로그램 전압 파형(1100)의 일 예를 도시하고 있다. 실제로는, 각각의 프로그램 펄스는 보다 낮은 크기의 초기 부분(1101a)(예컨대, Vpass, 6 내지 8 V)과 보다 높은 크기의 피크 부분(1101b)(예컨대, Vpgm_init1, 15 내지 25 V)을 가질 수 있다. 하나의 접근법에서, 프로그램 펄스의 폭(W1)은 피크 부분의 폭을 지칭할 수 있다. 보다 낮은 부분은 제2 부분보다 상당히 더 낮은 크기를 가지며 따라서 선택된 메모리 셀들에 대한 프로그래밍 효과를 거의 또는 전혀 갖지 않는다. 전압을 두 단계로 증대시키는 것은 이웃하는 메모리 셀들을 방해할 수 있는 크고 갑작스런 전압 변화를 회피하는 데 도움을 준다. 더욱이, 프로그램 펄스의 피크 부분은 전형적으로 균일한 크기를 갖지만, 램프형(ramped), 계단형(stepped) 또는 톱니 형상의(saw tooth shaped) 크기와 같은, 다른 옵션들이 가능하다.
도 11c는 도 5c의 단계(545b)에 따라, 프로그래밍 속도를 검출하는 일 예를 도시하고 있다. 초기 Vth 분포(1150)는 소거된 상태를 표현한다. 일 예에서, 도 11a를 참조하면, 프로그램 펄스(1105) 이후에 PV5에서 Vth 분포(1151)에 도달하는 것으로 가정한다. 프로그램 펄스(1108) 이후에 PV8에서 Vth 분포(1152)에 도달한다. PV5는 A 상태 메모리 셀들의 프로그래밍 속도를 결정하기 위한 체크포인트를 제공할 수 있다. PV5에서, VvA 미만인 Vth를 가지는 A 상태 메모리 셀들의 수는 분포(1151)의 음영된 구역(1153)에 의해 표현된다. 이들은 그들의 검증 테스트를 통과하지 못한 A 상태 메모리 셀들이다. 이 수가 비교적 작으면, A 상태 셀들의 프로그래밍 속도는 비교적 높다. 이와 유사하게, 이 수가 비교적 높으면, A 상태 셀들의 프로그래밍 속도는 비교적 낮다. 기본 수(baseline number)는 평균 속도를 나타낼 수 있다. 예를 들어, B 및 C 상태들에 대한 프로그래밍 속도들을 결정하기 위해, PV8 및 PV11에서, 각각, B 및 C 상태들에 대한 체크포인트들이 또한 제공될 수 있다. 모든 목표 데이터 상태들에 걸친 전체적인 프로그래밍 속도는 각각의 목표 데이터 상태의 프로그래밍 속도들로부터 도출되는 평균(average), 메디안(median) 또는 다른 값에 기초하여 결정될 수 있다.
도 12a는 도 5d에 따라, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 동시에 재프로그래밍되는, 재프로그래밍 패스에서의 일련의 프로그램-검증 반복들을 도시하고 있다. 수평 축은 프로그램-검증 반복 횟수(PV)를 나타내고, 수직 축은 제어 게이트 또는 워드 라인 전압을 나타낸다. 펄스 트레인(1200)은 PV1 내지 PV8에서 프로그래밍을 위해 선택된 워드 라인에 인가되는 프로그램 펄스들(각각, 1201 내지 1208)의 계단상 연속체를 포함하는 프로그램-검증 반복 세트를 포함한다. 프로그램 펄스들의 계단에서, Vpgm_init2는 프로그램 펄스의 초기 크기이고, W2는 프로그램 펄스들의 폭이며, dVpgm2는 스텝 크기이다. 언급된 바와 같이, 이 값들은 도 11a의 하나의 프로그래밍 패스보다 더 적은 프로그램-검증 반복들을 가지는 재프로그래밍을 위해 최적화된다. 재프로그래밍의 목표는 전체 프로그래밍 패스를 수행하는 일 없이 디트래핑에 의해 야기된 Vth에서의 하향천이를 신속하게 되돌리는 것이다. 이것을 달성하기 위해, 하나의 프로그래밍 패스와 관련하여 프로그램 펄스 폭이 증가될 수 있다. 하나 또는 몇 개의(예컨대, 2개 또는 3개의) 프로그램-검증 반복들에서 Vth 분포의 하부 테일을 보다 높게 이동시키기 위해 폭이 최적화된다. 게다가, 초기 크기가 하나의 프로그래밍 패스와 비교하여 상이할 수 있다. 하나의 접근법에서, Vpgm_init2<Vpgm_init1이도록 보다 낮은 초기 크기가 사용된다. 게다가, 스텝 크기가 하나의 프로그래밍 패스와 비교하여 상이할 수 있다.
이 예에서, 각각의 프로그램 펄스 이후에 3개의 검증 펄스들의 세트(1209)가 제공된다. 예를 들어, A, B 및 C 상태 셀들을 검증하기 위해, 각각, VvA1, VvB1 및 VvC1의 검증 전압들이 PV1 내지 PV8에서 인가된다.
도 12b는 도 5e에 따라, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 개별적으로 재프로그래밍되는, 재프로그래밍 패스에서의 일련의 프로그램-검증 반복들을 도시하고 있다. 수평 축은 프로그램-검증 반복 횟수(PV)를 나타내고, 수직 축은 제어 게이트 또는 워드 라인 전압을 나타낸다. 펄스 트레인(1230)은 A, B 및 C 상태들의 결함 있는 메모리 셀들을 재프로그래밍하기 위해 3개의 개별적인 프로그램-검증 반복 세트들(각각, 1250, 1251 및 1252)을 포함한다. 각각의 프로그램-검증 반복 세트(1250, 1251 및 1252)는 PV1 내지 PV3, PV4 내지 PV6 및 PV7 내지 PV9에서, 각각, 프로그래밍을 위해 선택되는 워드 라인에 인가되는 프로그램 펄스들의 각자의 상이한 계단상 연속체(각각, 1231 내지 1233, 1234 내지 1236 및 1237 내지 1239)를 포함한다. 이 예에서, 3개의 프로그램-검증 반복들은 각각의 목표 데이터 상태를 재프로그래밍하기 위한 최대 허용 수의 프로그램-검증 반복들이다. 유의할 점은, 도면들이, 예컨대, 프로그램 펄스 폭들의 면에서, 꼭 축척대로 되어 있지 않다는 것이다. 그렇지만, 하나의 접근법에서, W4>W3>W2>W1이다.
첫 번째 계단에 대해, Vpgm_init2는 프로그램 펄스의 초기 크기이고, W2는 프로그램 펄스들의 폭이며, dVpgm2는 스텝 크기이다. 두 번째 계단에 대해, Vpgm_init3은 프로그램 펄스의 초기 크기이고, W3은 프로그램 펄스들의 폭이며, dVpgm3은 스텝 크기이다. 세 번째 계단에 대해, Vpgm_init4는 프로그램 펄스의 초기 크기이고, W4는 프로그램 펄스들의 폭이며, dVpgm4는 스텝 크기이다. 하나의 접근법에서, W2<W3<W4이고 dVpgm4>dVpgm3>dVpgm2이다. 또한 이 예에서, 프로그램 펄스들(1234 내지 1236)의 계단은 프로그램 펄스들(1231 내지 1233)의 계단과 부합되지 않는데, 그 이유는 펄스(1234)에서 계단(1251)의 첫 번째 펄스의 크기(Vpgm_init3)가 계단(1250)의 마지막 프로그램 펄스(1233)의 크기 + 스텝 크기(dVpgm2)보다 작기 때문이다.
이와 유사하게, 프로그램 펄스들(1237 내지 1239)의 계단은 프로그램 펄스들(1234 내지 1236)의 계단과 부합되지 않는데, 그 이유는 펄스(1237)에서 계단(1252)의 첫 번째 펄스의 크기(Vpgm_init4)가 계단(1251)의 마지막 프로그램 펄스(1236)의 크기 + 스텝 크기(dVpgm3)보다 작기 때문이다.
이와 같이, 프로그램 펄스들의 상이한 계단상 연속체들 중 적어도 하나(1251, 1252)는 프로그래밍 전압들의 상이한 계단상 연속체들 중 이전의 것(1250, 1251)의 프로그래밍 전압들의 계단상 연속체와 부합하지 않는 초기 크기(Vpgm_init3, Vpgm_init4)를 가진다.
도 12c는 도 5e에 따라 그리고 도 12b에 대한 대안으로서, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 개별적으로 재프로그래밍되는, 재프로그래밍 패스의 다른 예에서의 일련의 프로그램-검증 반복들을 도시하고 있다. 이 예는 프로그램 펄스들의 크기의 면에서 도 12b와 상이하다.
수평 축은 프로그램-검증 반복 횟수(PV)를 나타내고, 수직 축은 제어 게이트 또는 워드 라인 전압을 나타낸다. 펄스 트레인(1260)은 A, B 및 C 상태들의 결함 있는 메모리 셀들을 재프로그래밍하기 위해 3개의 프로그램-검증 반복 세트들(각각, 1270, 1271 및 1272)을 포함한다. 각각의 프로그램-검증 반복 세트(1270, 1271 및 1272)는 PV1 내지 PV3, PV4 내지 PV6 및 PV7 내지 PV9에서, 각각, 프로그래밍을 위해 선택되는 워드 라인에 인가되는 프로그램 펄스들의 각자의 계단상 연속체(각각, 1261 내지 1263, 1264 내지 1266 및 1267 내지 1269)를 포함한다. 이 예에서, 3개의 프로그램-검증 반복들은 각각의 목표 데이터 상태를 재프로그래밍하기 위한 최대 허용 수의 프로그램-검증 반복들이다.
첫 번째 계단에 대해, Vpgm_init2는 프로그램 펄스의 초기 크기이고, W2는 프로그램 펄스들의 폭이며, dVpgm2는 스텝 크기이다. 두 번째 계단에 대해, Vpgm_init3a는 프로그램 펄스의 초기 크기이고, W3은 프로그램 펄스들의 폭이며, dVpgm3은 스텝 크기이다. 세 번째 계단에 대해, Vpgm_init4a는 프로그램 펄스의 초기 크기이고, W4는 프로그램 펄스들의 폭이며, dVpgm4는 스텝 크기이다. 하나의 접근법에서, W2<W3<W4이고 dVpgm4>dVpgm3>dVpgm2이다. 또한 이 예에서, 프로그램 펄스들(1264 내지 1266)의 계단은 프로그램 펄스들(1261 내지 1263)의 계단과 부합되지 않는데, 그 이유는 펄스(1264)에서 계단(1264 내지 1266)의 첫 번째 펄스의 크기(Vpgm_init3a)가 계단(1261 내지 1263)의 마지막 프로그램 펄스(1263)의 크기 + 스텝 크기(dVpgm2)보다 크기 때문이다.
이와 유사하게, 프로그램 펄스들(1267 내지 1269)의 계단은 프로그램 펄스들(1264 내지 1266)의 계단과 부합되지 않는데, 그 이유는 펄스(1267)에서 계단(1267 내지 1269)의 첫 번째 펄스의 크기(Vpgm_init4a)가 계단(1264 내지 1266)의 마지막 프로그램 펄스(1266)의 크기 + 스텝 크기(dVpgm3)보다 크기 때문이다.
VvA1, VvB1 및 VvC1의 검증 전압들은 첫 번째, 두 번째 및 세 번째 프로그램-검증 반복 세트들에서 사용된다.
그에 부가하여, A 및 B 상태 셀들의 재프로그래밍 속도들을 결정하기 위한 체크포인트들이 PV3 및 PV6에서, 각각, 제공된다. 도 12d를 참조하십시오.
도 12c는 또한 재프로그래밍 동안 그들의 검증 테스트를 통과하지 못한, (예컨대, PV4에서) A 상태 셀들에 대해 또 하나의 펄스를 그리고 (예컨대, PV7에서) B 상태 셀들에 대해 또 하나의 펄스를 사용하는 옵션을 나타내고 있다. PV4에서 A 상태 셀에 대해 또는 PV7에서 B 상태 셀에 대해 검증 테스트가 사용되지 않는다. 어느 A 또는 B 상태 셀들이 또 하나의 펄스로 프로그래밍되어야 하는지를 결정하기 위해, 각각, PV3에서 A 상태 셀들에 대해 그리고 PV6에서 B 상태 셀들에 대해 검증 테스트가 사용된다. 셀을 또 하나의 펄스로 프로그래밍하는 것은 프로그램 펄스가 인가될 때, 예컨대, 셀에 연결된 비트 라인의 전압을 접지시키는 것에 의해, 프로그래밍될 셀을 인에이블시키는 것을 의미한다.
다른 옵션에서, 목표 데이터 상태에 대한 마지막 허용 프로그램 펄스가 그 목표 데이터 상태에 전용되어 있는 일련의 프로그램-검증 반복들에서 인가되었을 때, 검증 테스트가 생략될 수 있다. 예를 들어, PV3가 A 상태에 대한 마지막 허용 프로그램 펄스인 경우(예컨대, 단지 3개의 프로그램 펄스들만이 각각의 목표 데이터 상태를 프로그래밍하는 데 허용됨), A 상태 검증 테스트가 PV3에서 생략될 수 있는데, 그 이유는 어느 A 상태 셀들을 계속하여 프로그래밍할지를 결정하는 데 검증 테스트의 결과가 필요하지 않기 때문이다. 그 후에, A 상태 셀들에 대해 어떤 추가의 재프로그래밍도 수행되지 않는다.
도 12d는 도 5e의 단계(564b)에 따라, 재프로그래밍 패스에서의 프로그래밍 속도를 검출하는 일 예를 도시하고 있다. Vth 분포(1280)는 재프로그래밍의 시작시에 있어서 결함 있는 A 상태 메모리 셀들을 나타내고 도 10a에서의 Vth 분포(1008)에 대응한다. Vth 분포들(1281, 1282 및 1283)은, 각각, 프로그램 펄스들(1231, 1232 및 1233) 이후의 결함 있는 A 상태 메모리 셀들을 나타낸다. 제1 프로그램-검증 반복 세트(1250)의 끝에서, 즉 PV3에서, 영역(1285)은 검증 테스트를 통과하지 못한 결함 있는 A 상태 셀들의 수를 나타낸다. 이 수는 재프로그래밍 패스 동안의 프로그래밍 속도, 또는 재프로그래밍 속도를 가리킨다. 보다 높은 수는 보다 낮은 프로그래밍 속도와 서로 관련이 있다. 비록 프로그래밍 파라미터들이 A 상태 셀들의 재프로그래밍을 위해 최적화되었지만, 보다 느린 셀들 중 일부가 프로그램-검증 반복들의 횟수에 대한 한계로 인해 검증 테스트를 통과하지 못할 수 있다. 더욱이, 보통의 A 상태 셀들에 대해 프로그래밍 파라미터들이 최적화될 수 있고, 이 경우에 일부 보통보다 느린 A 상태 셀들은 검증 테스트를 통과하지 못할 수 있다. 그에 부가하여, 랜덤한 거동, 다이간 변동들, 프로그램-소거 사이클들의 수 및 주변 온도와 같은 다른 인자들이 성능에 영향을 미칠 수 있다. 그 결과, 재프로그래밍의 초기 부분 동안 결함 있는 셀들에 대한 재프로그래밍 속도의 메트릭을 획득하고 차후의 재프로그래밍을 수정하는 데 이 메트릭을 사용하는 것이 유용할 수 있다. 다른 데이터 상태들의 재프로그래밍 속도들이 이와 유사하게 결정될 수 있다.
예를 들어, A 상태 셀들에 대한 재프로그래밍 속도가 B 및 C 상태 셀들의 차후의 재프로그래밍을 수정하는 데 사용될 수 있다. 프로그래밍 속도가 예상된 것보다 더 낮은 경우, B 및 C 상태 셀들에 대해 그들의 프로그래밍 속도를 증가시키기 위해 초기 크기, 펄스 폭 또는 스텝 크기가 증가될 수 있다. 결함 있는 B 상태 셀들의 재프로그래밍 속도를 획득하고 C 상태 셀들의 재프로그래밍을 수정하는 데 이것을 사용하는 것이 또한 가능하다. 게다가, A 및 B 상태 셀들의 재프로그래밍 속도들이 C 상태 셀들의 재프로그래밍을 조절하는 데 사용되는 평균 값을 제공하기 위해 결합될 수 있다. 이 개념이 부가의 목표 데이터 상태들로도 확장될 수 있다.
도 13a는 도 5b의 단계들(533 및 533a)과 도 5f에 따라, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 개별적인 단일 프로그램 펄스로 재프로그래밍되는, 재프로그래밍 패스의 다른 예에서의 일련의 프로그램-검증 반복들을 도시하고 있다. 펄스 트레인(1300)은 A, B 및 C 상태들의 결함 있는 메모리 셀들을, 각각, 재프로그래밍하기 위한, W_A, W_B 및 W_C의 폭들을, 각각, 갖는 제1, 제2 및 제3 프로그램 펄스들(1301, 1302 및 1303)을 포함하고, 여기서 W_A<W_B<W_C이고 각각의 프로그램 펄스는 Vpgm_cm의 공통 크기를 갖는다. 검증 테스트가 수행되지 않는다.
도 13b는 도 5b의 단계들(533 및 533a)과 도 5f에 따라, 상이한 목표 데이터 상태들을 갖는 메모리 셀들이 개별적인 단일 프로그램 펄스로 재프로그래밍되고 각각의 프로그램 펄스가 상이한 크기를 가지는, 재프로그래밍 패스의 다른 예에서의 일련의 프로그램-검증 반복들을 도시하고 있다. 펄스 트레인(1350)은 A, B 및 C 상태들의 결함 있는 메모리 셀들을, 각각, 재프로그래밍하기 위한, PW_A, PW_B 및 PW_C의 폭들을, 각각, 갖는 제1, 제2 및 제3 프로그램 펄스들(1351, 1352 및 1353)을 포함하고, 여기서 PW_A<PW_B<PW_C이다. 또한, 프로그램 펄스들은 A, B 및 C 상태들에 대해, 각각, Vpgm_A, Vpgm_B 및 Vpgm_C의 상이한 크기들을 가진다. 검증 테스트가 수행되지 않는다.
유의할 점은, 재프로그래밍될 몇 개의 목표 데이터 상태들이 있을 때, 이웃하는 데이터 상태들을 갖는 셀들이 한꺼번에 프로그래밍될 수 있다는 것이다. 예를 들어, A, B, C, D, E, F 및 G의 목표 데이터 상태들에 대해, A 및 B 상태들이 공통의 프로그램 펄스에 의해 프로그래밍될 수 있고, C 및 D 상태들이 다른 공통의 프로그램 펄스에 의해 프로그래밍될 수 있으며, 이하 마찬가지이다.
도 14a 내지 도 14f는 상이한 프로그램 펄스 크기들에 대해 하나의 프로그래밍 패스 이후의 Vth 분포들(도 14a, 도 14b, 도 14c, 도 14d, 도 14e 및 도 14f에서의 Vth 분포들(각각, 1400, 1410, 1420, 1430, 1440 및 1450))과 1-펄스 재프로그램 이후의 Vth 분포들(도 14a, 도 14b, 도 14c, 도 14d, 도 14e 및 도 14f에서의 Vth 분포들(각각, 1401, 1411, 1421, 1431, 1441 및 1451))을 도시하고 있다. Vth 분포들은, 일 예로서, B 상태에 대한 것이다. 각각의 도면에서 재프로그래밍에 대한 프로그램 펄스 폭은 동일하다. 프로그램 펄스는 도 14a에서 가장 낮은 크기를 갖고, 도 14f에서의 가장 높은 크기까지 각각의 연속적인 도면에서 똑같은 증분들만큼 증가한다. 하나의 프로그래밍 패스 이후의 Vth 분포들은 디트래핑으로 인해 비교적 넓다.
각각의 도면은 1-펄스 재프로그램에 의한 Vth 분포가 프로그램 펄스 크기에 따라 어떻게 변하는지를 나타내고 있다. 이 예의 가장 낮은 프로그램 펄스 크기에 대해, 도 14a에서, Vth 분포(1401)는 Vth 분포(1400)와 유사하며, 이는 재프로그래밍의 이익이 없다는 것을 나타낸다. 그 다음의 가장 높은 프로그램 펄스 크기에 대해, 도 14b에서, Vth 분포(1411)는 Vth 분포(1410)와 비교하여 상부 테일은 동일하면서 하부 테일에서 약간의 증가를 갖는다. 그 다음의 가장 높은 프로그램 펄스 크기에 대해, 도 14c에서, Vth 분포(1421)는 Vth 분포(1420)와 비교하여 상부 테일은 동일하면서 하부 테일의 보다 상당한 증가를 갖는다. 그 다음의 가장 높은 프로그램 펄스 크기에 대해, 도 14d에서, Vth 분포(1431)는 Vth 분포(1430)와 비교하여 상부 테일은 본질적으로 동일하면서 하부 테일의 훨씬 더 상당한 증가를 갖는다. 그 다음의 가장 높은 프로그램 펄스 크기에 대해, 도 14e에서, Vth 분포(1441)는 Vth 분포(1440)와 비교하여 상부 테일도 상당한 증가를 가지면서 하부 테일의 훨씬 더 상당한 증가를 갖는다. 가장 높은 프로그램 펄스 크기에 대해, 도 14f에서, Vth 분포(1451)는 Vth 분포(1450)와 비교하여 상부 테일도 보다 상당한 증가를 가지면서 하부 테일의 훨씬 더 상당한 증가를 갖는다.
도면들은 각각의 목표 데이터 상태를 재프로그래밍하기 위한 최적의 프로그램 펄스 크기가 선택될 수 있다는 것을 나타낸다. 크기가 너무 낮으면, 가장 느린 셀들의 Vth를 밀어올리는 것으로 충분하지 않을 수 있다. 크기가 너무 높으면, 가장 빠른 프로그래밍 셀들의 Vth가 너무 많이 증가하고 Vth 분포를 넓어지게 할 것이다. 단일 펄스 재프로그래밍이 효과적인 크기들의 범위가 있다.
도 14d는 최적의 프로그램 펄스 크기를 제공하는데, 그 이유는 그 결과 상부 테일을 증가시키는 일 없이 하부 테일의 상당한 증가가 얻어지기 때문이다. 그 결과, Vth가 제공된 예들 중에서 가장 좁다.
도 15a 내지 도 15f는 상이한 프로그램 펄스 폭들에 대해 하나의 프로그래밍 패스 이후의 Vth 분포들(도 15a, 도 15b, 도 15c, 도 15d, 도 15e 및 도 15f에서의 Vth 분포들(각각, 1500, 1510, 1520, 1530, 1540 및 1550))과 1-펄스 재프로그램 이후의 Vth 분포들(도 15a, 도 15b, 도 15c, 도 15d, 도 15e 및 도 15f에서의 Vth 분포들(각각, 1501, 1511, 1521, 1531, 1541 및 1551))을 도시하고 있다. Vth 분포들은, 일 예로서, B 상태에 대한 것이다. 각각의 도면에서 재프로그래밍에 대한 프로그램 펄스 크기는 동일하다. 프로그램 펄스는 도 15a에서 가장 작은 폭을 갖고, 도 15f에서의 가장 큰 폭까지 각각의 연속적인 도면에서 똑같은 증분들만큼 증가한다. 하나의 프로그래밍 패스 이후의 Vth 분포들은 디트래핑으로 인해 비교적 넓다.
각각의 도면은 1-펄스 재프로그램에 의한 Vth 분포가 프로그램 펄스 폭에 따라 어떻게 변하는지를 나타내고 있다. 이 예의 가장 작은 프로그램 펄스 폭에 대해, 도 15a에서, Vth 분포(1501)는 Vth 분포(1500)와 유사하며, 이는 재프로그래밍의 이익이 없다는 것을 나타낸다. 그 다음의 가장 높은 프로그램 펄스 폭에 대해, 도 15b에서, Vth 분포(1511)는 Vth 분포(1510)와 비교하여 상부 테일은 동일하면서 하부 테일에서 약간의 증가를 갖는다. 또한 도 15b에서, 프로그램 펄스 폭이 하나의 프로그래밍 패스와 재프로그래밍에서 동일하다. 그 다음의 가장 높은 프로그램 펄스 폭에 대해, 도 15c에서, Vth 분포(1521)는 Vth 분포(1520)와 비교하여 상부 테일은 동일하면서 하부 테일의 보다 상당한 증가를 갖는다. 그 다음의 가장 높은 프로그램 펄스 폭에 대해, 도 15d에서, Vth 분포(1531)는 Vth 분포(1530)와 비교하여 상부 테일은 본질적으로 동일하면서 하부 테일의 훨씬 더 상당한 증가를 갖는다. 그 다음의 가장 높은 프로그램 펄스 폭에 대해, 도 15e에서, Vth 분포(1541)는 Vth 분포(1540)와 비교하여 상부 테일도 상당한 증가를 가지면서 하부 테일의 훨씬 더 상당한 증가를 갖는다. 가장 높은 프로그램 펄스 폭에 대해, 도 15f에서, Vth 분포(1551)는 Vth 분포(1550)와 비교하여 상부 테일도 보다 상당한 증가를 가지면서 하부 테일의 훨씬 더 상당한 증가를 갖는다.
도면들은 각각의 목표 데이터 상태를 재프로그래밍하기 위한 최적의 프로그램 펄스 폭이 선택될 수 있다는 것을 나타낸다. 폭이 너무 낮으면, 가장 느린 셀들의 Vth를 밀어올리는 것으로 충분하지 않을 수 있다. 폭이 너무 높으면, 가장 빠른 프로그래밍 셀들의 Vth가 너무 많이 증가하고 Vth 분포를 넓어지게 할 것이다. 단일 펄스 재프로그래밍이 효과적인 폭들의 범위가 있다.
이 예에서, 도 15d는 최적의 프로그램 펄스 폭을 제공하는데, 그 이유는 그 결과 상부 테일을 증가시키는 일 없이 하부 테일의 상당한 증가가 얻어지기 때문이다. 그 결과, Vth가 제공된 예들 중에서 가장 좁다.
재프로그래밍을 위해 보다 긴 프로그램 펄스 폭을 사용하는 것은, 좁은 Vth 분포 및 디트래핑에 대한 보상을 여전히 달성하면서, 재프로그래밍에서의 프로그램 펄스들의 총수를 감소시킬 수 있다. 프로그램 펄스가 충분히 넓을 때, 좁은 Vth 분포를 달성하기 위해 각각의 데이터 상태에 대해 심지어 하나의 펄스만을 사용하는 것으로 충분할 수 있다.
도 16a는 도 14a 내지 도 14f에 따라, 하나의 프로그래밍 패스 이후의 Vth 폭(라인(1600), 6 시그마 폭), 및 1-펄스 재프로그램 이후에 상이한 프로그램 펄스 크기들로 달성되는 Vth 폭들(라인(1601))을 나타내는, Vth 폭 대 프로그램 펄스 크기를 도시하고 있다. 펄스 크기가 그의 가장 낮은 값을 초과하여 증가함에 따라, Vth 폭은 최적 값에 도달할 때까지 감소한다. 펄스 크기의 보다 높은 값들에 대해, Vth 폭이 증가한다.
도 16b는 도 15a 내지 도 15f에 따라, 하나의 프로그래밍 패스 이후의 Vth 폭(라인(1610), 6 시그마 폭), 및 1-펄스 재프로그램 이후에 상이한 프로그램 펄스 폭들로 달성되는 Vth 폭들(라인(1611))을 나타내는, Vth 폭 대 프로그램 펄스 폭을 도시하고 있다. 펄스 폭이 그의 가장 낮은 값을 초과하여 증가함에 따라, Vth 폭은 최적 값에 도달할 때까지 감소한다. 펄스 폭의 보다 높은 값들에 대해, Vth 폭이 증가한다.
도 16c는 하나의 프로그래밍 패스 이후의 Vth 폭(라인(1620), 6 시그마 폭), 및 증분 스텝 펄스 재프로그래밍 패스 이후에 상이한 프로그램 펄스 폭들로 달성되는 Vth 폭들(라인들(1621 내지 1624))을 나타내는, 상이한 프로그램 펄스 폭 값들에 대한 Vth 폭 대 초기 프로그램 펄스 크기를 도시하고 있다. 라인(1621)은 가장 작은 펄스 폭을 나타내고, 라인(1624)은 가장 긴 펄스 폭을 나타낸다. 화살표(1625)는 프로그램 펄스 폭이 증가함에 따라 Vth 폭이 감소하는 것을 나타낸다.
재프로그래밍 패스에 대한 프로그램 펄스의 최적의 초기 크기가 프로그램 펄스 폭에 기초하여 선택될 수 있다. 프로그램 펄스가 비교적 넓을 때, 과잉 프로그래밍(over programming)을 피하기 위해 프로그램 펄스의 최적의 초기 크기는 비교적 낮다.
도 16d는 예시적인 프로그래밍 패스(라인(1640)) 및 동일한 폭의 프로그램 펄스들을 사용하는 연관된 전체 재프로그래밍(라인(1641)) 이후의 그리고 다른 예시적인 프로그래밍 패스(라인(1642)) 및 보다 긴 폭의 프로그램 펄스를 사용하는 연관된 데이터 상태당 1-펄스 재프로그래밍(라인(1643)) 이후의 로그 스케일 폭에서의 셀들의 수 대 Vth를 도시하고 있다. Vth 분포의 폭은 보다 긴 프로그램 펄스에 의한 데이터 상태별 1-펄스 재프로그래밍 또는 보다 짧은 프로그램 펄스에 의한 전체 재프로그래밍과 유사하다. 일 예로서, 전체 재프로그래밍은 20개 이상의 프로그램-검증 반복들을 사용할 수 있다. 따라서, 하나의 펄스 또는 감소된 수의 펄스들을 사용하는 재프로그래밍은 상당한 시간 절감을 가져온다.
도 16e는 하나의 프로그래밍 패스(라인(1650)) 이후의 그리고 증분 스텝 펄스 재프로그래밍 패스(라인(1651)) 이후의 로그 스케일 폭에서의 셀들의 수 대 Vth를 도시하고 있으며, 여기서 양 경우에 동일한 펄스 폭이 사용된다. 이 예에서, 재프로그래밍에서 11개의 프로그램 루프들이 사용되었다.
도 16f는 하나의 프로그래밍 패스(라인(1660)) 이후의 그리고 증분 스텝 펄스 재프로그래밍 패스(라인(1661)) 이후의 로그 스케일 폭에서의 셀들의 수 대 Vth를 도시하고 있으며, 여기서 증분 스텝 펄스 재프로그래밍 패스에 대해 보다 긴 펄스 폭이 사용된다. 이 예에서, 6개의 프로그램 루프들이 재프로그래밍에서 사용되었고, 펄스 폭은 하나의 프로그래밍 패스에서보다 약 2x의 인자만큼 더 길었다. Vth 분포 폭의 감소는 도 16e에서의 감소와 비슷한 반면, 총 재프로그래밍 시간은 약 1/3만큼 감소된다. 비록 재프로그래밍이 도 16e에서 보다 긴 펄스 폭을 사용하지만, 보다 적은 프로그램 펄스들이 인가된다. 그에 부가하여, 전압들을 램프업(ramp up) 및 램프다운(ramp down)시키는 데 보다 적은 시간이 소비된다. 프로그램 펄스의 결합된 랩프업 및 램프다운 시간이 프로그램 펄스 폭보다 더 길 수 있다.
도 17a는 모든 데이터 상태들의 공통의 또는 개별적인 재프로그래밍에 의한 증분 스텝 펄스 재프로그래밍에 대한, 프로그램 펄스 폭(W)(라인(1700)) 대 프로그래밍 속도, 재프로그래밍되는 셀들의 수 또는 Vth 폭의 플롯을 도시하고 있다. 예를 들어, 도 11c와 관련하여 언급된 바와 같이, 메모리 셀들의 프로그래밍 속도가 이전의 전체 프로그래밍 패스로부터 결정될 수 있고, 이 정보가 재프로그래밍에서의 펄스 폭과 같은 프로그래밍 파라미터들을 설정하는 데 사용될 수 있다.
일반적으로, 비교적 더 느린 프로그래밍 속도, 예컨대, 기본 레벨 미만의 속도는 비교적 더 강한 재프로그래밍이 정당화된다는 것을 나타낸다. 비교적 더 강한 재프로그래밍은 비교적 더 긴 W를 사용하여 구현될 수 있다.
하나의 접근법에서, 프로그래밍 속도는 목표 데이터 상태들 전부에 걸친 평균 프로그래밍 속도일 수 있다. 이와 유사하게, 재프로그래밍되는 셀들의 수는, 하나의 접근법에서, 목표 데이터 상태들 전부에 걸친 평균, 또는 목표 데이터 상태에 관계없이 재프로그래밍되는 모든 셀들의 합일 수 있다.
또한 예를 들어, 도 12c와 관련하여 언급된 바와 같이, 하나의 목표 데이터 상태의 결함 있는 셀들의 재프로그래밍 속도는 하나 이상의 다른 목표 데이터 상태들의 결함 있는 셀들의 재프로그래밍을 조절하는 데 사용될 수 있다. 일반적으로, 하나의 목표 데이터 상태의 결함 있는 셀들에 대한 비교적 더 느린 프로그래밍 속도는 하나 이상의 다른 목표 데이터 상태들의 결함 있는 셀들의 재프로그래밍을 위해 비교적 더 강한 재프로그래밍(예컨대, 더 긴 펄스 폭)이 정당화된다는 것을 나타낸다.
메모리 셀들 간에 비교적 더 높은 양의 디트래핑이 있을 때 재프로그래밍되는 셀들의 수가 비교적 더 클 것이다. 일반적으로, 비교적 더 많은 수의 재프로그래밍되는 메모리 셀들, 예컨대, 기본 레벨 초과의 수는 비교적 더 강한 재프로그래밍이 정당화된다는 것을 나타낸다. 비교적 더 많은 수의 메모리 셀들이 재프로그래밍될 때, 각각의 데이터 상태의 Vth 분포의 하부 테일이 더 낮을 것으로 예상된다. 하부 테일의 하단 부분, 예컨대, 가장 많은 디트래핑 및 가장 큰 Vth 하향천이를 갖는 셀들을 밀어올리기 위해 비교적 더 강한 재프로그래밍이 표시된다.
Vth 폭은 또한 메모리 셀들 간에 비교적 더 많은 양의 디트래핑이 있음으로써 비교적 더 넓은 W가 표시될 때 비교적 더 클 것이다.
도 17b는 각각의 데이터 상태의 개별적인 재프로그래밍에 의한 증분 스텝 펄스 재프로그래밍 또는 데이터 상태별 1-펄스 재프로그래밍에 대한, 프로그램 펄스 폭(W) 대 프로그래밍 속도 또는 재프로그래밍되는 셀들의 수의 플롯을 도시하고 있다. 각각의 목표 데이터 상태의 재프로그래밍을 위해 W가 최적화될 수 있다. 도 17a에서와 같이, 비교적 더 느린 프로그래밍 속도 및 비교적 더 많은 수의 재프로그래밍되는 메모리 셀들은 비교적 더 긴 W가 정당화된다는 것을 나타낸다. 더욱이, 주어진 프로그래밍 속도에 대해, 하위 목표 데이터 상태보다 상위 목표 데이터 상태에 대해 비교적 더 긴 W가 정당화된다. 더욱이, 주어진 프로그래밍 속도 및 주어진 목표 데이터 상태에 대해, 증분 스텝 펄스 재프로그래밍보다 데이터 상태별 1-펄스 재프로그래밍에 대해 비교적 더 긴 W가 정당화된다. 라인들(1710, 1711 및 1712)은, 각각, A, B 및 C 상태들의 증분 스텝 펄스 재프로그래밍과 연관되어 있다. 라인들(1713, 1714 및 1715)은, 각각, A, B 및 C 상태들의 단일 펄스 재프로그래밍과 연관되어 있다.
이전과 같이, 재프로그래밍되는 비교적 더 많은 수의 셀들 또는 비교적 더 큰 Vth 폭은 비교적 더 넓은 W가 사용되어야만 한다는 것을 나타낸다.
도 17c는 재프로그래밍에서의 프로그램 펄스 크기(Vpgm) 또는 스텝 크기(dVpgm) 대 프로그램 펄스 폭(W)의 플롯(라인(1720))을 도시하고 있다. 비교적 더 큰 W가 재프로그래밍에서 사용될 때, 과잉 프로그래밍을 피하기 위해 전체 프로그래밍 패스와 비교하여 프로그램 펄스 크기(Vpgm) 및/또는 스텝 크기(dVpgm)가 감소될 수 있다. 이것은, 상이한 목표 데이터 상태들의 개별적인 또는 공통의 재프로그래밍에 대해, 1-펄스 및 증분 스텝 펄스 재프로그래밍 둘 다에 적용될 수 있다. 데이터 상태별 1-펄스 재프로그래밍의 경우, 목표 데이터 상태당 하나의 프로그램 펄스 크기가 있다. 증분 스텝 펄스 재프로그래밍의 경우, 프로그램 펄스 크기가 목표 데이터 상태들이 개별적으로 재프로그래밍될 때는 각각의 목표 데이터 상태에 대한 초기 크기(Vpgm_init)이거나, 목표 데이터 상태들이 동시에 재프로그래밍될 때는 모든 목표 데이터 상태들에 대한 초기 크기(Vpgm_init)일 수 있다.
도 17d는 도 5c의 단계(545b) 또는 도 5e의 단계(564b)에 따라, 프로그래밍 속도 대 다양한 프로그래밍 메트릭들의 플롯(라인(1730))을 도시하고 있다. 프로그래밍 메트릭들은 명시된 수의 셀들이 검증 테스트를 통과하는 데 필요한 반복들의 수, 체크포인트에서 검증 테스트를 통과하지 못하는 셀들의 수, 또는 프로그래밍을 완료하기 위한 프로그램-검증 반복들의 수를 포함한다. 메트릭들의 비교적 더 높은 값은 비교적 더 높은 프로그래밍 속도를 나타낸다. 각각의 목표 데이터 상태에 대해 각각의 메트릭이 결정될 수 있다. 이 메트릭들을 사용하여, 연관된 로직에 의한 제어는 프로그래밍 속도를 결정하고 최적의 프로그램 펄스 폭, 크기 및/또는 스텝 크기를 결정할 수 있다. 예를 들어, 제어는 메트릭들과 상호 참조되는 값들의 테이블들을 사용할 수 있다. 또는, 제어는 메트릭들 및/또는 프로그래밍 속도의 함수인 방정식들을 평가할 수 있다.
명시된 수의 셀들이 검증 테스트를 통과하기 위해 필요한 반복들의 수에 관계없이, 이것은, 예컨대, 목표 데이터 상태의 셀들의 프로그래밍을 완료하기 위해 필요한 프로그램-검증 반복들의 수일 수 있고, 여기서 명시된 수는 그 목표 데이터 상태의 셀들 모두 또는 거의 모두(예컨대, 95%)를 나타낸다. 예를 들어, 도 11a에서, A 상태 셀들의 프로그래밍이 PV8(8번의 반복)에서 완료된다. 다른 예로서, 명시된 수는 A 상태 셀들의 더 작은 퍼센트를 나타낼 수 있다. 예를 들어, A 상태 셀들의 80%가 PV6에서 검증 테스트를 통과할 수 있다. 목표 데이터 상태에 대해 검증 테스트를 통과하는 셀들의 수의 카운트는 각각의 프로그램-검증 반복에서 제어 회로에 의해 행해질 수 있다. 카운트가 명시된 레벨을 초과하는 반복이 저장되고, 그 목표 데이터 상태의 재프로그래밍에 대한 프로그래밍 파라미터들을 설정하기 위해 프로그래밍 속도를 결정하는 데 사용될 수 있다.
체크포인트에서 검증 테스트를 통과하지 못하는 셀들의 수에 관계없이, 이 수는, 예를 들어, A 상태 셀들에 대해, 도 11a에서 PV3에서의 A 상태 체크포인트에서 결정될 수 있다. 그 수가 저장되고, 그 목표 데이터 상태의 재프로그래밍에 대한 프로그래밍 파라미터들을 설정하기 위해 프로그래밍 속도를 결정하는 데 사용될 수 있다.
프로그래밍을 완료하기 위한 프로그램-검증 반복들의 수에 관계없이, 예를 들어, 도 11a에서, A 상태 셀들의 프로그래밍이 PV8(8번의 반복)에서 완료된다.
전체 프로그래밍 패스에서 그리고/또는 재프로그래밍에서 메트릭들이 결정될 수 있다. 예를 들어, 재프로그래밍에서, 도 12d와 관련하여 논의된 바와 같이, 영역(1285)은 세 번째 프로그램-검증 반복에서 검증 레벨을 통과하지 못한 결함 있는 A 상태 셀들의 부분 또는 카운트를 나타낸다.
도 18a는 소거된 메모리 셀에 대한 래치 세트에서의 비트 조합을 도시하고 있다. 도 1c와 관련하여 언급된 바와 같이, 래치 세트는 각각의 비트 라인 그리고 워드 라인에 연결된 메모리 셀 세트 내의 각각의 메모리 셀과 연관될 수 있다. 각각의 래치 세트는 셀이 소거된 상태에 여전히 있어야 하는지 목표 데이터 상태로 프로그래밍되어야 하는지를 나타낸다. 각각의 래치 세트는 또한 셀이 재프로그래밍되어야 하는지를 나타낼 수 있다. 여기서, 비트 조합은 11x(LDL/UDL/VDL)이고, 여기서 x는 0 또는 1일 수 있다. LDL/UDL=11은 소거된 상태를 가리킨다.
도 18b는 A-상태 메모리 셀에 대한 래치 세트를 도시하고 있으며, 여기서 하나의 비트 조합 (010)은 셀이 프로그래밍 또는 재프로그래밍되어야 한다는 것을 나타내고, 다른 비트 조합 (011)은, 하나의 프로그래밍 패스 동안 그리고/또는 재프로그래밍 동안, 셀이 검증 테스트를 통과했다는 것을 나타낸다. 비트 조합이 처음에 010이고, 여기서 LDL/UDL=01은 A 상태를 가리킨다. 전체 프로그래밍 패스에서 검증 테스트를 통과하는 A 상태 셀에 대해, 비트 조합은 011로 변경된다. VDL=1은 셀이 프로그래밍 패스의 나머지 동안 잠금된 상태에 있다는 것을 프로그래밍 회로부에 알려준다. 이 셀이 (예컨대, 도 11a에서 검증 전압 세트(1125)를 사용하여) 디트래핑 평가 프로세스에서 검증 테스트를 통과하면, 비트 조합은 011에 여전히 있고, 재프로그래밍 동안, VDL=1은 셀이 재프로그래밍되어서는 안된다는 것을 나타낸다. 이 셀이 디트래핑 평가 프로세스에서 검증 테스트를 통과하지 못하면, 비트 조합은 다시 010으로 변하고, 재프로그래밍 동안, VDL=0은 셀이 재프로그래밍되어야 한다는 것을 나타낸다.
전체 프로그래밍 패스에서 검증 테스트를 통과하지 못하는 A 상태 셀에 대해, 비트 조합은 010에 여전히 있다. 이 셀이 디트래핑 평가 프로세스에서 검증 테스트를 통과하면, 비트 조합은 011로 변하고, 재프로그래밍 동안, VDL=1은 셀이 재프로그래밍되어서는 안된다는 것을 나타낸다. 이 셀이 또한 디트래핑 평가 프로세스에서 검증 테스트를 통과하지 못하면, 비트 조합은 010에 여전히 있고, 재프로그래밍 동안, VDL=0은 셀이 재프로그래밍되어야 한다는 것을 나타낸다.
도 18c는 B-상태 메모리 셀에 대한 래치 세트를 도시하고 있으며, 여기서 하나의 비트 조합 (000)은 셀이 프로그래밍 또는 재프로그래밍되어야 한다는 것을 나타내고, 다른 비트 조합 (001)은, 하나의 프로그래밍 패스 동안 그리고/또는 재프로그래밍 동안, 셀이 검증 테스트를 통과했다는 것을 나타낸다. 비트 조합이 처음에 000이고, 여기서 LDL/UDL=00은 B 상태를 가리킨다. 전체 프로그래밍 패스에서 검증 테스트를 통과하는 B 상태 셀에 대해, 비트 조합은 001로 변경된다. VDL=1은 셀이 프로그래밍 패스의 나머지 동안 잠금된 상태에 있다는 것을 프로그래밍 회로부에 알려준다. 이 셀이 디트래핑 평가 프로세스에서 검증 테스트를 통과하면, 비트 조합은 001에 여전히 있고, 재프로그래밍 동안, VDL=1은 셀이 재프로그래밍되어서는 안된다는 것을 나타낸다. 이 셀이 디트래핑 평가 프로세스에서 검증 테스트를 통과하지 못하면, 비트 조합은 다시 000으로 변하고, 재프로그래밍 동안, VDL=0은 셀이 재프로그래밍되어야 한다는 것을 나타낸다.
전체 프로그래밍 패스에서 검증 테스트를 통과하지 못하는 B 상태 셀에 대해, 비트 조합은 000에 여전히 있다. 이 셀이 디트래핑 평가 프로세스에서 검증 테스트를 통과하면, 비트 조합은 001로 변하고, 재프로그래밍 동안, VDL=1은 셀이 재프로그래밍되어서는 안된다는 것을 나타낸다. 이 셀이 또한 디트래핑 평가 프로세스에서 검증 테스트를 통과하지 못하면, 비트 조합은 000에 여전히 있고, 재프로그래밍 동안, VDL=0은 셀이 재프로그래밍되어야 한다는 것을 나타낸다.
도 18d는 C-상태 메모리 셀에 대한 래치 세트를 도시하고 있으며, 여기서 하나의 비트 조합 (100)은 셀이 프로그래밍 또는 재프로그래밍되어야 한다는 것을 나타내고, 다른 비트 조합 (101)은, 하나의 프로그래밍 패스 동안 그리고/또는 재프로그래밍 동안, 셀이 검증 테스트를 통과했다는 것을 나타낸다. 비트 조합이 처음에 100이고, 여기서 LDL/UDL=10은 C 상태를 가리킨다. 전체 프로그래밍 패스에서 검증 테스트를 통과하는 C 상태 셀에 대해, 비트 조합은 101로 변경된다. VDL=1은 셀이 프로그래밍 패스의 나머지 동안 잠금된 상태에 있다는 것을 프로그래밍 회로부에 알려준다. 이 셀이 디트래핑 평가 프로세스에서 검증 테스트를 통과하면, 비트 조합은 101에 여전히 있고, 재프로그래밍 동안, VDL=1은 셀이 재프로그래밍되어서는 안된다는 것을 나타낸다. 이 셀이 디트래핑 평가 프로세스에서 검증 테스트를 통과하지 못하면, 비트 조합은 다시 100으로 변하고, 재프로그래밍 동안, VDL=0은 셀이 재프로그래밍되어야 한다는 것을 나타낸다.
전체 프로그래밍 패스에서 검증 테스트를 통과하지 못하는 C 상태 셀에 대해, 비트 조합은 100에 여전히 있다. 이 셀이 디트래핑 평가 프로세스에서 검증 테스트를 통과하면, 비트 조합은 101로 변하고, 재프로그래밍 동안, VDL=1은 셀이 재프로그래밍되어서는 안된다는 것을 나타낸다. 이 셀이 또한 디트래핑 평가 프로세스에서 검증 테스트를 통과하지 못하면, 비트 조합은 100에 여전히 있고, 재프로그래밍 동안, VDL=0은 셀이 재프로그래밍되어야 한다는 것을 나타낸다.
도 19는 메모리 셀들(1900 내지 1915) 및 연관된 비트 라인들(각각, 1920 내지 1935)을 포함하는, 예시적인 메모리 셀 세트(1950)를 도시하고 있다. 단순화된 예에서, subsetA는 목표 데이터 상태로서 A 상태를 갖는 메모리 셀들을 포함하고, subsetB는 목표 데이터 상태로서 B 상태를 갖는 메모리 셀들을 포함하며, subsetC는 목표 데이터 상태로서 C 상태를 갖는 메모리 셀들을 포함하고, subsetE는 E 상태에 있는 메모리 셀들을 포함한다. subsetA에서, 메모리 셀(1900)은 재프로그래밍을 거치고, 메모리 셀들(1901 내지 1903)은 재프로그래밍을 거치지 않는다. subsetB에서, 메모리 셀(1904)은 재프로그래밍을 거치고, 메모리 셀들(1905 내지 1907)은 재프로그래밍을 거치지 않는다. subsetC에서, 메모리 셀(1908)은 재프로그래밍을 거치고, 메모리 셀들(1909 내지 1911)은 재프로그래밍을 거치지 않는다. subsetE에서, 메모리 셀들(1912 내지 1915)은 재프로그래밍을 거치지 않는다. 일반적으로, 모든 메모리 셀들의 1 내지 20%와 같은, 메모리 셀들의 일부는 재프로그래밍을 거칠 것이다.
그에 따라, 일 실시예에서, 메모리 디바이스에서 프로그래밍하는 방법은 하나의 프로그래밍 패스에서 메모리 셀 세트에 대해 하나의 프로그래밍 패스의 완료 때까지 복수의 프로그램-검증 반복들을 수행하는 단계 - 메모리 셀 세트는 각자의 메모리 셀 서브셋들을 포함하고, 각자의 메모리 셀 서브셋 각각은 각자의 검증 전압에 의해 정의된 각자의 목표 데이터 상태를 가짐 -; 하나의 프로그래밍 패스의 완료 이후에, 각자의 검증 전압 미만인 문턱 전압을 가지는 각자의 목표 데이터 상태 각각의 메모리 셀들을 식별하기 위해 검증 테스트를 수행하는 것에 의해, 재프로그래밍이 정당화되는 각자의 목표 데이터 상태 각각의 메모리 셀들을 식별하는 단계; 및 재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각의 메모리 셀들을, 각자의 단일 프로그램 펄스를 사용하여 그리고 검증 동작을 수행하는 일 없이, 재프로그래밍하는 단계 - 각자의 목표 데이터 상태 각각에 대해, 각자의 단일 프로그램 펄스들의 폭은 하나의 프로그래밍 패스에서 프로그램-검증 반복들 동안 메모리 셀 세트에 인가되는 프로그램 펄스들의 폭보다 더 긺 - 를 포함한다.
다른 실시예에서, 메모리 디바이스는 각자의 메모리 셀 서브셋들을 포함하는 메모리 셀 세트 - 각자의 메모리 셀 서브셋 각각은 각자의 검증 전압에 의해 정의되는 각자의 목표 데이터 상태를 가짐 -; 및 제어 회로를 포함한다. 제어 회로는 하나의 프로그래밍 패스에서 메모리 셀 세트에 대해 하나의 프로그래밍 패스의 완료 때까지 복수의 프로그램-검증 반복들을 수행하고; 하나의 프로그래밍 패스의 완료 이후에, 각자의 검증 전압 미만인 문턱 전압을 가지는 각자의 목표 데이터 상태 각각의 메모리 셀들을 식별하기 위해 검증 테스트를 수행하는 것에 의해, 재프로그래밍이 정당화되는 각자의 목표 데이터 상태 각각의 메모리 셀들을 식별하며; 재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각의 메모리 셀들을, 각자의 단일 프로그램 펄스를 사용하여 그리고 검증 동작을 수행하는 일 없이, 재프로그래밍하며, 각자의 목표 데이터 상태 각각에 대해, 각자의 단일 프로그램 펄스들의 폭은 하나의 프로그래밍 패스에서 프로그램-검증 반복들 동안 메모리 셀 세트에 인가되는 프로그램 펄스들의 폭보다 더 길다.
다른 실시예에서, 메모리 디바이스에서 프로그래밍하는 방법은 하나의 프로그래밍 패스에서 메모리 셀 세트에 대해 하나의 프로그래밍 패스의 완료 때까지 복수의 프로그램-검증 반복들을 수행하는 단계 - 메모리 셀 세트는 검증 전압에 의해 정의된 목표 데이터 상태를 가지는 메모리 셀 서브셋을 포함함 -; 하나의 프로그래밍 패스의 완료 이후에, 각자의 검증 전압 미만인 문턱 전압을 가지는 목표 데이터 상태의 메모리 셀들을 식별하기 위해 검증 테스트를 수행하는 것에 의해, 재프로그래밍이 정당화되는 목표 데이터 상태의 메모리 셀들을 식별하는 단계; 및 재프로그래밍이 정당화되는 메모리 셀 서브셋의 메모리 셀들을, 단일 프로그램 펄스를 사용하여 그리고 검증 동작을 수행하는 일 없이, 재프로그래밍하는 단계 - 단일 프로그램 펄스들의 폭은 하나의 프로그래밍 패스에서 프로그램-검증 반복들 동안 메모리 셀 세트에 인가되는 프로그램 펄스들의 폭보다 더 긺 - 를 포함한다.
본 발명의 이상의 상세한 설명은 예시 및 설명을 위해 제공되었다. 이 설명은 총망라한 것으로도 본 발명을 개시된 정확한 형태로 제한하는 것으로도 의도되어 있지 않다. 이상의 교시내용을 바탕으로 많은 수정들 및 변형들이 가능하다. 기술된 실시예들은, 본 기술분야의 다른 통상의 기술자들이 생각되는 특정의 용도에 적합한 다양한 실시예들 및 다양한 수정들에서 본 발명을 가장 잘 이용할 수 있게 해주도록, 본 발명의 원리들 및 그의 실제 응용분야들을 가장 잘 설명하기 위해 선택되었다. 본 발명의 범주는 본원에 첨부된 청구항들에 의해 한정되는 것으로 의도되어 있다.

Claims (15)

  1. 메모리 디바이스에서 프로그래밍하는 방법으로서,
    하나의 프로그래밍 패스에서 메모리 셀 세트(1950)에 대해 상기 하나의 프로그래밍 패스의 완료 때까지 복수의 프로그램-검증 반복들(PV1 내지 PV13)을 수행하는 단계 - 상기 메모리 셀 세트는 각자의 메모리 셀 서브셋들(SubsetA, SubsetB, SubsetC)을 포함하고, 각자의 메모리 셀 서브셋 각각은 각자의 검증 전압(VvA, VvB, VvC)에 의해 정의된 각자의 목표 데이터 상태를 가짐 -;
    상기 하나의 프로그래밍 패스의 상기 완료 이후에, 각자의 검증 전압(VvA, VvB, VvC; VvA1, VvB1, VvC1) 미만인 문턱 전압을 가지는 각자의 목표 데이터 상태 각각의 메모리 셀들을 식별하기 위해 검증 테스트를 수행하는 것에 의해, 재프로그래밍이 정당화되는 각자의 목표 데이터 상태 각각의 메모리 셀들(1900, 1904, 1909)을 식별하는 단계; 및
    재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각의 메모리 셀들을, 각자의 단일 프로그램 펄스(1301, 1302, 1303; 1351, 1352, 1353)를 사용하여 그리고 검증 동작을 수행하는 일 없이, 재프로그래밍하는 단계 - 각자의 목표 데이터 상태 각각에 대해, 상기 각자의 단일 프로그램 펄스들의 폭(W_A, W_B, W_C)은 상기 하나의 프로그래밍 패스에서 상기 프로그램-검증 반복들 동안 상기 메모리 셀 세트에 인가되는 프로그램 펄스들의 폭(W1)보다 더 긺 - 를 포함하는, 방법.
  2. 제1항에 있어서,
    각자의 단일 프로그램 펄스 각각의 폭(W_A, W_B, W_C)은 재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각에 대해 상이한, 방법.
  3. 제1항에 있어서,
    각자의 단일 프로그램 펄스 각각의 크기(Vpgm_A, Vpgm_B, Vpgm_C)는 재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각에 대해 상이한, 방법.
  4. 제1항에 있어서,
    각자의 단일 프로그램 펄스 각각의 폭(W_A, W_B, W_C) 및 크기(Vpgm_A, Vpgm_B, Vpgm_C)는 재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각에 대해 상이한, 방법.
  5. 제1항에 있어서,
    각자의 단일 프로그램 펄스 각각의 폭(W_A, W_B, W_C) 및 크기(Vpgm_A, Vpgm_B, Vpgm_C)는 각자의 목표 데이터 상태 각각에 대한 문턱 전압 분포의 폭을 최소화하도록 설정되는, 방법.
  6. 제1항에 있어서,
    각자의 단일 프로그램 펄스 각각의 폭(W_A, W_B, W_C)은 재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각에 대해 상이하고, 재프로그래밍이 정당화되는 상기 각자의 메모리 셀 서브셋 내의 메모리 셀들의 수가 비교적 더 높을 때 비교적 더 높은, 방법.
  7. 제1항에 있어서,
    각자의 단일 프로그램 펄스 각각의 폭(W_A, W_B, W_C)은 재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각에 대해 상이하고, 상기 프로그래밍 패스에서의 상기 메모리 셀 세트의 프로그래밍 속도가 비교적 더 낮을 때 비교적 더 높은, 방법.
  8. 제7항에 있어서,
    상기 프로그래밍 속도는 상기 프로그래밍 패스에서의 상기 복수의 프로그램-검증 반복들의 수에 기초하는, 방법.
  9. 제1항에 있어서,
    각자의 메모리 셀 서브셋 각각에 대해, 상기 재프로그래밍에서의 상기 각자의 목표 데이터 상태의 각자의 검증 전압(VvA1, VvB1, VvC1)은 상기 하나의 프로그래밍 패스에서의 상기 각자의 목표 데이터 상태의 상기 각자의 검증 전압(VvA, VvB, VvC)보다 더 높은, 방법.
  10. 제1항에 있어서,
    상기 하나의 프로그래밍 패스의 상기 완료 이후에, 각자의 메모리 셀 서브셋 각각에 대해: 각자의 문턱 전압 분포의 폭(VrCu-VrCl, VrCl-VrBl, VrBl-VrAl)의 측정치(measure)를 결정하고, 각자의 단일 프로그램 펄스 각각의 폭(W_A, W_B, W_C)을 상기 각자의 문턱 전압 분포의 상기 폭의 상기 측정치의 함수로서 설정하는 단계 - 각자의 단일 프로그램 펄스 각각의 상기 폭은 상기 각자의 문턱 전압 분포의 상기 폭의 상기 측정치가 비교적 더 클 때 비교적 더 높음 - 를 포함하는, 방법.
  11. 제1항에 있어서,
    상기 하나의 프로그래밍 패스의 상기 완료 이후에, 각자의 메모리 셀 서브셋 각각에 대해: 각자의 문턱 전압 분포의 폭(VrCu-VrCl, VrCl-VrBl, VrBl-VrAl)의 측정치를 결정하고, 각자의 단일 프로그램 펄스 각각의 크기(Vpgm_A, Vpgm_B, Vpgm_C)를 상기 각자의 문턱 전압 분포의 상기 폭의 상기 측정치의 함수로서 설정하는 단계 - 상기 크기는 상기 각자의 문턱 전압 분포의 상기 폭의 상기 측정치가 비교적 더 클 때 비교적 더 높음 - 를 포함하는, 방법.
  12. 메모리 디바이스로서,
    각자의 메모리 셀 서브셋들(SubsetA, SubsetB, SubsetC)을 포함하는 메모리 셀 세트(1950) - 각자의 메모리 셀 서브셋 각각은 각자의 검증 전압(VvA, VvB, VvC)에 의해 정의되는 각자의 목표 데이터 상태를 가짐 -; 및
    제어 회로(110, 112, 114, 116, 122, 128, 132, 192, SB0, MC0)를 포함하고, 상기 제어 회로는
    하나의 프로그래밍 패스에서 상기 메모리 셀 세트에 대해 상기 하나의 프로그래밍 패스의 완료 때까지 복수의 프로그램-검증 반복들(PV1 내지 PV13)을 수행하고;
    상기 하나의 프로그래밍 패스의 상기 완료 이후에, 각자의 검증 전압(VvA, VvB, VvC; VvA1, VvB1, VvC1) 미만인 문턱 전압을 가지는 각자의 목표 데이터 상태 각각의 메모리 셀들을 식별하기 위해 검증 테스트를 수행하는 것에 의해, 재프로그래밍이 정당화되는 각자의 목표 데이터 상태 각각의 메모리 셀들(1900, 1904, 1909)을 식별하며;
    재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각의 메모리 셀들을, 각자의 단일 프로그램 펄스(1301, 1032, 1303; 1351, 1352, 1353)를 사용하여 그리고 검증 동작을 수행하는 일 없이, 재프로그래밍하는 - 각자의 목표 데이터 상태 각각에 대해, 상기 각자의 단일 프로그램 펄스들의 폭(W_A, W_B, W_C)은 상기 하나의 프로그래밍 패스에서 상기 프로그램-검증 반복들 동안 상기 메모리 셀 세트에 인가되는 프로그램 펄스들의 폭(W1)보다 더 긺 -, 메모리 디바이스.
  13. 제12항에 있어서,
    각자의 단일 프로그램 펄스 각각의 폭(W_A, W_B, W_C)은 재프로그래밍이 정당화되는 각자의 메모리 셀 서브셋 각각에 대해 상이하고, 상기 프로그래밍 패스에서의 상기 메모리 셀 세트의 프로그래밍 속도가 비교적 더 낮을 때 비교적 더 높은, 메모리 디바이스.
  14. 제12항에 있어서,
    상기 하나의 프로그래밍 패스의 상기 완료 이후에, 각자의 메모리 셀 서브셋 각각에 대해: 각자의 문턱 전압 분포의 폭(VrCu-VrCl, VrCl-VrBl, VrBl-VrAl)을 결정하고, 각자의 단일 프로그램 펄스 각각의 폭(W_A, W_B, W_C)을 상기 각자의 문턱 전압 분포의 함수로서 설정하며, 상기 폭은 상기 각자의 문턱 전압 분포가 비교적 더 넓을 때 비교적 더 높은, 메모리 디바이스.
  15. 제12항에 있어서,
    상기 메모리 셀 세트는 교대로 있는 전도성 층들(WLL0 내지 WLL23)과 유전체 층들(D0 내지 D24)을 포함하는 3차원 적층형 메모리 구조물(126, BLK0, BLK1)에서의 전하 트래핑 메모리 셀들을 포함하고;
    상기 메모리 셀 세트는 상기 전도성 층들 중 하나에 연결되는, 메모리 디바이스.
KR1020177003824A 2014-07-15 2015-07-09 데이터 상태마다 단일 프로그램 펄스를 사용한 메모리 재프로그래밍 KR101903580B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/331,800 US9343141B2 (en) 2014-07-15 2014-07-15 Reprogramming memory with single program pulse per data state
US14/331,800 2014-07-15
PCT/US2015/039829 WO2016010829A1 (en) 2014-07-15 2015-07-09 Reprogramming memory with single program pulse per data state

Publications (2)

Publication Number Publication Date
KR20170031195A true KR20170031195A (ko) 2017-03-20
KR101903580B1 KR101903580B1 (ko) 2018-10-04

Family

ID=53682886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177003824A KR101903580B1 (ko) 2014-07-15 2015-07-09 데이터 상태마다 단일 프로그램 펄스를 사용한 메모리 재프로그래밍

Country Status (4)

Country Link
US (1) US9343141B2 (ko)
EP (1) EP3170179B1 (ko)
KR (1) KR101903580B1 (ko)
WO (1) WO2016010829A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9508397B1 (en) * 2015-12-03 2016-11-29 Freescale Semiconductor, Inc. Non-volatile memory (NVM) with endurance control
JP6490018B2 (ja) * 2016-02-12 2019-03-27 東芝メモリ株式会社 半導体記憶装置
US9852800B2 (en) * 2016-03-07 2017-12-26 Sandisk Technologies Llc Adaptive determination of program parameter using program of erase rate
KR102595291B1 (ko) * 2016-09-23 2023-10-30 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US9779832B1 (en) 2016-12-07 2017-10-03 Sandisk Technologies Llc Pulsed control line biasing in memory
US10068656B2 (en) 2016-12-27 2018-09-04 Sandisk Technologies Llc Non-volatile memory with multi-pass programming
JP2018116755A (ja) * 2017-01-19 2018-07-26 東芝メモリ株式会社 半導体記憶装置
US10354724B2 (en) * 2017-09-15 2019-07-16 Sandisk Technologies Llc Methods and apparatus for programming barrier modulated memory cells
US10529435B2 (en) * 2018-01-05 2020-01-07 Sandisk Technologies Llc Fast detection of defective memory block to prevent neighbor plane disturb
US10535401B2 (en) * 2018-06-05 2020-01-14 Sandisk Technologies Llc Dynamic bit-scan techniques for memory device 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
JP2020140747A (ja) 2019-02-27 2020-09-03 キオクシア株式会社 半導体記憶装置
US11106518B2 (en) * 2019-03-01 2021-08-31 Western Digital Technologies, Inc. Failure mode study based error correction
US10964402B1 (en) 2020-02-19 2021-03-30 Sandisk Technologies Llc Reprogramming memory cells to tighten threshold voltage distributions and improve data retention
US11393534B2 (en) * 2020-05-28 2022-07-19 Micron Technology, Inc. Adjustment of a starting voltage corresponding to a program operation in a memory sub-system
US11309042B2 (en) * 2020-06-29 2022-04-19 Silicon Storage Technology, Inc. Method of improving read current stability in analog non-volatile memory by program adjustment for memory cells exhibiting random telegraph noise
KR20220018341A (ko) 2020-08-06 2022-02-15 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
KR20220068541A (ko) 2020-11-19 2022-05-26 삼성전자주식회사 비휘발성 메모리 장치 및 이의 동작 방법
KR102547767B1 (ko) 2021-05-13 2023-06-23 유정현 텀블러 뚜껑
US11942156B2 (en) 2021-06-01 2024-03-26 SK Hynix Inc. Memory device related to performing a program operation on memory cells
DE102022102588A1 (de) 2021-06-28 2022-12-29 Sandisk Technologies Llc Gleichzeitiges programmieren mehrerer zellen für nichtflüchtige speichervorrichtungen
US20230377655A1 (en) * 2022-05-18 2023-11-23 Sandisk Technologies Llc Techniques for reading memory cells in a memory device during a multi-pass programming operation
US11908524B2 (en) * 2022-05-24 2024-02-20 Western Digital Technologies, Inc. Apparatus and methods for programming memory cells

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3983969B2 (ja) 2000-03-08 2007-09-26 株式会社東芝 不揮発性半導体記憶装置
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
US6700820B2 (en) 2002-01-03 2004-03-02 Intel Corporation Programming non-volatile memory devices
US8391070B2 (en) 2008-12-02 2013-03-05 Spansion Llc Moving program verify level for programming of memory
US6888758B1 (en) 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
US7224614B1 (en) 2005-12-29 2007-05-29 Sandisk Corporation Methods for improved program-verify operations in non-volatile memories
JP2010508615A (ja) 2006-10-30 2010-03-18 サンディスク コーポレイション 不揮発性メモリに用いられる最高マルチレベル状態の高速プログラミング
US7385851B1 (en) 2006-12-22 2008-06-10 Spansion Llc Repetitive erase verify technique for flash memory devices
KR100897604B1 (ko) 2007-01-03 2009-05-14 삼성전자주식회사 검증 성공된 메모리 셀에 대하여 재검증이 가능한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치
US7797480B2 (en) 2007-03-29 2010-09-14 Sandisk Corporation Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics
US8000150B2 (en) 2007-06-19 2011-08-16 Samsung Electronics Co., Ltd. Method of programming memory device
US7630249B2 (en) 2007-06-21 2009-12-08 Sandisk Corporation Intelligent control of program pulse duration
US7978520B2 (en) 2007-09-27 2011-07-12 Sandisk Corporation Compensation of non-volatile memory chip non-idealities by program pulse adjustment
US7924587B2 (en) * 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
ITRM20080114A1 (it) 2008-02-29 2009-09-01 Micron Technology Inc Compensazione della perdita di carica durante la programmazione di un dispositivo di memoria.
US7633804B2 (en) 2008-03-20 2009-12-15 Micron Technology, Inc. Adjusting programming or erase voltage pulses in response to the number of programming or erase failures
US8254177B2 (en) 2008-10-24 2012-08-28 Sandisk Technologies Inc. Programming non-volatile memory with variable initial programming pulse
JP5193830B2 (ja) 2008-12-03 2013-05-08 株式会社東芝 不揮発性半導体メモリ
KR101532584B1 (ko) * 2009-01-30 2015-06-30 삼성전자주식회사 비휘발성 메모리 장치, 및 그의 프로그램 방법
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
KR101634340B1 (ko) 2009-11-03 2016-06-28 삼성전자주식회사 반도체 메모리 장치의 프로그램 방법
KR101662309B1 (ko) 2010-02-08 2016-10-04 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
KR101662277B1 (ko) 2010-05-12 2016-10-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR101656384B1 (ko) 2010-06-10 2016-09-12 삼성전자주식회사 불휘발성 메모리 장치의 데이터 기입 방법
WO2012021379A2 (en) 2010-08-10 2012-02-16 Rambus Inc. Verify before program resume for memory devices
US8472257B2 (en) 2011-03-24 2013-06-25 Sandisk Technologies Inc. Nonvolatile memory and method for improved programming with reduced verify
US8565025B2 (en) 2011-04-25 2013-10-22 Freescale Semiconductor, Inc. Dynamic programming for flash memory
KR101855169B1 (ko) 2011-10-13 2018-05-09 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치의 프로그램 방법, 불휘발성 메모리 장치를 포함하는 메모리 시스템
KR20130047400A (ko) 2011-10-31 2013-05-08 삼성전자주식회사 불휘발성 메모리 및 그것의 제어 방법
TWI534810B (zh) * 2011-12-09 2016-05-21 Toshiba Kk Nonvolatile semiconductor memory device
KR20130072668A (ko) 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법
US8804430B2 (en) 2012-03-26 2014-08-12 Sandisk Technologies Inc. Selected word line dependent select gate diffusion region voltage during programming
KR20130129700A (ko) 2012-05-21 2013-11-29 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 그의 구동방법

Also Published As

Publication number Publication date
US20160019948A1 (en) 2016-01-21
US9343141B2 (en) 2016-05-17
EP3170179A1 (en) 2017-05-24
WO2016010829A1 (en) 2016-01-21
EP3170179B1 (en) 2018-11-07
KR101903580B1 (ko) 2018-10-04

Similar Documents

Publication Publication Date Title
KR101903580B1 (ko) 데이터 상태마다 단일 프로그램 펄스를 사용한 메모리 재프로그래밍
US9324419B2 (en) Multiple pass programming for memory with different program pulse widths
CN108461106B (zh) 将存储器单元分组为子区块用于编程速度的统一性
US10297330B2 (en) Separate drain-side dummy word lines within a block to reduce program disturb
US11017869B2 (en) Programming process combining adaptive verify with normal and slow programming speeds in a memory device
US10014063B2 (en) Smart skip verify mode for programming a memory device
US9355735B1 (en) Data recovery in a 3D memory device with a short circuit between word lines
US9230663B1 (en) Programming memory with reduced short-term charge loss
US9165659B1 (en) Efficient reprogramming method for tightening a threshold voltage distribution in a memory device
US9875805B2 (en) Double lockout in non-volatile memory
WO2016053558A1 (en) Read with look-back combined with programming with asymmetric boosting in memory
EP3262654B1 (en) Program verify for non-volatile storage
WO2014124346A1 (en) Efficient smart verify method for programming 3d non-volatile memory
WO2016003770A1 (en) Look ahead read method for non-volatile memory
US11024387B2 (en) Memory device with compensation for program speed variations due to block oxide thinning
US10854300B2 (en) Multi-state programming in memory device with loop-dependent bit line voltage during verify
WO2021029917A1 (en) Programming to minimize cross-temperature threshold voltage widening
US11244734B2 (en) Modified verify scheme for programming a memory apparatus
US11972804B2 (en) Techniques for checking vulnerability to cross-temperature read errors in a memory device
KR20230144624A (ko) 3d nand 메모리를 프로그래밍하기 위한 자가-적응적 프로그램 펄스 폭

Legal Events

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