KR102337129B1 - 프로그램 검증 스킵을 갖는 비휘발성 메모리 - Google Patents

프로그램 검증 스킵을 갖는 비휘발성 메모리 Download PDF

Info

Publication number
KR102337129B1
KR102337129B1 KR1020200072760A KR20200072760A KR102337129B1 KR 102337129 B1 KR102337129 B1 KR 102337129B1 KR 1020200072760 A KR1020200072760 A KR 1020200072760A KR 20200072760 A KR20200072760 A KR 20200072760A KR 102337129 B1 KR102337129 B1 KR 102337129B1
Authority
KR
South Korea
Prior art keywords
memory cells
programming
verify
volatile memory
data state
Prior art date
Application number
KR1020200072760A
Other languages
English (en)
Other versions
KR20210105794A (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 KR20210105794A publication Critical patent/KR20210105794A/ko
Application granted granted Critical
Publication of KR102337129B1 publication Critical patent/KR102337129B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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
    • 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/5671Digital 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 trapping in an insulator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • 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/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • 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/3481Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5004Voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

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

Abstract

비휘발성 메모리 셀들은, 일련의 프로그래밍 전압 펄스들(또는 프로그래밍의 다른 도즈들)로서 프로그래밍 신호를 선택된 메모리 셀들에 인가하고 프로그래밍 전압 펄스들 사이에서 메모리 셀들을 검증함으로써 프로그래밍된다. 더 조밀한 임계 전압 분포들을 달성하기 위해, 중간 검증 조건 및 최종 검증 조건을 포함하는, 프로그래밍 전압 펄스들 사이의 2-단계 검증을 포함하는 대략적인/미세한 프로그래밍 프로세스가 사용된다. 중간 검증 조건에 도달한, 프로그래밍되고 있는 메모리 셀들은 추가 프로그래밍을 위해 느려진다. 최종 검증 조건에 도달한, 프로그래밍되고 있는 메모리 셀들은 추가 프로그래밍이 금지된다. 수행되는 검증 동작들의 수를 감소시키기 위해, 일부 프로그래밍 전압 펄스들에 대한 중간 검증 조건에서 검증을 스킵하고 일부 프로그래밍 전압 펄스들에 대한 최종 검증 조건에서 검증을 스킵하기 위한 시스템이 제안된다.

Description

프로그램 검증 스킵을 갖는 비휘발성 메모리{NON-VOLATILE MEMORY WITH PROGRAM VERIFY SKIP}
반도체 메모리는 셀룰러 전화기, 디지털 카메라, 개인 휴대 정보 단말기, 의료용 전자기기, 모바일 컴퓨팅 디바이스, 서버, 솔리드 스테이트 드라이브, 비-모바일 컴퓨팅 디바이스 및 다른 디바이스와 같은 다양한 전자 디바이스들에서 널리 사용된다. 반도체 메모리는 비휘발성 메모리 또는 휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는, 비휘발성 메모리가 전원(예를 들어, 배터리)에 접속되어 있지 않을 때에도 정보가 저장 및 보유되게 한다. 비휘발성 메모리의 일례가 플래시 메모리(예컨대, NAND 타입 및 NOR 타입 플래시 메모리)이다. 비휘발성 메모리의 사용자들은, 전형적으로, 메모리가 고속으로 동작하여 그들이 메모리 동작들이 완료되기를 기다릴 필요가 없도록 하기를 원한다.
유사한 도면번호의 요소들은 상이한 도면들 내의 공통 컴포넌트들을 지칭한다.
도 1은 메모리 시스템의 일 실시예를 도시한 블록도이다.
도 2는 메모리 다이의 일 실시예의 블록도이다.
도 3은 모놀리식(monolithic) 3차원 메모리 구조물의 일 실시예의 일부분의 사시도이다.
도 4a는 2개의 평면들을 갖는 메모리 구조물의 블록도이다.
도 4b는 메모리 셀들의 블록의 일부의 평면도를 도시한다.
도 4c는 메모리 셀들의 블록의 일부의 단면도를 도시한다.
도 4d는 선택 게이트 층들 및 워드 라인 층들의 도면을 도시한다.
도 4e는 메모리 셀들의 수직 컬럼(column)의 단면도이다.
도 4f는 다수의 서브블록들을 보여주는 복수의 NAND 스트링들의 개략도이다.
도 5는 임계 전압 분포들을 도시한다.
도 6은 임계 전압 분포들을 도시한다.
도 7은 데이터 상태들에 대한 데이터 값들의 할당의 일례를 기술한 표이다.
도 8은 비휘발성 메모리를 프로그래밍하기 위한 프로세스의 일 실시예를 기술한 흐름도이다.
도 9는 일련의 프로그래밍 전압 펄스들을 도시한다.
도 10은 2개의 프로그래밍 전압 펄스들, 및 검증 전압 펄스를 도시한다.
도 11은 2개의 프로그래밍 전압 펄스들, 및 검증 전압 펄스들의 세트를 도시한다.
도 12는 비휘발성 메모리의 프로그래밍을 검증하기 위한 프로세스의 일 실시예를 기술한 흐름도이다.
도 13a는 프로그래밍 프로세스 동안의 비트 라인 전압을 설명하는 그래프이다.
도 13b는 프로그래밍 프로세스 동안의 비트 라인 전압을 설명하는 그래프이다.
도 14는 비휘발성 메모리를 프로그래밍하고 그 프로그래밍을 검증하기 위한 프로세스의 일 실시예를 기술한 흐름도이다.
도 15는 프로그래밍되고 있는 비휘발성 메모리 셀들의 세트에 대한 임계 전압 분포의 그래프이다.
도 16은 프로그래밍되고 있는 비휘발성 메모리 셀들의 세트에 대한 임계 전압 분포의 그래프이다.
도 17은 프로그래밍되고 있는 비휘발성 메모리 셀들의 세트에 대한 임계 전압 분포의 그래프이다.
도 18은 비휘발성 메모리의 프로그래밍을 검증할 때 수행되는 프로세스의 일 실시예를 기술한 흐름도이다.
도 19는 프로그래밍되고 있는 비휘발성 메모리 셀들의 세트에 대한 2개의 임계 전압 분포들의 그래프이다.
비휘발성 메모리 셀들은, 일련의 프로그래밍 전압 펄스들(또는 프로그래밍의 다른 도즈(dose)들)로서 프로그래밍 신호를 선택된 메모리 셀들에 인가하고 프로그래밍 전압 펄스들 사이에서 메모리 셀들을 검증함으로써 프로그래밍된다. 더 조밀한 임계 전압 분포들을 달성하기 위해, 중간 검증 조건 및 최종 검증 조건을 포함하는, 프로그래밍 전압 펄스들 사이의 2-단계 검증을 포함하는 대략적인/미세한 프로그래밍 프로세스가 사용된다. 중간 검증 조건에 도달한, 프로그래밍되고 있는 메모리 셀들은 추가 프로그래밍을 위해 느려진다. 최종 검증 조건에 도달한, 프로그래밍되고 있는 메모리 셀들은 추가 프로그래밍이 금지된다. 수행되는 검증 동작들의 수를 감소시키기 위해, 일부 프로그래밍 전압 펄스들에 대한 중간 검증 조건에서 검증을 스킵하고 일부 프로그래밍 전압 펄스들에 대한 최종 검증 조건에서 검증을 스킵하기 위한 시스템이 제안된다.
비휘발성 저장 장치의 일 실시예는 복수의 비휘발성 메모리 셀들, 및 비휘발성 메모리 셀들에 접속되는 제어 회로를 포함한다. 제어 회로는, 비휘발성 메모리 셀들을 제1 데이터 상태(및, 가능하게는, 다른 데이터 상태들)로 프로그래밍하는 프로그래밍 프로세스를 수행하도록, 제1 기준이 만족될 때까지 제1 데이터 상태에 대해 최종 검증 조건에 대한 프로그램 검증을 수행하지 않고서 제1 데이터 상태에 대해 중간 검증 조건에 대한 프로그램 검증을 수행하도록, 제1 기준이 만족된 후 그리고 제2 기준이 만족될 때까지 중간 검증 조건 및 최종 검증 조건에 대한 프로그램 검증을 수행하도록, 그리고 제2 기준이 만족된 후 중간 검증 조건에 대한 프로그램 검증을 수행하지 않고서 최종 검증 조건에 대한 프로그램 검증을 수행하도록 구성된다. 일례에서, 제1 기준은 임계 개수의 복수의 비휘발성 메모리 셀들이 중간 검증 조건에 도달했을 때 만족된다. 일부 예들에서, 제2 기준은, 제1 기준이 만족된 이후 사전결정된 개수의 프로그래밍의 도즈들이 복수의 비휘발성 메모리에 인가된 후에 임계 개수의 복수의 비휘발성 메모리 셀들이 최종 검증 조건에 도달했거나, 또는 최소 개수의 비휘발성 메모리 셀들이 제2 데이터 상태에 대한 타깃 레벨에 도달했을 때 만족된다.
도 1은 검증을 스킵하기 위한 제안된 프로세스를 포함하는 제안된 기술을 구현하는 저장 시스템(100)의 일 실시예의 블록도이다. 일 실시예에서, 저장 시스템(100)은 솔리드 스테이트 드라이브(Solid-State Drive, "SSD")이다. 저장 시스템(100)은 또한 메모리 카드, USB 드라이브, 또는 다른 타입의 저장 시스템일 수 있다. 제안된 기술은 임의의 하나의 타입의 저장 시스템으로 제한되지 않는다. 저장 시스템(100)은 호스트(102)에 접속되는데, 이는 컴퓨터, 서버, 전자 디바이스(예컨대, 스마트폰, 태블릿 또는 다른 모바일 디바이스), 어플라이언스, 또는 메모리를 사용하고 데이터 프로세싱 능력들을 갖는 다른 장치일 수 있다. 일부 실시예들에서, 호스트(102)는 저장 시스템(100)과는 별개이지만 그에 접속된다. 다른 실시예들에서, 저장 시스템(100)은 호스트(102) 내에 임베드된다.
도 1에 도시된 저장 시스템(100)의 컴포넌트들은 전기 회로들이다. 저장 시스템(100)은 하나 이상의 메모리 다이(130) 및 국부적 고속 휘발성 메모리(140)(예컨대, DRAM)에 접속되는 제어기(120)를 포함한다. 하나 이상의 메모리 다이(130)는 각각 복수의 비휘발성 메모리 셀들을 포함한다. 각각의 메모리 다이(130)의 구조에 관한 더 많은 정보가 하기에 제공된다. 국부적 고속 휘발성 메모리(140)는 일정 기능들을 수행하도록 제어기(120)에 의해 사용된다. 예를 들어, 국부적 고속 휘발성 메모리(140)는 논리적-물리적 어드레스 변환 테이블들("L2P 테이블들")을 저장한다.
제어기(120)는 호스트(102)에 접속되어 그와 통신하는 호스트 인터페이스(152)를 포함한다. 일 실시예에서, 호스트 인터페이스(152)는 PCIe 인터페이스를 제공한다. SCSI, SATA 등과 같은 다른 인터페이스들이 또한 사용될 수 있다. 호스트 인터페이스(152)는 또한 NOC(network-on-chip)(154)에 접속된다. NOC는 집적회로 상의 통신 서브시스템이다. NOC들은 동기 및 비동기 클록 도메인들에 걸쳐 있을 수 있거나, 또는 클록킹되지 않은 비동기 로직을 사용할 수 있다. NOC 기술은 온-칩 통신에 네트워킹 이론 및 방법들을 적용하고, 종래의 버스 및 크로스바 상호접속부를 통한 현저한 개선을 가져온다. NOC는 다른 설계들에 비해 SoC(system on a chip)들의 확장성(scalability) 및 복잡한 SoC들의 전력 효율을 개선한다. NOC의 배선들 및 링크들은 많은 신호들에 의해 공유된다. 높은 레벨의 병렬성(parallelism)이 달성되는데, 그 이유는 NOC 내의 모든 링크들이 상이한 데이터 패킷들에 대해 동시에 동작할 수 있기 때문이다. 따라서, 통합된 서브시스템들의 복잡도가 계속 증가하고 있음에 따라, NOC는 이전의 통신 아키텍처들(예컨대, 전용 P2P 신호 배선, 공용 버스, 또는 브리지들을 갖는 구분된 버스)에 비해 향상된 성능(예컨대, 처리율) 및 확장성을 제공한다. 다른 실시예들에서, NOC(154)는 버스에 의해 대체될 수 있다. NOC(154)에 접속되고 그와 통신하는 것은 프로세서(156), ECC(error correction code) 엔진(158), 메모리 인터페이스(160), 및 DRAM 제어기(164)이다. DRAM 제어기(164)는 국부적 고속 휘발성 메모리(140)(예컨대, DRAM)를 동작시키고 그와 통신하는 데 사용된다. 다른 실시예들에서, 국부적 고속 휘발성 메모리(140)는 SRAM 또는 다른 타입의 휘발성 메모리일 수 있다.
ECC 엔진(158)은 에러 정정 서비스들을 수행한다. 예를 들어, ECC 엔진(158)은 구현된 ECC 기법에 따라 데이터 인코딩 및 디코딩을 수행한다. 일 실시예에서, ECC 엔진(158)은 소프트웨어에 의해 프로그래밍되는 전기 회로이다. 예를 들어, ECC 엔진(158)은 프로그래밍될 수 있는 프로세서일 수 있다. 다른 실시예들에서, ECC 엔진(158)은 어떠한 소프트웨어도 없는 주문제작 전용 하드웨어 회로이다. 다른 실시예에서, ECC 엔진(158)의 기능은 프로세서(156)에 의해 구현된다.
프로세서(156)는 프로그래밍, 소거, 판독뿐만 아니라 메모리 관리 프로세스들과 같은 다양한 제어기 메모리 동작들을 수행한다. 일 실시예에서, 프로세서(156)는 펌웨어에 의해 프로그래밍된다. 다른 실시예들에서, 프로세서(156)는 어떠한 소프트웨어도 없는 주문제작 전용 하드웨어 회로이다. 프로세서(156)는 또한 소프트웨어/펌웨어 프로세스로서 또는 전용 하드웨어 회로로서 변환 모듈을 구현한다. 많은 시스템들에 있어서, 비휘발성 메모리는 하나 이상의 메모리 다이와 연관된 물리적 어드레스들을 사용하여 저장 시스템에 내부적으로 어드레싱된다. 그러나, 호스트 시스템은 다양한 메모리 위치들을 어드레싱하는 데 논리적 어드레스들을 사용할 것이다. 이것은 호스트가 데이터를 연속적인 논리적 어드레스들에 할당하는 것을 가능하게 하는 한편, 저장 시스템은 하나 이상의 메모리 다이의 위치들 사이에 그것이 원하는 데이터를 자유롭게 저장한다. 이러한 시스템을 구현하기 위해, 제어기(예컨대, 변환 모듈)는 호스트에 의해 사용되는 논리적 어드레스와 메모리 다이들에 의해 사용되는 물리적 어드레스 사이의 어드레스 변환을 수행한다. 하나의 예시적인 구현예는 논리적 어드레스들과 물리적 어드레스들 사이의 현재 변환을 식별하는 테이블들(즉, 위에서 언급된 L2P 테이블들)을 유지하는 것이다. L2P 테이블 내의 엔트리는 논리적 어드레스 및 대응하는 물리적 어드레스의 식별을 포함할 수 있다. 논리적 어드레스-물리적 어드레스 테이블들(또는 L2P 테이블들)이 단어 "테이블들"을 포함하지만, 그들은 문자대로 테이블들일 필요는 없다. 오히려, 논리적 어드레스-물리적 어드레스 테이블들(또는 L2P 테이블들)은 임의의 타입의 데이터 구조일 수 있다. 일부 예들에서, 저장 시스템의 메모리 공간은 국부적 메모리(140)가 모든 L2P 테이블들을 보유할 수 없을 정도로 크다. 그러한 경우에 있어서, 전체 세트의 L2P 테이블들은 메모리 다이(130)에 저장되고, 일정 서브세트의 L2P 테이블들은 국부적 고속 휘발성 메모리(140)에 캐싱(L2P 캐싱)된다.
메모리 인터페이스(160)는 하나 이상의 메모리 다이(130)와 통신한다. 일 실시예에서, 메모리 인터페이스는 토글 모드 인터페이스를 제공한다. 다른 인터페이스들이 또한 사용될 수 있다. 일부 예시적인 구현예들에서, 메모리 인터페이스(160)(또는 제어기(120)의 다른 부분)는 데이터를 하나 이상의 메모리 다이로 송신하고 데이터를 하나 이상의 메모리 다이로부터 수신하기 위한 스케줄러 및 버퍼를 구현한다.
도 2는 메모리 다이(300)의 일 실시예의 기능 블록도이다. 도 1의 하나 이상의 메모리 다이(130) 각각은 도 2의 메모리 다이(300)로서 구현될 수 있다. 도 2에 도시된 컴포넌트들은 전기 회로들이다. 일 실시예에서, 각각의 메모리 다이(300)는 메모리 구조물(326), 제어 회로부(310), 및 판독/기록 회로들(328)을 포함한다. 메모리 구조물(326)은 로우(row) 디코더(324)를 통해 워드 라인들에 의해 그리고 컬럼 디코더(332)를 통해 비트 라인들에 의해 어드레싱가능하다. 판독/기록 회로들(328)은 SB1, SB2,...,SBp(감지 회로부)를 포함한 다수의 감지 블록들(350)을 포함하고, 다수의 메모리 셀들 내의 일정 페이지(또는 다수의 페이지들)의 데이터가 동시에 판독 또는 프로그래밍(기록)되는 것을 허용한다. 일 실시예에서, 각각의 감지 블록은 감지 증폭기, 및 비트 라인에 접속된 래치들의 세트를 포함한다. 래치들은 기록될 데이터 및/또는 판독된 데이터를 저장한다. 감지 증폭기들은 비트 라인 드라이버들을 포함한다. 커맨드들 및 데이터는 라인들(319)을 통해 제어기와 메모리 다이(300) 사이에서 전달된다. 일 실시예에서, 메모리 다이(300)는 라인들(118)에 접속된 입력 및/또는 출력(I/O) 핀들의 세트를 포함한다.
제어 회로부(310)는 메모리 구조물(326) 상에서 메모리 동작들(예컨대, 기록, 판독, 소거, 및 다른 것들)을 수행하기 위해 판독/기록 회로들(328)과 협력한다. 일 실시예에서, 제어 회로부(310)는 상태 머신(312), 온-칩 어드레스 디코더(314), 전력 제어 회로(316) 및 메모리 다이 파라미터들(318)을 포함한다. 상태 머신(312)은 메모리 동작들의 다이-레벨 제어를 제공한다. 일 실시예에서, 상태 머신(312)은 소프트웨어에 의해 프로그래밍가능하다. 다른 실시예들에서, 상태 머신(312)은 소프트웨어를 사용하지 않고, 완전히 하드웨어(예컨대, 전기 회로들)로 구현된다. 일부 실시예들에서, 상태 머신(312)은 프로그래밍가능 마이크로제어기 또는 마이크로프로세서에 의해 대체될 수 있다. 일 실시예에서, 제어 회로부(310)는 레지스터, 래치, ROM 퓨즈 및 다른 저장 디바이스와 같은 버퍼들에 저장된 메모리 다이 파라미터들(318)을 포함한다. 메모리 다이 파라미터들(318)은 메모리 동작들을 수행하기 위해 메모리 다이(300)에 의해 사용되는(예컨대, 상태 머신(312)에 의해 사용되는) 베이스 전압들 및 다른 파라미터들과 같은 디폴트 값들이다. 일례가 스킵 파라미터(Skip Parameter, SP)이며, 이는 후술되는 바와 같이, 검증을 스킵하기 위한 모드들을 변경하도록 제1 기준이 충족된 후에 사전결정된 개수의 프로그래밍 펄스들을 나타내기 위해 프로그래밍 프로세스의 일 실시예 동안 사용된다. 일 실시예에서, 스킵 파라미터(SP)는 메모리 다이(300)의 제조의 일부로서 테스트 동안 설정된다.
온-칩 어드레스 디코더(314)는 제어기(120)에 의해 사용되는 어드레스들 사이의 어드레스 인터페이스를 디코더들(324, 332)에 의해 사용되는 하드웨어 어드레스에 제공한다. 전력 제어 모듈(316)은 메모리 동작 동안 워드 라인들 및 비트 라인들에 공급되는 전력 및 전압들을 제어한다. 전력 제어 모듈(316)은 전압들을 생성하기 위한 전하 펌프들을 포함할 수 있다.
본 문헌의 목적들을 위해, 제어 회로부(310), 판독/기록 회로들(328) 및 디코더들(324/332)은 메모리 구조물(326)을 위한 제어 회로의 일 실시예를 포함한다. 다른 실시예들에서, 메모리 구조물(326)을 지지하고 그 상에서 동작하는 다른 회로들이 제어 회로로 지칭될 수 있다. 예를 들어, 일부 실시예들에서, 제어기(120)는 제어 회로로서 동작할 수 있거나 또는 제어 회로의 일부일 수 있다. 일부 실시예들에서, 제어 회로부(310), 판독/기록 회로들(328) 및 디코더들(324/332)과 조합된 제어기(120)는 제어 회로의 일 실시예를 포함한다. 다른 실시예에서, 상태 머신(312)은 제어 회로를 포함한다. 다른 실시예에서, 호스트는 제어 회로를 제공할 수 있다.
일 실시예에서, 메모리 구조물(326)은 다수의 메모리 레벨들이 웨이퍼와 같은 단일 기판 위에 형성되는 비휘발성 메모리 셀들의 모놀리식 3차원 메모리 어레이를 포함한다. 메모리 구조물은 실리콘(또는 다른 타입의) 기판 위에 활성 영역이 배치되어 있는 메모리 셀들의 어레이들의 하나 이상의 물리적 레벨들에서 모놀리식으로 형성되는 임의의 타입의 비휘발성 메모리를 포함할 수 있다. 일례에서, 메모리 구조물(326)의 비휘발성 메모리 셀들은, 예를 들어 전체가 본 명세서에 참고로 포함된 미국 특허 제9,721,662호에서 설명된 것과 같은 전하-트래핑(charge-trapping) 재료를 갖는 수직 NAND 스트링들을 포함한다. NAND 스트링은 채널에 의해 접속되는 메모리 셀들을 포함한다.
다른 실시예에서, 메모리 구조물(326)은 비휘발성 메모리 셀들의 2차원 메모리 어레이를 포함한다. 일례에서, 비휘발성 메모리 셀들은, 예를 들어 전체가 본 명세서에 참고로 포함된 미국 특허 제9,082,502호에서 설명된 것과 같은 플로팅 게이트들을 활용하는 NAND 플래시 메모리 셀들이다. 다른 타입들의 메모리 셀들(예컨대, NOR-타입 플래시 메모리)이 또한 사용될 수 있다.
메모리 구조물(326)에 포함된 메모리 어레이 아키텍처 또는 메모리 셀의 정확한 타입은 상기의 예들로 제한되지 않는다. 많은 상이한 타입들의 메모리 어레이 아키텍처들 또는 메모리 셀 기술들이 메모리 구조물(326)을 형성하는 데 이용될 수 있다. 본 명세서에서 제안되는 새롭게 청구되는 실시예들을 위해 어떠한 특정 비휘발성 메모리 기술도 요구되지 않는다. 메모리 구조물(326)의 메모리 셀들에 대한 적합한 기술들의 다른 예들은 강자성 메모리(FeRAM 또는 FeFET), ReRAM 메모리, 자기저항 메모리(예컨대, MRAM, 스핀 전달 토크(Spin Transfer Torque) MRAM, 스핀 궤도 토크(Spin Orbit Torque) MRAM), 상변화(phase change) 메모리(예컨대, PCM) 등을 포함한다. 메모리 구조물(326)의 아키텍처들에 대한 적합한 기술들의 예들은 2차원 어레이, 3차원 어레이, 교차점 어레이(cross-point array), 적층형 2차원 어레이, 수직 비트 라인 어레이 등을 포함한다.
ReRAM, PCMRAM, 또는 교차점 메모리의 일례는 X 라인들 및 Y 라인들(예컨대, 워드 라인들 및 비트 라인들)에 의해 액세스되는 교차점 어레이에 배열되는 가역적 저항-스위칭 요소들을 포함한다. 다른 실시예에서, 메모리 셀들은 전도성 브리지 메모리 요소들을 포함할 수 있다. 전도성 브리지 메모리 요소는 또한 프로그래밍가능 금속화 셀로 지칭될 수 있다. 전도성 브리지 메모리 요소는 고체 전해질 내의 이온들의 물리적 재배치에 기초하여 상태 변경 요소로서 사용될 수 있다. 일부 경우에 있어서, 전도성 브리지 메모리 요소는 2개의 고체 금속 전극들, 즉 비교적 불활성인 하나의 고체 금속 전극(예컨대, 텅스텐) 및 전기화학적으로 활성인 다른 하나의 고체 금속 전극(예컨대, 은 또는 구리)을 포함할 수 있는데, 이때 2개의 전극들 사이에는 얇은 고체 전해질 필름이 있다. 온도가 증가함에 따라, 이온들의 이동도가 또한 증가하여, 전도성 브리지 메모리 셀에 대한 프로그래밍 임계치가 감소하게 한다. 따라서, 전도성 브리지 메모리 요소는 온도에 따라 광범위한 프로그래밍 임계치들을 가질 수 있다.
자기저항 메모리(MRAM)는 자기 저장 요소들에 의해 데이터를 저장한다. 요소들은 2개의 강자성 플레이트들로 형성되는데, 이들 각각은 얇은 절연 층에 의해 분리되는 자화(magnetization)를 보유할 수 있다. 2개의 플레이트들 중 하나는 특정 극성으로 설정된 영구 자석이고; 다른 플레이트의 자화는 외부 자기장의 것을 저장 메모리에 매칭시키도록 변경될 수 있다. 메모리 디바이스가 그러한 메모리 셀들의 그리드로부터 구성된다. 프로그래밍에 대한 일 실시예에서, 각각의 메모리 셀은 한 쌍의 기록 라인들 사이에 놓이며, 이 라인들은 서로에 대해 직각이고, 하나는 셀 위에서 그리고 하나는 셀 아래에서 셀에 평행하게 배열된다. 전류가 그들을 통과할 때, 유도 자기장이 생성된다.
상변화 메모리(PCM)는 칼코겐화물 유리의 고유 거동을 이용한다. 일 실시예는 상변화 재료를 전기적으로 가열함으로써 상변화들을 달성하기 위해 Ge2Sb2Te5 합금을 사용한다. 프로그래밍의 도즈들은 상이한 진폭 및/또는 길이의 전기 펄스들이어서, 상변화 재료의 상이한 저항 값들을 생성한다.
당업자는, 본 명세서에서 설명되는 기술이 단일의 특정 메모리 구조물에 제한되는 것이 아니라, 본 명세서에서 설명되는 바와 같은 기술의 사상 및 범주 내에서 그리고 당업자에 의해 이해되는 바와 같이 많은 관련 메모리 구조물들을 커버함을 인식할 것이다.
도 3은 수직 NAND 스트링들로서 배열된 복수의 비휘발성 메모리 셀들을 포함하는 메모리 구조물(326)을 포함할 수 있는 모놀리식 3차원 메모리 어레이의 하나의 예시적인 실시예의 일부분의 사시도이다. 예를 들어, 도 3은 메모리의 하나의 블록의 일부를 도시한다. 도시된 구조물은 교번하는 유전체 층들 및 전도성 층들의 스택 위에 위치된 비트 라인들(BL)의 세트를 포함한다. 예시적인 목적을 위해, 유전체 층들 중 하나의 유전체 층은 D로 마킹되고 전도성 층들(워드 라인 층들로도 지칭됨) 중 하나의 전도성 층은 W로 마킹된다. 교번하는 유전체 층들 및 전도성 층들의 수는 특정 구현 요건들에 기초하여 달라질 수 있다. 일 세트의 실시예들은 108 내지 300개의 교번하는 유전체 층들 및 전도성 층들을 포함한다. 하나의 예시적인 실시예는 96개의 데이터 워드 라인 층들, 8개의 선택 층들, 6개의 더미 워드 라인 층들 및 110개의 유전체 층들을 포함한다. 108 내지 300개 초과 또는 그 미만의 층들이 또한 사용될 수 있다. 아래에서 설명되는 바와 같이, 교번하는 유전체 층들 및 전도성 층들은 국부적 상호접속부들(LI)에 의해 4개의 "핑거(finger)들"로 분할된다. 도 3은 2개의 핑거들 및 2개의 국부적 상호접속부들(LI)을 도시한다. 교번하는 유전체 층들 및 워드 라인 층들 아래에는 소스 라인 층(SL)이 있다. 메모리 홀들이 교번하는 유전체 층들 및 전도성 층들의 스택 내에 형성된다. 예를 들어, 메모리 홀들 중 하나가 MH로 마킹되어 있다. 도 3에서, 유전체 층들은 판독기가 교번하는 유전체 층들 및 전도성 층들의 스택 내에 위치된 메모리 홀들을 볼 수 있도록 시스루(see-through)로 도시되어 있다는 것에 유의한다. 일 실시예에서, NAND 스트링들은 메모리 셀들의 수직 컬럼을 생성하도록 메모리 홀을 전하 트래핑 재료를 포함하는 재료들로 충전함으로써 형성된다. 각각의 메모리 셀은 데이터의 하나 이상의 비트들을 저장할 수 있다. 메모리 구조물(326)을 포함하는 3차원 모놀리식 메모리 어레이의 더 상세한 사항들이 도 4a 내지 도 4f와 관련하여 하기에서 제공된다.
도 4a는 2개의 평면들(302, 304)로 분할된 메모리 구조물(326)의 하나의 예시적인 구성을 설명하는 블록도이다. 이어서, 각각의 평면은 M개의 블록들로 분할된다. 일례에서, 각각의 평면은 약 2000개의 블록들을 갖는다. 그러나, 상이한 개수의 블록들 및 평면들이 또한 사용될 수 있다. 일 실시예에서, 메모리 셀들의 블록은 소거의 단위이다. 즉, 블록의 모든 메모리 셀들은 함께 소거된다. 다른 실시예들에서, 메모리 셀들은 다른 이유들로, 예컨대, 신호전달(signaling) 및 선택 회로들을 인에이블시키도록 메모리 구조물(126)을 구성하기 위해 블록들로 그룹화될 수 있다. 일부 실시예들에서, 블록은 접속된 메모리 셀들의 그룹을 표현하는데, 이는 블록의 메모리 셀들이 워드 라인들의 공통 세트를 공유하기 때문이다.
도 4b 내지 도 4f는 도 3의 구조물에 대응하는 예시적인 3차원("3D") NAND 구조물을 도시하고, 도 2의 메모리 구조물(326)을 구현하는 데 사용될 수 있다. 도 4b는 메모리 구조물(326)로부터의 하나의 블록의 일부분의 평면도를 도시하는 블록도이다. 도 4b에 도시된 블록의 일부는 도 4a의 블록 2의 부분(306)에 대응한다. 도 4b에서 알 수 있는 바와 같이, 도 4b에 도시된 블록은 332의 방향으로 연장된다. 일 실시예에서, 메모리 어레이는 많은 층들을 갖지만; 도 4b는 상단 층만을 도시한다.
도 4b는 수직 컬럼들을 나타내는 복수의 원들을 도시한다. 수직 컬럼들 각각은 다수의 선택 트랜지스터들(선택 게이트 또는 셀렉트 게이트로도 지칭됨) 및 다수의 메모리 셀들을 포함한다. 일 실시예에서, 각각의 수직 컬럼은 NAND 스트링을 구현한다. 예를 들어, 도 4b는 수직 컬럼들(422, 432, 442 452)을 도시한다. 수직 컬럼(422)은 NAND 스트링(482)을 구현한다. 수직 컬럼(432)은 NAND 스트링(484)을 구현한다. 수직 컬럼(442)은 NAND 스트링(486)을 구현한다. 수직 컬럼(452)은 NAND 스트링(488)을 구현한다. 수직 컬럼들의 더 상세한 사항들은 아래에서 제공된다. 도 4b에 도시된 블록이 화살표(330)의 방향으로 그리고 화살표(332)의 방향으로 연장되기 때문에, 블록은 도 4b에 도시된 것보다 더 많은 수직 컬럼들을 포함한다.
도 4b는, 또한, 비트 라인들(411, 412, 413, 414, … 419)을 포함하는 비트 라인들의 세트(415)를 도시한다. 도 4b는 블록의 단지 일부만이 도시되어 있기 때문에 24개의 비트 라인들을 도시한다. 24개 초과의 비트 라인들이 블록의 수직 컬럼들에 접속된 것이 고려된다. 수직 컬럼들을 표현하는 원들 각각은 하나의 비트 라인에 대한 그의 접속부를 나타내도록 "x"를 갖는다. 예를 들어, 비트 라인(414)은 수직 컬럼들(422, 432, 442, 452)에 접속된다.
도 4b에 도시된 블록은 다양한 층들을 수직 컬럼들 아래의 소스 라인에 접속시키는 국부적 상호접속부들(402, 404, 406, 408, 410)의 세트를 포함한다. 국부적 상호접속부들(402, 404, 406, 408, 410)은, 또한, 블록의 각각의 층을 4개의 영역들로 분할하는 역할을 하는데; 예를 들어, 도 4b에 도시된 상단 층은 핑거들로 지칭되는 영역들(420, 430, 440, 450)로 분할된다. 메모리 셀들을 구현하는 블록의 층들에서, 4개의 영역들은 국부적 상호접속부들에 의해 분리되는 워드 라인 핑거들로 지칭된다. 일 실시예에서, 블록의 공통 레벨 상의 워드 라인 핑거들은 함께 접속되어 단일 워드 라인을 형성한다. 다른 실시예에서, 동일한 레벨 상의 워드 라인 핑거들은 서로 접속되지 않는다. 하나의 예시적인 구현예에서, 비트 라인은 영역들(420, 430, 440, 450) 각각 내의 하나의 수직 컬럼에만 접속된다. 그러한 구현예에서, 각각의 블록은 활성 컬럼들의 16개의 로우들을 갖고, 각각의 비트 라인은 각각의 블록 내의 4개의 로우들에 접속된다. 일 실시예에서, 공통 비트 라인에 접속된 4개의 로우들의 모두는 (서로 접속된 동일한 레벨 상의 상이한 워드 라인 핑거들을 통하여) 동일한 워드 라인에 접속되고; 그러므로, 시스템은 소스측 선택 라인들 및 드레인측 선택 라인들을 사용하여 메모리 동작(프로그래밍, 검증, 판독, 및/또는 소거)을 거치는 4개 중 하나(또는 다른 하나의 서브세트)를 선택한다.
도 4b가 블록 내에 수직 컬럼들의 4개의 로우들, 4개의 영역들 및 수직 컬럼들의 16개의 로우들을 갖는 각각의 영역을 도시하지만, 그러한 정확한 수들은 하나의 예시적인 구현예이다. 다른 실시예들은 블록당 더 많거나 더 적은 영역들, 영역당 수직 컬럼들의 더 많거나 더 적은 로우들, 및 블록당 수직 컬럼들의 더 많거나 더 적은 로우들을 포함할 수 있다.
도 4b는 또한 스태거링(staggering)된 수직 컬럼들을 도시한다. 다른 실시예들에서, 스태거링의 상이한 패턴들이 사용될 수 있다. 일부 실시예들에서, 수직 컬럼들은 스태거링되지 않는다.
도 4c는 도 4b의 라인(AA)을 따르는 단면도를 보여주는 3차원 메모리 구조물(326)의 일 실시예의 일부분을 도시한다. 이러한 단면도는 수직 컬럼들(432, 434) 및 영역(430)을 통하여 절단된다(도 4b 참조). 도 4c의 구조물은 4개의 드레인측 선택 층들(SGD0, SGD1, SGD2, SGD3); 4개의 소스측 선택 층들(SGS0, SGS1, SGS2, SGS3); 6개의 더미 워드 라인 층들(DD0, DD1, DS0, DS1, WLDL, WLDU); 및 데이터 메모리 셀들에 접속시키기 위한 96개의 데이터 워드 라인 층들(WLL0 내지 WLL95)을 포함한다. 다른 실시예들은 4개 초과 또는 미만의 드레인측 선택 층들, 4개 초과 또는 미만의 소스측 선택 층들, 6개 초과 또는 미만의 더미 워드 라인 층들, 및 96개 초과 또는 미만의 워드 라인들을 구현할 수 있다. 수직 컬럼들(432, 434)은 드레인측 선택 층들, 소스측 선택 층들, 더미 워드 라인 층들 및 워드 라인 층들을 통하여 돌출된 것으로 도시되어 있다. 일 실시예에서, 각각의 수직 컬럼은 수직 NAND 스트링을 포함한다. 예를 들어, 수직 컬럼(432)은 NAND 스트링(484)을 포함한다. 아래에 나열된 층들 및 수직 컬럼들 아래에는 기판(101), 기판 상의 절연 필름(454), 및 소스 라인(SL)이 있다. 수직 컬럼(432)의 NAND 스트링은 스택의 하단에 소스 단부를 갖고 스택의 상단에 드레인 단부를 갖는다. 도 4b와 일치하는 바와 같이, 도 4c는 커넥터(415)를 통하여 비트 라인(414)에 접속된 수직 컬럼(432)을 도시한다. 국부적 상호접속부들(404, 406)이 또한 도시되어 있다.
참조하기 용이하도록, 드레인측 선택 층들(SGD0, SGD1, SGD2, SGD3); 소스측 선택 층들(SGS0, SGS1, SGS2, SGS3); 더미 워드 라인 층들(DD0, DD1, DS0, DS1, WLDL, WLDU); 및 워드 라인 층들(WLL0 내지 WLL95)은 전도성 층들로 총칭된다. 일 실시예에서, 전도성 층들은 TiN과 텅스텐의 조합으로 제조된다. 다른 실시예들에서, 다른 재료들, 예컨대, 도핑된 폴리실리콘, 금속, 예컨대, 텅스텐 또는 금속 규화물이 전도성 층들을 형성하는 데 사용될 수 있다. 일부 실시예들에서, 상이한 전도성 층들이 상이한 재료들로 형성될 수 있다. 전도성 층들 사이에는 유전체 층들(DL0 내지 DL111)이 있다. 예를 들어, 유전체 층(DL104)은 워드 라인 층(WLL94) 위에 그리고 워드 라인 층(WLL95) 아래에 있다. 일 실시예에서, 유전체 층들은 SiO2로 제조된다. 다른 실시예들에서, 다른 유전체 재료들이 유전체 층들을 형성하는 데 사용될 수 있다.
비휘발성 메모리 셀들은 스택 내의 교번하는 전도성 및 유전체 층들을 통하여 연장되는 수직 컬럼들을 따라서 형성된다. 일 실시예에서, 메모리 셀들은 NAND 스트링들로 배열된다. 워드 라인 층들(WLL0 내지 WLL95)은 메모리 셀들(데이터 메모리 셀들로도 지칭됨)에 접속된다. 더미 워드 라인 층들(DD0, DD1, DS0, DS1, WLDL, WLDU)은 더미 메모리 셀들에 접속된다. 더미 메모리 셀은 호스트 데이터(호스트로부터 제공되는 데이터, 예컨대 호스트의 사용자로부터의 데이터)를 저장하지 않고 그를 저장하는 데 적격하지 않는 반면, 데이터 메모리 셀은 호스트 데이터를 저장하는 데 적격하다. 일부 실시예들에서, 데이터 메모리 셀들 및 더미 메모리 셀들은 동일한 구조물을 가질 수 있다. 더미 워드 라인이 더미 메모리 셀들에 접속된다. 드레인측 선택 층들(SGD0, SGD1, SGD2, SGD3)은 NAND 스트링들과 비트 라인들을 전기적으로 접속 및 접속해제시키는 데 사용된다. 소스측 선택 층들(SGS0, SGS1, SGS2, SGS3)은 NAND 스트링들과 소스 라인(SL)을 전기적으로 접속 및 접속해제시키는 데 사용된다.
도 4c는 또한 공동 영역(joint area)을 도시한다. 일 실시예에서, 유전체 층들과 상호혼합(intermix)된 96개의 워드 라인 층들을 에칭하는 것은 고가이고/이거나 난제이다. 이러한 부담을 낮추기 위해, 일 실시예는 유전체 층들과 교번하는 48개의 워드 라인 층들의 제1 스택을 레이다운(lay down)하는 것, 공동 영역을 레이다운하는 것, 및 유전체 층들과 교번하는 48개의 워드 라인 층들의 제2 스택을 레이다운하는 것을 포함한다. 공동 영역은 제1 스택과 제2 스택 사이에 위치된다. 공동 영역은 제1 스택을 제2 스택에 접속시키는 데 사용된다. 도 4c에서, 제1 스택은 "워드 라인들의 하부 세트"로 라벨링되고, 제2 스택은 "워드 라인들의 상부 세트"로 라벨링된다. 일 실시예에서, 공동 영역은 워드 라인 층들과 동일한 재료들로 제조된다. 구현예들의 하나의 예시적인 세트에서, 복수의 워드 라인들(제어 라인들)은, 도 4c에 도시된 바와 같이, 교번하는 워드 라인 층들 및 유전체 층들의 제1 스택, 교번하는 워드 라인 층들 및 유전체 층들의 제2 스택, 및 제1 스택과 제2 스택 사이의 공동 영역을 포함한다.
도 4d는 도 4c에 부분적으로 도시된 블록에 대한 전도성 층들(SGD0, SGD1, SGD2, SGD3, SGS0, SGS1, SGS2, SGS3, DD0, DD1, DS0, DS1, 및 WLL0 내지 WLL95)의 논리적 표현을 도시한다. 도 4b와 관련하여 앞서 언급된 바와 같이, 일 실시예에서, 국부적 상호접속부들(402, 404, 406, 408, 410)은 전도성 층들을 4개의 영역들/핑거들(또는 서브블록들)로 분해한다. 예를 들어, 워드 라인 층(WLL94)은 영역들(460, 462, 464, 466)로 분할된다. 워드 라인 층들(WLL0 내지 WLL127)의 경우, 영역들은 워드 라인 핑거들로 지칭되는데; 예를 들어, 워드 라인 층(WLL126)은 워드 라인 핑거들(460, 462, 464, 466)로 분할된다. 예를 들어, 영역(460)은 하나의 워드 라인 층 상의 하나의 워드 라인 핑거이다. 일 실시예에서, 동일한 레벨 상의 4개의 워드 라인 핑거들은 서로 접속된다. 다른 실시예에서, 각각의 워드 라인 핑거는 개별 워드 라인으로서 동작한다.
드레인측 선택 게이트 층(SGD0)(상단 층)은 또한 영역들(420, 430, 440, 450) - 또한 핑거들 또는 선택 라인 핑거들로 알려짐 - 로 분할된다. 일 실시예에서, 동일한 레벨 상의 4개의 선택 라인 핑거들은 서로 접속된다. 다른 실시예에서, 각각의 선택 라인 핑거는 개별 워드 라인으로서 동작한다.
도 4e는 수직 컬럼(432)(메모리 홀)의 일부분을 포함하는 도 4c의 영역(429)의 단면도를 도시한다. 일 실시예에서, 수직 컬럼들은 둥글지만; 다른 실시예에서는, 다른 형상들이 사용될 수 있다. 일 실시예에서, 수직 컬럼(432)은 SiO2와 같은 유전체로 제조된 내부 코어 층(470)을 포함한다. 다른 재료들이 또한 사용될 수 있다. 내부 코어(470)를 둘러싼 것이 폴리실리콘 채널(471)이다. 폴리실리콘 이외의 재료들이 또한 사용될 수 있다. 이것이 비트 라인 및 소스 라인에 접속된 채널(471)이라는 것에 유의해야 한다. 채널(471)을 둘러싼 것이 터널링 유전체(tunneling dielectric)(472)이다. 일 실시예에서, 터널링 유전체(472)는 ONO 구조를 갖는다. 터널링 유전체(472)를 둘러싼 것이 (예를 들어) 실리콘 질화물과 같은 전하 트래핑 층(473)이다. 다른 메모리 재료들 및 구조들이 또한 사용될 수 있다. 본 명세서에서 설명되는 기술은 임의의 특정 재료 또는 구조에 제한되지 않는다.
도 4e는 유전체 층들(DLL105, DLL104, DLL103, DLL102, DLL101), 및 워드 라인 층들(WLL95, WLL94, WLL93, WLL92, WLL91)을 도시한다. 워드 라인 층들의 각각은 차단 산화물 층(478)에 의해 둘러싸인 산화알루미늄 층(477)에 의해 둘러싸인 워드 라인 영역(476)을 포함한다. 워드 라인 층들의 수직 컬럼과의 물리적 상호작용은 메모리 셀들을 형성한다. 따라서, 메모리 셀은, 일 실시예에서, 채널(471), 터널링 유전체(472), 전하 트래핑 층(473), 차단 산화물 층(478), 산화알루미늄 층(477) 및 워드 라인 영역(476)을 포함한다. 예를 들어, 워드 라인 층(WLL95), 및 수직 컬럼(432)의 일부분은 메모리 셀(MC1)을 포함한다. 워드 라인 층(WLL94), 및 수직 컬럼(432)의 일부분은 메모리 셀(MC2)을 포함한다. 워드 라인 층(WLL93), 및 수직 컬럼(432)의 일부분은 메모리 셀(MC3)을 포함한다. 워드 라인 층(WLL92), 및 수직 컬럼(432)의 일부분은 메모리 셀(MC4)을 포함한다. 워드 라인 층(WLL91), 및 수직 컬럼(432)의 일부분은 메모리 셀(MC5)을 포함한다. 다른 아키텍처들에서, 메모리 셀이 상이한 구조를 가질 수 있지만; 메모리 셀은 여전히 저장 유닛일 것이다.
메모리 셀이 프로그래밍된 경우, 전자들은 메모리 셀과 연관된 전하 트래핑 층(473)의 일부에 저장된다. 이들 전자는, 워드 라인 영역(476) 상의 적절한 전압에 응답하여, 채널(471)로부터, 터널링 유전체(472)를 통하여, 전하 트래핑 층(473) 내로 인출된다. 메모리 셀의 임계 전압(Vth)은 저장된 전하의 양에 비례하여 증가된다. 일 실시예에서, 프로그래밍은 전하 트래핑 층 내로의 전자들의 파울러-노드하임 터널링(Fowler-Nordheim tunneling)을 통하여 달성된다. 소거 동작 동안, 전자들이 채널로 복귀되거나 정공들이 전하 트래핑 층 내로 주입되어 전자들과 재결합한다. 일 실시예에서, GIDL(Gate Induced Drain Leakage)과 같은 물리적 메커니즘을 통하여 전하 트래핑 층 내로의 정공 주입을 사용하여 소거가 달성된다.
도 4f는 도 3 내지 도 4e에 도시된 메모리의 일부분의 개략도이다. 도 4f는 전체 블록을 가로질러 이어지는 물리적 워드 라인들(WLL0 내지 WLL95)을 도시한다. 도 4f의 구조물은 비트 라인들(411, 412, 413, 414, … 419)을 포함하는 도 4a 내지 도 4e의 블록 2의 부분(306)에 대응한다. 블록 내에서, 각각의 비트 라인이 4개의 NAND 스트링들에 접속된다. 드레인측 선택 라인들(SGD0, SGD1, SGD2, SGD3)은 4개의 NAND 스트링들 중 어느 것이 연관된 비트 라인(들)에 접속되어 있는지 결정하는 데 사용된다. 소스측 선택 라인들(SGS0, SGS1, SGS2, SGS3)은 4개의 NAND 스트링들 중 어느 것이 공통 소스 라인에 접속되어 있는지 결정하는 데 사용된다. 블록은 또한 4개의 하위 블록들(SB0, SB1, SB2, SB3)로 분할되는 것으로 생각될 수 있다. 하위 블록(SB0)은 SGD0 및 SGS0에 의해 제어되는 이러한 수직 NAND 스트링들에 대응하고, 하위 블록(SB1)은 SGD1 및 SGS1에 의해 제어되는 이러한 수직 NAND 스트링들에 대응하고, 하위 블록(SB2)은 SGD2 및 SGS2에 의해 제어되는 이러한 수직 NAND 스트링들에 대응하고, 하위 블록(SB3)은 SGD3 및 SGS3에 의해 제어되는 이러한 수직 NAND 스트링들에 대응한다.
도 3 내지 도 4f의 예시적인 메모리 시스템이 전하 트래핑 재료를 갖는 수직 NAND 스트링들을 포함하는 3차원 메모리 구조물이지만, 다른(2D 및 3D) 메모리 구조물들이 또한 본 명세서에서 설명되는 기술과 함께 사용될 수 있다.
상기에서 논의된 메모리 시스템들은 소거, 프로그래밍, 및 판독될 수 있다. (검증에 의한) 성공적인 프로그래밍 프로세스의 종료 시, 메모리 셀들의 임계 전압들은, 적절하게, 프로그래밍된 메모리 셀들에 대한 임계 전압들의 하나 이상의 분포들 내에 또는 소거된 메모리 셀들에 대한 임계 전압들의 분포 내에 있어야 한다.
도 5는 임계 전압 대 메모리 셀들의 개수에 대한 그래프이며, 각각의 메모리 셀이 1 비트의 데이터를 저장할 때 메모리 어레이에 대한 예시적인 임계 전압 분포들을 도시한다. 도 5는 2개의 임계 전압 분포들, 즉 E 및 P를 도시한다. 임계 전압 분포 E는 소거된 데이터 상태에 대응한다. 임계 전압 분포 P는 프로그래밍된 데이터 상태에 대응한다. 따라서, 임계 전압 분포 E에서 임계 전압들을 갖는 메모리 셀들은 소거된 데이터 상태에 있다(예컨대, 그들이 소거됨). 따라서, 임계 전압 분포 P에서 임계 전압들을 갖는 메모리 셀들은 프로그래밍된 데이터 상태에 있다(예컨대, 그들이 프로그래밍됨). 일 실시예에서, 소거된 메모리 셀들은 데이터 "1"을 저장하고, 프로그래밍된 메모리 셀들은 데이터 "0"을 저장한다. 1 비트의 데이터를 저장하는 메모리 셀들은 단일 레벨 셀(single level cell, "SLC")들로 지칭된다.
도 6은 임계 전압 대 메모리 셀들의 개수에 대한 그래프이며, 각각의 메모리 셀이 3 비트의 데이터를 저장할 때 메모리 어레이에 대한 예시적인 임계 전압 분포들을 도시한다. 그러나, 다른 실시예들은 (예컨대, 메모리 셀당 1 비트, 2 비트, 4 비트, 또는 5 비트의 데이터와 같이) 메모리 셀당 다른 데이터 용량들을 사용할 수 있다. 1 초과 비트의 데이터를 저장하는 메모리 셀들은 다중 레벨 셀(multi-level cell, "MLC")들로 지칭된다. 도 6은 8개의 데이터 상태들에 대응하는 8개의 임계 전압 분포들을 도시한다. 데이터 상태 N에 대해, 그 데이터 상태 N은 데이터 상태 N-1보다 더 높은 임계 전압들 및 데이터 상태 N+1보다 더 낮은 임계 전압들을 갖는다. 제1 임계 전압 분포(데이터 상태)(S0)는 소거되는 메모리 셀들을 표현한다. 다른 7개의 임계 전압 분포들(데이터 상태들)(S1 내지 S7)은 프로그래밍되는 메모리 셀들을 표현하고, 그에 따라, 프로그래밍된 데이터 상태들로도 지칭된다. 일부 실시예들에서, 데이터 상태들(S1 내지 S7)은 중첩될 수 있고, 이때 제어기(122)는 저장되고 있는 정확한 데이터를 식별하도록 에러 정정에 의존한다.
도 6은 메모리 셀들로부터의 데이터를 판독하기 위한 7개의 판독 기준 전압들(Vr1, Vr2, Vr3, Vr4, Vr5, Vr6, Vr7)을 도시한다. 주어진 메모리 셀의 임계 전압이 7개의 판독 기준 전압들 초과인지 또는 미만인지의 여부를 테스트함으로써(예를 들어, 감지 동작들을 수행함으로써), 시스템은 메모리 셀이 어떤 데이터 상태(즉, S0, S1, S2, S3,...)에 있는지를 결정할 수 있다. 도 5에서, 판독 기준 전압(Vr)은 메모리 셀들이 소거되는지 또는 프로그래밍되는지를 테스트하는 데 사용된다.
도 6은 또한 7개의 검증 기준 전압들(Vv1, Vv2, Vv3, Vv4, Vv5, Vv6, Vv7)(검증 타깃 전압들로도 지칭됨)을 도시한다. 메모리 셀들을 데이터 상태(S1)로 프로그래밍할 때, 시스템은 그들 메모리 셀들이 Vv1 이상의 임계 전압을 갖고 있는지의 여부를 테스트할 것이다. 메모리 셀들을 데이터 상태(S2)로 프로그래밍할 때, 시스템은 메모리 셀들이 Vv2 이상의 임계 전압들을 갖고 있는지의 여부를 테스트할 것이다. 메모리 셀들을 데이터 상태(S3)로 프로그래밍할 때, 시스템은 메모리 셀들이 Vv3 이상의 임계 전압을 갖고 있는지의 여부를 결정할 것이다. 메모리 셀들을 데이터 상태(S4)로 프로그래밍할 때, 시스템은 그들 메모리 셀들이 Vv4 이상의 임계 전압을 갖고 있는지의 여부를 테스트할 것이다. 메모리 셀들을 데이터 상태(S5)로 프로그래밍할 때, 시스템은 그들 메모리 셀들이 Vv5 이상의 임계 전압을 갖고 있는지의 여부를 테스트할 것이다. 메모리 셀들을 데이터 상태(S6)로 프로그래밍할 때, 시스템은 그들 메모리 셀들이 Vv6 이상의 임계 전압을 갖고 있는지의 여부를 테스트할 것이다. 메모리 셀들을 데이터 상태(S7)로 프로그래밍할 때, 시스템은 그들 메모리 셀들이 Vv7 이상의 임계 전압을 갖고 있는지의 여부를 테스트할 것이다.
전체 시퀀스 프로그래밍으로 알려진 일 실시예에서, 메모리 셀들은 소거된 데이터 상태(S0)로부터 직접적으로 프로그래밍된 데이터 상태들(S1 내지 S7) 중 임의의 프로그래밍된 데이터 상태로 프로그래밍될 수 있다. 예를 들어, 프로그래밍될 메모리 셀들의 집단(population)은 그 집단 내의 모든 메모리 셀들이 소거된 데이터 상태(S0)에 있도록 먼저 소거될 수 있다. 이어서, 메모리 셀들을 직접적으로 데이터 상태들(S1, S2, S3, S4, S5, S6, 및/또는 S7)로 프로그래밍하는 데 프로그래밍 프로세스가 사용된다. 예를 들어, 일부 메모리 셀들이 데이터 상태(S0)로부터 데이터 상태(S1)로 프로그래밍되고 있는 동안, 다른 메모리 셀들은 데이터 상태(S0)로부터 데이터 상태(S2)로 그리고/또는 데이터 상태(S0)로부터 데이터 상태(S3)로, 등등으로 프로그래밍되고 있다. 도 6의 화살표들은 전체 시퀀스 프로그래밍을 표현한다. 본 명세서에 설명되는 기술은, 또한, 다수의 스테이지/단계 프로그래밍을 포함하는(그러나 이들로 제한되지 않는) 전체 시퀀스 프로그래밍뿐 아니라 다른 타입들의 프로그래밍과 함께 사용될 수 있다.
도 6의 각각의 임계 전압 분포(데이터 상태)는 메모리 셀들에 저장된 데이터 비트들의 세트에 대한 사전결정된 값들에 대응한다. 메모리 셀에 프로그래밍된 데이터와 메모리 셀의 임계 전압 레벨들 사이의 특정 관계는 메모리 셀들에 대해 채택된 데이터 인코딩 스킴(scheme)에 의존한다. 일 실시예에서, 데이터 값들은 그레이(Gray) 코드 할당을 이용하여 임계 전압 범위들에 할당되어, 메모리의 임계 전압이 그의 이웃하는 물리적 상태로 잘못 변이하는 경우, 단 하나의 비트만이 영향을 받게 할 것이다.
도 7은 데이터 상태들에 대한 데이터 값들의 할당의 일례를 기술한 표이다. 도 6의 표에서, S0=111(소거 상태), S1=110, S2=100, S3=000, S4=010, S5=011, S6=001 및 S7=101이다. 데이터의 다른 인코딩이 또한 사용될 수 있다. 어떠한 특정 데이터 인코딩도 본 명세서에 개시되는 기술에 의해 요구되지는 않는다. 일 실시예에서, 블록이 소거 동작에 대한 대상이 될 때, 모든 메모리 셀들이 데이터 상태(S0), 즉 소거 상태로 변화된다.
대체로, 검증 동작들 및 판독 동작들 동안, 선택된 워드 라인은 일정 전압(기준 신호의 일례)에 접속되는데, 그의 레벨은, 관심 메모리 셀의 임계 전압이 그러한 레벨에 도달했는지의 여부를 결정하기 위해, 각각의 판독 동작(예컨대, 도 6의 판독 기준 전압들(Vr1, Vr2, Vr3, Vr4, Vr5, Vr6, Vr7) 참조) 또는 검증 동작(예컨대, 도 6의 검증 기준 전압들(Vv1, Vv2, Vv3, Vv4, Vv5, Vv6, Vv7) 참조)에 대해 특정된다. 워드 라인 전압을 인가한 후에, 워드 라인에 인가되는 전압에 응답하여 메모리 셀이 턴온되었는지(전류를 도통시켰는지)의 여부를 결정하기 위해 메모리 셀의 전도 전류가 측정된다. 전도 전류가 소정 값보다 큰 것으로 측정되는 경우, 메모리 셀이 턴온되었고 워드 라인에 인가된 전압이 메모리 셀의 임계 전압보다 크다고 가정된다. 전도 전류가 소정 값보다 큰 것으로 측정되지 않은 경우, 메모리 셀이 턴온되지 않았고 워드 라인에 인가된 전압이 메모리 셀의 임계 전압보다 크지 않다고 가정된다. 판독 또는 검증 프로세스 동안, 비선택된 메모리 셀들에는 그들의 제어 게이트들에서 하나 이상의 판독 통과 전압들(바이패스 전압들로도 지칭됨)이 제공되어, 이들 메모리 셀들이 통과 게이트들로서 동작하게 할 것이다(예컨대, 그들이 프로그래밍되는지 또는 소거되는지의 여부와 관계없이 전류를 도통시킴).
판독 또는 검증 동작 동안 메모리 셀의 전도 전류를 측정하는 많은 방법들이 있다. 일례에서, 메모리 셀의 전도 전류는 그것이 감지 증폭기에서 전용 커패시터를 방전시키거나 충전하는 속도에 의해 측정된다. 다른 예에서, 선택된 메모리 셀의 전도 전류는 메모리 셀을 포함하는 NAND 스트링이 대응하는 비트 라인을 방전시키는 것을 허용한다(또는 방전시키는 것을 허용하지 않는다). 비트 라인 상의 전압은, 그것이 방전되었는지 또는 방전되지 않았는지의 여부를 알기 위해 일정 기간 후에 측정된다. 본 명세서에 설명된 기술은 검증/판독을 위해 당업계에 공지된 상이한 방법들과 함께 사용될 수 있음에 유의한다. 당업계에 공지된 다른 판독 및 검증 기법들이 또한 사용될 수 있다.
도 8은 메모리 다이(300)에 의해 수행되는 프로그래밍을 위한 프로세스의 일 실시예를 기술한 흐름도이다. 하나의 예시적인 실시예에서, 도 8의 프로세스는, 상태 머신(312)의 명령으로, 위에서 논의된 제어 회로를 사용하여 메모리 다이(300) 상에서 수행된다. 도 8의 프로세스는 도 5의 프로그래밍, 도 6의 풀 시퀀스 프로그래밍, 또는 멀티-스테이지 프로그래밍을 포함하는 다른 프로그래밍 스킴들을 구현하도록 수행된다. 멀티-스테이지 프로그래밍을 구현할 때, 도 8의 프로세스는 멀티-스테이지 프로그래밍 프로세스의 임의의/각각의 스테이지를 구현하는 데 사용된다.
전형적으로, 프로그래밍 신호(Vpgm)는, 도 9에 도시된 바와 같이, 일련의 프로그래밍 전압 펄스들로서 프로그래밍 동작 동안 (선택된 워드 라인을 통해) 제어 게이트들에 인가된다. 프로그래밍 펄스들 사이에는 검증을 수행하기 위한 검증 펄스들의 세트가 있다. 많은 구현예들에서, 프로그램 펄스들의 크기는 각각의 연속적인 펄스로 사전결정된 스텝 크기(예컨대, 0.2 v 내지 0.5 v)만큼 증가된다. 도 8의 단계(570)에서, 프로그래밍 전압(Vpgm)은 시작 크기(예컨대, ~12 내지 16 V 또는 다른 적합한 레벨)로 초기화되고, 상태 머신(312)에 의해 유지되는 프로그램 카운터(PC)가 1에서 초기화된다. 단계(572)에서, 프로그래밍 신호(Vpgm)의 프로그램 펄스가 선택된 워드 라인(프로그래밍을 위해 선택된 워드 라인)에 인가된다. 일 실시예에서, 동시에 프로그래밍되고 있는 메모리 셀들의 그룹은 모두, 동일한 워드 라인(선택된 워드 라인)에 접속된다. 비선택된 워드 라인들은 당업계에 알려져 있는 부스팅 스킴들을 수행하기 위해 하나 이상의 부스팅 전압들(예컨대, ~7 내지 11 볼트)을 수신한다. 일 실시예에서, 메모리 셀이 프로그래밍되어야 하는 경우, 대응하는 비트 라인이 접지된다. 한편, 메모리 셀이 그의 현재 임계 전압에서 유지되어야 하는 경우, 대응하는 비트 라인은 프로그래밍을 금지하기 위해 Vdd(예컨대, 1 내지 3.5 볼트)에 접속된다. 단계(572)에서, 프로그래밍 전압 펄스는 선택된 워드 라인에 접속된 모든 메모리 셀들에 동시에 인가되어, 선택된 워드 라인에 접속된 모든 메모리 셀들이 동시에 프로그래밍되도록 한다. 즉, 이들은 동시에 또는 중복되는 시간들 동안(이들 양측 모두는 동시에 발생하는 것으로 간주됨) 프로그래밍된다. 이러한 방식으로, 선택된 워드 라인에 접속된 모든 메모리 셀들은, 그들이 프로그래밍되는 것이 록아웃되지 않았다면, 그들의 임계 전압이 동시에 변화하게 할 것이다.
단계(574)에서, 적절한 메모리 셀들은 하나 이상의 검증 동작들을 수행하기 위해 적절한 세트의 검증 기준 전압들을 사용하여 검증된다. 일 실시예에서, 검증 프로세스는, 프로그래밍을 위해 선택된 메모리 셀들의 임계 전압들이 적절한 검증 기준 전압에 도달했는지의 여부를 테스트함으로써 수행된다.
단계(576)에서, 모든 메모리 셀들이 그들의 타깃 임계 전압들에 도달했는지(통과)의 여부가 결정된다. 그러한 경우, 프로그래밍 프로세스는 완전하고 성공적인데, 그 이유는 모든 선택된 메모리 셀들이 그들의 타깃 상태들로 프로그래밍 및 검증되었기 때문이다. 단계(578)에서 "통과"(또는 성공)의 상태가 리포트된다. 576에서, 모든 메모리 셀들이 그들의 타깃 임계 전압들에 도달하지 않았다고(실패) 결정되는 경우, 프로그래밍 프로세스는 단계(580)로 계속된다.
단계(580)에서, 시스템은 그들의 각자의 타깃 임계 전압 분포에 아직 도달하지 않은 메모리 셀들의 수를 카운트한다. 즉, 시스템은, 지금까지 검증 프로세스를 실패한 메모리 셀들의 수를 카운트한다. 이러한 카운팅은 상태 머신(312), 제어기(120), 또는 다른 로직에 의해 행해질 수 있다. 일 구현예에서, 감지 블록들 각각은 그들의 각자의 메모리 셀들의 상태(통과/실패)를 저장할 것이다. 일 실시예에서, 최종 검증 단계를 실패한, 현재 프로그래밍되고 있는 메모리 셀들의 총 수를 반영하는 하나의 총 카운트가 있다. 다른 실시예에서, 각각의 데이터 상태에 대해 별개의 카운트들이 계속된다.
단계(582)에서, 단계(580)로부터의 카운트가 사전결정된 한도 이하인지의 여부가 결정된다. 일 실시예에서, 사전결정된 한도는 메모리 셀들의 페이지에 대한 판독 프로세스 동안 에러 정정 코드(ECC)들에 의해 정정될 수 있는 비트들의 수이다. 실패한 셀들의 수가 사전결정된 한도 이하인 경우, 프로그래밍 프로세스는 중지될 수 있고 단계(578)에서 "통과"의 상태가 리포트된다. 이러한 상황에서, 완전히 프로그래밍되지 않았던 몇몇의 나머지 메모리 셀들이 판독 프로세스 동안 ECC를 사용하여 정정될 수 있도록 충분한 메모리 셀들이 정확하게 프로그래밍되었다. 일부 실시예들에서, 단계(580)는 각각의 섹터에 대한 실패된 셀들의 수, 각각의 타깃 데이터 상태 또는 다른 유닛을 카운트할 것이고, 그 카운트들은 개별적으로 또는 집합적으로 단계(582)에서 하나 이상의 임계치들과 비교될 것이다.
일 실시예에서, 사전결정된 한도는 향후의 에러들을 허용하기 위해 판독 프로세스 동안 ECC에 의해 정정될 수 있는 비트들의 총 수 미만일 수 있다. 페이지에 대해 메모리 셀들의 전체보다 적은 메모리 셀들을 프로그래밍하는 경우, 또는 단지 하나의 데이터 상태(또는 전체보다 적은 상태들)에 대한 카운트를 비교하는 경우, 사전결정된 한계는 메모리 셀들의 페이지에 대한 판독 프로세스 동안 ECC에 의해 정정될 수 있는 비트들의 수의 (비례하는 또는 비례하지 않는) 일부분일 수 있다. 일부 실시예들에서, 한도는 사전결정되지 않는다. 대신에, 그것은 페이지에 대해 이미 카운트된 에러들의 수, 수행되는 프로그래밍-소거 사이클들의 수 또는 다른 기준들에 기초하여 변화한다.
실패한 메모리 셀들의 수가 사전결정된 한도 이상인 경우, 프로그래밍 프로세스는 단계(584)에서 계속되고, 프로그램 카운터(PC)가 프로그램 한도 값(PL)에 대해 체크된다. 프로그램 한도 값들의 예들은 6, 20 및 30을 포함하지만; 다른 값들이 사용될 수 있다. 프로그램 카운터(PC)가 프로그램 한도 값(PL) 이상이면, 프로그램 프로세스는 실패한 것으로 간주되고 단계(588)에서 실패의 상태가 리포트된다. 프로그램 카운터(PC)가 프로그램 한도 값(PL) 미만이면, 프로세스는 단계(586)에서 계속되고, 그 시간 동안 프로그램 카운터(PC)는 1만큼 증분되고 프로그램 전압(Vpgm)은 다음 크기로 스텝업(step up)된다. 예를 들어, 다음 펄스는 이전 펄스보다 스텝 크기(예컨대, 0.1 내지 0.4 볼트의 스텝 크기)만큼 큰 크기를 가질 것이다. 단계(586) 후에, 프로세스는 단계(572)로 루프 백(loop back)되고, 다른 프로그램 펄스가 선택된 워드 라인에 인가되어, 도 8의 프로그래밍 프로세스의 다른 반복(단계들(572 내지 586))이 수행되게 한다.
(예컨대, 전자 표류, 데이터 보유 문제 또는 다른 현상으로 인해) 프로그래밍 또는 판독할 때 에러들이 발생할 수 있고 데이터를 저장하는 동안에 에러들이 발생할 수 있다는 것이 가능하기 때문에, 데이터의 프로그래밍과 함께 에러 정정이 이용된다. 메모리 시스템들은, 종종, 에러 정정 코드(ECC)를 사용하여 손상으로부터 데이터를 보호한다. 많은 ECC 코딩 스킴들은 본 기술 분야에 주지되어 있다. 이러한 종래의 에러 정정 코드들은, 그러한 코딩 스킴들이 제공하여, 약간의 프로그래밍가능하지 않거나 결함이 있는 셀들을 갖는 디바이스들을 사용가능한 것이 되게 할 수 있는 디바이스 신뢰도 및 제조 수율에 대한 실질적인 영향 때문에 플래시(및 다른 비휘발성) 메모리들을 비롯한 대규모 메모리들에 특히 유용하다. 물론, 코드 비트들(즉, 코드 "레이트")을 저장할 추가 메모리 셀들을 제공하는 비용과 수율 절감 사이에는 절충안이 존재한다. 이와 같이, 일부 ECC 코드들은 다른 것들보다 플래시 메모리 디바이스들에 더 적합하다. 일반적으로, 플래시 메모리 디바이스들을 위한 ECC 코드들은 데이터 통신 애플리케이션(1/2 정도로 낮은 코드 레이트들을 가질 수 있음)에서 사용되는 코드들보다 더 높은 코드 레이트들(즉, 코드 비트 대 데이터 비트의 더 낮은 비율)을 갖는 경향이 있다. 플래시 메모리 저장과 관련하여 통상적으로 사용되는 주지의 ECC 코드들의 예에는 Reed-Solomon 코드, 다른 BCH 코드, Hamming 코드 등이 포함된다. 때때로, 플래시 메모리 저장과 관련하여 사용되는 에러 정정 코드들은, 궁극적인 코드 워드의 데이터 부분이 인코딩되고 있는 실제 데이터로부터 변경되지 않고, 이때 코드 또는 패리티 비트들이 데이터 비트에 덧붙여져서 완전한 코드 워드를 형성한다는 점에서 "체계적"이다.
주어진 에러 정정 코드에 대한 특정 파라미터들은 코드의 타입, 코드 워드가 도출되는 실제 데이터의 블록의 크기, 및 인코딩 후의 코드 워드의 전체 길이를 포함한다. 예를 들어, 512 바이트(4096 비트)의 데이터 섹터에 적용되는 전형적인 BCH 코드는, 적어도 60개의 ECC 또는 패리티 비트들이 사용되는 경우, 최대 4개의 에러 비트들을 정정할 수 있다. Reed-Solomon 코드들은 BCH 코드들의 서브세트이고, 또한, 에러 정정을 위해 보편적으로 사용된다. 예를 들어, 전형적인 Reed-Solomon 코드는 약 72개의 ECC 비트들을 사용하여 512 바이트 섹터의 데이터에서 최대 4개의 에러들을 정정할 수 있다. 플래시 메모리 콘텍스트에서, 에러 정정 코딩은 제조 수율에서뿐 아니라 시간 경과에 따른 플래시 메모리의 신뢰도에서 실질적인 개선을 제공한다.
일부 실시예들에서, 제어기(102)는 비휘발성 메모리 구조물(326)에 저장될 정보 비트들로도 지칭되는 호스트 데이터(메모리 시스템 외부의 엔티티로부터의 데이터 또는 사용자 데이터로도 지칭됨)를 수신한다. 정보 비트들은 행렬 i = [1 0]에 의해 표현된다(오로지 예시의 목적을 위해 2 비트들이 사용되며, 많은 실시예들이 2 비트보다 더 긴 코드 워드들을 갖는다는 것에 유의한다). 에러 정정 코딩 프로세스(예컨대, 상기에 언급되었거나 하기에 언급되는 프로세스들 중 임의의 것)가 제어기(120)의 ECC 엔진(158)에 의해 구현되는데, 여기서 패리티 비트들이 정보 비트에 추가되어, 행렬 또는 코드 워드 v = [1 0 1 0]에 의해 표현되는 데이터를 제공하며, 이는 2개의 패리티 비트들이 데이터 비트들에 덧붙여졌음을 나타낸다. 더 복합한 방식들로 입력 데이터를 출력 데이터에 맵핑하는 다른 기법들이 이용될 수 있다. 예를 들어, Gallager 코드들로도 지칭되는 LDPC(low density parity check) 코드들이 사용될 수 있다. LDPC 코드들에 관한 더 많은 세부사항들은 R.G. Gallager의 "Low-density parity-check codes"(IRE Trans. Inform. Theory, vol. IT-8, pp. 21 28, Jan. 1962); 및 D. MacKay의 "Information Theory, Inference and Learning Algorithms"(Cambridge University Press 2003, chapter 47)에서 찾을 수 있다. 실제로, 그러한 LDPC 코드들은 전형적으로 (예컨대, ECC 엔진(158)에 의해) 다수의 저장 요소들에 걸쳐서 인코딩된 다수의 페이지들에 적용되지만, 그들이 다수의 페이지들에 걸쳐서 적용될 필요는 없다. 데이터 비트들은, v에 대응하는 하나 이상의 프로그래밍된 상태들에 대해 하나 이상의 메모리 셀들을 프로그래밍함으로써, 논리적 페이지에 맵핑될 수 있고 메모리 구조물(326)에 저장될 수 있다.
일 실시예에서, 프로그래밍은 메모리 셀들의 임계 전압을 프로그래밍된 데이터 상태들(S1 내지 S7) 중 하나로 상승시키는 역할을 한다. 소거는 메모리 셀들의 임계 전압을 소거 데이터 상태(S0)로 낮추는 역할을 한다.
일부 메모리 디바이스들 내의 메모리 셀들을 소거하기 위한 한 가지 기법은 p-웰(또는 다른 타입들의) 기판을 고전압으로 바이어싱하여 NAND 채널을 충전하는 것이다. 메모리 셀들의 제어 게이트들에 소거 인에이블 전압이 인가되는 한편, NAND 채널은 고전압 상태에 있어서 비휘발성 저장 요소들(메모리 셀들)을 소거한다. 메모리 셀들을 소거하는 것에 대한 다른 접근법은 게이트 유도 드레인 누설(GIDL) 전류를 생성하여 NAND 스트링 채널을 충전하는 것이다. 메모리 셀들의 제어 게이트들에 소거 인에이블 전압이 인가되는 한편, 스트링 채널 전위를 유지하여 메모리 셀들을 소거한다.
일 실시예에서, GIDL 전류는 선택 트랜지스터에 드레인-게이트 전압을 야기함으로써 생성된다. GIDL 전류를 생성하는 트랜지스터 드레인-게이트 전압은 본 명세서에서 GIDL 전압으로 지칭된다. 선택 트랜지스터 드레인 전압이 선택 트랜지스터 제어 게이트 전압보다 현저히 더 높을 때 GIDL 전류를 생성할 수 있다. GIDL 전류는 캐리어 생성, 즉 대역간 터널링(band-to-band tunneling) 및/또는 트랩-보조 생성(trap-assisted generation)으로 인한 전자-정공 쌍 생성의 결과이다. 일 실시예에서, GIDL 전류는 한 가지 타입의 캐리어들, 예컨대 정공들이 주로 NAND 채널 내로 이동하게 하여, 이에 의해, 채널의 전위를 상승시킬 수 있다. 다른 타입의 캐리어들, 예컨대 전자들은 전기장에 의해 비트 라인의 방향으로 또는 소스 라인의 방향으로 채널로부터 추출된다. 소거 동안, 홀들은 채널로부터 메모리 셀들의 전하 저장 영역까지 터널링하고 거기에서 전자들과 재결합하여, 메모리 셀들의 임계 전압을 낮출 수 있다.
GIDL 전류는 NAND 스트링의 단부의 어느 쪽에서든 생성될 수 있다. 제1 GIDL 전압은 비트 라인에 접속된 선택 트랜지스터(예컨대, 드레인측 선택 트랜지스터)의 2개의 단자들 사이에 생성되어, 제1 GIDL 전류를 생성하게 할 수 있다. 제2 GIDL 전압은 소스 라인에 접속된 선택 트랜지스터(예컨대, 소스측 선택 트랜지스터)의 2개의 단자들 사이에 생성되어, 제2 GIDL 전류를 생성하게 할 수 있다. NAND 스트링의 한쪽 단부에서만의 GIDL 전류에 기초한 소거는 단면(one-sided) GIDL 소거로 지칭된다. NAND 스트링의 양측 단부들에서의 GIDL 전류에 기초한 소거는 양면 GIDL 소거로 지칭된다.
위에서 논의된 바와 같이, 도 9는 일련의 프로그래밍 전압 펄스들로서 프로그래밍 신호(Vpgm)를 도시한다. 이들 프로그래밍 전압 펄스들은 데이터 상태로 프로그래밍되고 있는 복수의 비휘발성 메모리 셀들에 인가되는 프로그래밍의 도즈들의 일례이다. 도 8에 의해 기술된 바와 같이, 시스템은, 도 10 및 도 11에 도시된 바와 같이, 프로그래밍의 도즈들 사이에서 프로그램 검증을 수행한다. 메모리 셀들이 메모리 셀당 1 비트의 데이터를 저장하는 일 실시예를 도시하는 도 10은 도 9의 프로그래밍 전압 펄스들(602, 604) 중 2개를 도시한다. 프로그래밍 전압 펄스들(602, 604) 사이에는 검증 전압 펄스(610)가 있다. 일 실시예에서, 검증 전압 펄스(610)는 Vv의 크기를 갖고(도 5 참조), 시스템이 프로그래밍의 도즈들(단계(572)의 연속적인 반복들) 사이에서 프로그램 검증을 수행하는 것(단계(574))을 표현한다.
메모리 셀들이 메모리 셀당 3 비트의 데이터를 저장하는 일 실시예를 도시하는 도 11은 도 9의 프로그래밍 전압 펄스들(602, 604) 중 2개를 도시한다. 프로그래밍 전압 펄스들(602, 604) 사이에는 검증 전압 펄스들(v1, v2, v3, v4, v5, v6, v7)이 있다. 일 실시예에서, 검증 전압 펄스(v1)는 Vv1의 크기를 갖고(도 6 참조), 검증 전압 펄스(v2)는 Vv2의 크기를 갖고, 검증 전압 펄스(v3)는 Vv3의 크기를 갖고, 검증 전압 펄스(v4)는 Vv4의 크기를 갖고, 검증 전압 펄스(v5)는 Vv5의 크기를 갖고, 검증 전압 펄스(v6)는 Vv6의 크기를 갖고, 검증 전압 펄스(v7)는 Vv7의 크기를 갖는다. 검증 전압 펄스들(v1, v2, v3, v4, v5, v6, v7)은 시스템이 프로그래밍의 도즈들(단계(572)의 연속적인 반복) 사이에서의 프로그램 검증을 수행하는 것(단계(574))을 표현한다.
도 12는 비휘발성 메모리의 프로그래밍을 검증하기 위한 프로세스의 일 실시예를 기술한 흐름도이다. 즉, 도 12의 프로세스는 메모리 셀들이 메모리 셀당 3 비트의 데이터를 저장하는 일 실시예에 대한 도 8의 단계(574)의 예시적인 구현 동안 수행되는 프로세스이다. 도 12의 프로세스는 도 9 및 도 11의 파형들을 사용하여 수행된다. 도 12의 단계(660)에서, 시스템은 데이터 상태(S1)에 대한 검증을 수행한다. 예를 들어, 시스템은, 데이터 상태(S1)로 프로그래밍되고 있는 메모리 셀들이 Vv1 초과의 임계 전압들을 갖는지의 여부를 (예컨대, 도 11의 검증 전압 펄스(v1)를 데이터 상태(S1)로 프로그래밍되고 있는 메모리 셀들의 제어 게이트들에 인가하여) 테스트한다.
단계(662)에서, 시스템은 데이터 상태(S2)에 대한 검증을 수행한다. 예를 들어, 시스템은, 데이터 상태(S2)로 프로그래밍되고 있는 메모리 셀들이 Vv2 초과의 임계 전압들을 갖는지의 여부를 (예컨대, 도 11의 검증 전압 펄스(v2)를 데이터 상태(S2)로 프로그래밍되고 있는 메모리 셀들의 제어 게이트들에 인가하여) 테스트한다.
단계(664)에서, 시스템은 데이터 상태(S3)에 대한 검증을 수행한다. 예를 들어, 시스템은, 데이터 상태(S3)로 프로그래밍되고 있는 메모리 셀들이 Vv3 초과의 임계 전압들을 갖는지의 여부를 (예컨대, 도 11의 검증 전압 펄스(v3)를 데이터 상태(S3)로 프로그래밍되고 있는 메모리 셀들의 제어 게이트들에 인가하여) 테스트한다.
단계(666)에서, 시스템은 데이터 상태(S4)에 대한 검증을 수행한다. 예를 들어, 시스템은, 데이터 상태(S4)로 프로그래밍되고 있는 메모리 셀들이 Vv4 초과의 임계 전압들을 갖는지의 여부를 (예컨대, 도 11의 검증 전압 펄스(v4)를 데이터 상태(S4)로 프로그래밍되고 있는 메모리 셀들의 제어 게이트들에 인가하여) 테스트한다.
단계(668)에서, 시스템은 데이터 상태(S5)에 대한 검증을 수행한다. 예를 들어, 시스템은, 데이터 상태(S5)로 프로그래밍되고 있는 메모리 셀들이 Vv5 초과의 임계 전압들을 갖는지의 여부를 (예컨대, 도 11의 검증 전압 펄스(v5)를 데이터 상태(S5)로 프로그래밍되고 있는 메모리 셀들의 제어 게이트들에 인가하여) 테스트한다.
단계(670)에서, 시스템은 데이터 상태(S6)에 대한 검증을 수행한다. 예를 들어, 시스템은, 데이터 상태(S6)로 프로그래밍되고 있는 메모리 셀들이 Vv6 초과의 임계 전압들을 갖는지의 여부를 (예컨대, 도 11의 검증 전압 펄스(v6)를 데이터 상태(S6)로 프로그래밍되고 있는 메모리 셀들의 제어 게이트들에 인가하여) 테스트한다.
단계(672)에서, 시스템은 데이터 상태(S7)에 대한 검증을 수행한다. 예를 들어, 시스템은, 데이터 상태(S7)로 프로그래밍되고 있는 메모리 셀들이 Vv7 초과의 임계 전압들을 갖는지의 여부를 (예컨대, 도 11의 검증 전압 펄스(v7)를 데이터 상태(S7)로 프로그래밍되고 있는 메모리 셀들의 제어 게이트들에 인가하여) 테스트한다. 일 실시예에서, 단계들(660 내지 672)은 프로그래밍의 도즈들 사이에서(예컨대, 프로그래밍 전압 펄스들 사이에서) 수행된다는 것에 유의한다. 일부 실시예들에서, 단계들(660 내지 672) 중 하나 이상이 소정의 프로그래밍 전압 펄스들 사이에서 스킵할 수 있다. 일 실시예에서, 단계들(660 내지 672)은 순차적으로(임의의 순서로 또는 도시된 순서로) 수행되는 반면, 다른 실시예들에서, 단계들(660 내지 672)은 병행하여(예컨대, 동시에) 수행된다.
프로그래밍을 검증하는 하나의 수단은 특정 비교 포인트(예컨대, 검증 기준 전압)에서의 전도를 테스트하는 것이다. 충분히 프로그래밍되는 것으로 검증되는 메모리 셀들은, 예를 들어 비트 라인 전압을 0으로부터 Vdd로 상승시켜서 그들 메모리 셀들에 대한 프로그래밍 프로세스를 중지함으로써, 록아웃된다. 예를 들어, 도 13a는 임계 전압(Vth) 대 시간 및 비트 라인 전압(Vbl) 대 시간의 그래프들을 도시한다. 메모리 셀이 그의 제어 게이트에서 도 9의 프로그램 전압(Vpgm)을 수신하고 있는 동안, 메모리 셀의 임계 전압은 증가한다. 메모리 셀의 임계 전압이 검증 기준 전압(Vver)(예컨대, 적절히, 도 5 및 도 6의 Vv, Vv1, Vv2, Vv3, Vv4, Vv5, Vv6, Vv7 중 임의의 것)에 도달할 때, 비트 라인 전압은 Vinhibit(예컨대, Vdd)로 상승된다.
도 13a에 도시된 바와 같이 프로그래밍하고 검증할 때, 프로그래밍의 속도와 프로그래밍의 정밀도 사이에는 트레이드오프(tradeoff)가 있다. 프로그래밍의 정밀도는 프로그래밍 프로세스에 후속하는, 프로그래밍된 메모리 셀들의 임계 전압들의 분포와 관련된다. 임계 전압 분포가 더 조밀할수록, 메모리 셀들을 명료하게 판독하는 것이 더 용이하다. 조밀한 임계 전압 분포들의 필요성은 멀티-레벨 메모리 셀들이 다수의 비트들의 데이터를 저장하는 것과 함께 훨씬 더 중요한데, 그 이유는 판독 프로세스가 (예컨대, 데이터 상태들(S1 내지 S7)에 대해) 상이한 임계 전압 분포들 사이를 분명하게 구별할 필요가 있기 때문이다. 조밀한 임계 전압 분포를 얻기 위해, 프로그램 전압(Vpgm)에 대해 더 작은 스텝 크기가 사용될 수 있다. 그러나, 더 작은 스텝 크기를 사용하는 것은 프로그래밍 프로세스를 느려지게 한다.
프로그래밍 프로세스의 개선이 도 13b에 도시되어 있으며, 이는 대략적인/미세한 프로그래밍 프로세스로 지칭될 수 있다. 도 13b의 프로세스는 프로그래밍될 메모리 셀들의 제어 게이트들에 도 9의 프로그램 전압 신호(Vpgm)를 인가한다. 프로그래밍 전압 펄스들 사이에서, 검증 동작들이 수행된다. 프로그래밍되고 있는 메모리 셀의 임계 전압이 중간 검증 기준 전압(VverI) 미만인 경우, 프로그래밍은 그 메모리 셀에 대해 계속되며, 이때 비트 라인 전압이 로우(low)(예컨대, 0 볼트)로 유지된다. 이는 대략적인/미세한 프로그래밍 프로세스의 대략적인 단계인데, 그 이유는 메모리 셀들이 더 빠르게 프로그래밍되기 때문이다. 프로그래밍되고 있는 메모리 셀의 임계 전압이 중간 검증 기준 전압(VverI) 초과이고 최종 검증 기준 전압(VverF) 미만인 경우, 중간 비트 라인 전압(예컨대, 0.5 내지 1.0 볼트)이 인가된다. 중간 비트 라인 전압의 결과로서, 메모리 셀에 대한 채널 전압은 증가할 것이고, 그 메모리 셀의 프로그래밍은 느려질 것인데, 그 이유는 각각의 프로그래밍 전압 펄스로 인한 임계 전압의 시프트가 감소될 것이기 때문이다. 이는 대략적인/미세한 프로그래밍 프로세스의 미세한 단계이다. 비트 라인은, 메모리 셀의 임계 전압이 최종 검증 기준 전압(VverF)에 도달할 때까지, 다수의 프로그래밍 전압 펄스들에 대해 중간 비트 라인 전압으로 유지될 것이다. 메모리 셀의 임계 전압이 최종 검증 기준 전압(VverF)에 도달할 때, 비트 라인은 (예컨대, 비트 라인 전압을 Vinhibit(예컨대, 1 내지 5 볼트일 수 있는 Vdd)로 상승시킴으로써) 추가 프로그래밍을 금지하도록 상승될 것이다. 최종 검증 기준 전압(VverF)은 메모리 셀들이 프로그래밍되고 있는 데이터 상태에 대한 검증 기준 전압에 대응한다는 것에 유의한다. 예를 들어, 단계(660)(도 12 참조) 동안, 최종 검증 기준 전압(VverF)은 Vv1에 대응하고; 단계(662) 동안, 최종 검증 기준 전압(VverF)은 Vv2에 대응하고; 단계(664) 동안, 최종 검증 기준 전압(VverF)은 Vv3에 대응하고; 단계(666) 동안, 최종 검증 기준 전압(VverF)은 Vv4에 대응하고; 단계(668) 동안, 최종 검증 기준 전압(VverF)은 Vv5에 대응하고; 단계(670) 동안, 최종 검증 기준 전압(VverF)은 Vv6에 대응하고; 단계(672) 동안, 최종 검증 기준 전압(VverF)은 Vv7에 대응한다. 일 실시예에서, 데이터 상태에 대한 중간 검증 기준 전압(VverI)은 데이터 상태에 대한 최종 검증 기준 전압(VverF)보다 0.25 볼트 더 낮다. 데이터 상태에 대한 VverI과 VverF 사이의 다른 분리 크기들이 또한 사용될 수 있다.
도 13b의 접근법을 이용하는 것은 프로그래밍 임계 전압 분포가 도 13a의 프로세스보다 더 좁아지게 하는데, 그 이유는 일단 임계 전압이 타깃 값에 가깝다면(예컨대, 임계 전압이 VverI 초과이고 VverF 미만일 때) 임계 전압의 프로그램 펄스당 시프트가 감소되기 때문이다. 그러나, 도 13b의 접근법은 프로그래밍 프로세스를 느리게 하는데, 그 이유는 검증되고 있는 각각의 데이터 상태가 이제 2개의 검증 동작들을 요구하기 때문이다. 수행되는 검증 동작들의 수를 감소시키기 위해(그리고, 따라서, 프로그래밍 프로세스를 가속화하기 위해), 일부 프로그래밍 전압 펄스들에 대해 VverF에서의 검증을 스킵하고 일부 프로그래밍 전압 펄스들에 대해 VverI에서의 검증을 스킵하기 위한 시스템이 제안된다. 더 많은 상세 사항들이 하기에 제공된다.
도 14는 일부 프로그래밍 전압 펄스들(또는 프로그래밍의 다른 도즈들)에 대한 VverF(또는 다른 검증 조건)에서의 검증을 스킵하는 것, 및 일부 프로그래밍 전압 펄스들(또는 프로그래밍의 다른 도즈들)에 대한 VverI(또는 다른 검증 조건)에서의 검증을 스킵하는 것을 포함하는, 비휘발성 메모리를 프로그래밍하고 그의 프로그래밍을 검증하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다. 도 14의 프로세스는 복수의 비휘발성 메모리 셀들에 접속된 제어 회로(위에서 논의됨)에 의해 수행된다. 예를 들어, 도 14의 프로세스는 상태 머신(312)(이는 메모리 구조물(326)에 접속됨)의 지시로 수행될 수 있다.
도 14의 단계(702)에서, 제어 회로는 복수의 비휘발성 메모리 셀들을 제1 데이터 상태로 프로그래밍하는 프로그래밍 프로세스를 수행한다. 예를 들어, 도 8의 프로세스는 메모리 셀들을 도 5의 프로그래밍된 데이터 상태(P)로 또는 도 6의 데이터 상태들(S1 내지 S7) 중 하나 이상으로 프로그래밍하는 데 사용될 수 있다(여기서, 제1 데이터 상태는 S1 내지 S6 중 임의의 것을 지칭할 수 있음). 일부 실시예들에서, 단계(702)는 도 9의 프로그래밍 전압 펄스들을 인가하는 단계를 포함한다. 단계(704)에서, 제어 회로는, 제1 기준이 만족될 때까지 프로그래밍 프로세스 동안 제1 데이터 상태에 대해 제2 검증 조건에 대한 프로그램 검증을 수행하지 않고서 상기 제1 데이터 상태에 대해 제1 검증 조건에 대한 프로그램 검증을 수행한다. 일부 실시예들에서, 단계(704)는 도 8의 단계(574)를 1회 또는 다수 회 수행하는 단계를 포함한다. 제1 검증 조건의 일례는 프로그래밍되고 있는 메모리 셀들이 제1 데이터 상태에 대한 중간 검증 기준 전압(VverI) 이상의 임계 전압을 갖는 것이다. 제2 검증 조건의 일례는 프로그래밍되고 있는 메모리 셀들이 제1 데이터 상태에 대한 최종 검증 기준 전압(VverF) 이상의 임계 전압을 갖는 것이다. 따라서, 단계(704)의 일례는, 제1 데이터 상태로 프로그래밍되고 있는 메모리 셀들이 제1 데이터 상태에 대한 최종 검증 기준 전압(VverF) 이상의 임계 전압을 갖는지의 여부를 테스트하지 않고서 제1 데이터 상태로 프로그래밍되고 있는 메모리 셀들이 제1 데이터 상태에 대한 중간 검증 기준 전압(VverI) 이상의 임계 전압을 갖는지의 여부를 테스트하는 단계를 포함한다. 단계(706)에서, 제어 회로는 제1 기준이 만족된 후에 그리고 제2 기준이 만족될 때까지 프로그래밍 프로세스 동안 제1 검증 조건 및 제2 검증 조건에 대한 프로그램 검증을 수행한다. 일부 실시예들에서, 단계(706)는 도 8의 단계(574)를 1회 또는 다수 회 수행하는 단계를 포함한다. 단계(708)에서, 제어 회로는, 제2 기준이 만족된 후에 프로그래밍 프로세스 동안 제1 검증 조건에 대한 프로그램 검증을 수행하지 않고서 제2 검증 조건에 대한 프로그램 검증을 수행한다. 일부 실시예들에서, 단계(708)는 도 8의 단계(574)를 1회 또는 다수 회 수행하는 단계를 포함한다.
일부 예시적인 구현예들에서, 단계(704)는 VverF 스킵 모드로 지칭되는데, 그 이유는 시스템이 제1 데이터 상태에 대한 최종 검증 기준 전압(VverF)의 검증을 스킵하기 때문이다. 일부 예시적인 구현예들에서, 단계(706)는 VverI 및 VverF 모드로 지칭되는데, 그 이유는 시스템이 제1 데이터 상태에 대한 VverI 및 VverF의 검증을 수행하기 때문이다. 일부 예시적인 구현예들에서, 단계(708)는 VverI 스킵 모드로 지칭되는데, 그 이유는 시스템이 제1 데이터 상태에 대한 중간 검증 기준 전압(VverI)의 검증을 스킵하기 때문이다. 도 8의 프로세스를 수행할 때, 단계들(572 내지 586)을 포함하는 루프의 각각의 반복은 VverF 스킵 모드, VverI 및 VverF 모드, 또는 VverI 스킵 모드 중 하나에서 있을 것이다. 즉, 단계(574)가 수행될 때마다, 단계들(704, 706 또는 708) 중 하나가 수행될 것이다. 12개의 프로그래밍 전압 펄스들이 메모리 셀들을 성공적으로 프로그래밍하는 데 사용되고; 따라서, 단계들(572 내지 586)을 포함하는 루프가 12회 수행되는 일례를 고려한다. (일례로서) 아마도, 단계들(572 내지 586)을 포함하는 루프가 수행되는 처음 8회는 VverF 스킵 모드일 것이고; 따라서, 그들 12개의 루프들 동안 단계(574)가 수행될 때마다, 단계(574)는 도 14의 단계(704)로서 구현된다. 예시적인 목적들을 위해, 제9 및 제10 루프들은 VverI 및 VverF 모드일 것이고; 따라서, 그들 2개의 루프들 동안 단계(574)가 수행될 때마다, 단계(574)는 도 14의 단계(706)로서 구현된다. 예시적인 목적들을 위해, 제11 및 제12 루프들은 VverI 스킵 모드일 것이고; 따라서, 최종 2개의 루프들 동안 단계(574)가 수행될 때마다, 단계(574)는 도 14의 단계(708)로서 구현된다.
도 15 내지 도 17에 의해 기술되는 일 실시예에서, 제1 기준은 비휘발성 메모리 셀들의 임계 개수가 제1 검증 조건에 도달했을 때 만족되고, 제2 기준은 비휘발성 메모리 셀들의 임계 개수가 제2 검증 조건에 도달했을 때 만족된다. 도 15는 (시스템이 VverI에 대해 테스트되고 있지만 VverF에 대해서는 테스트되고 있지 않을 때) VverF 스킵 모드에서 제1 데이터 상태로 프로그래밍되고 있는 메모리 셀들에 대한 임계 전압 분포를 도시한다. 임계 전압 분포의 부분(740)은 제1 데이터 상태에 대해 VverI 미만의 임계 전압들을 갖는 메모리 셀들을 표현한다. 임계 전압 분포의 부분(742)은 제1 데이터 상태에 대해 VverI 초과의, 그러나 제1 데이터 상태에 대해 VverF 미만의 임계 전압들을 갖는 메모리 셀들을 표현한다. 어떠한 메모리 셀들도 제1 데이터 상태에 대한 VverF 초과의 임계 전압들을 갖지 않는다. 검증 동작(임계 전압들이 제1 데이터 상태에 대해 VverI 이상인지의 여부를 테스트함)을 수행할 때, 제1 데이터 상태에 대해 VverI 미만의 임계 전압을 갖는, 제1 데이터 상태로 프로그래밍되고 있는 그들 메모리 셀들은 그들의 비트 라인들이 다음 프로그래밍 전압 펄스에 대해 Vss(예컨대, 0 볼트)에서 유지되게 할 것이고, 제1 데이터 상태에 대해 VverI 이상의 임계 전압을 갖는, 제1 데이터 상태로 프로그래밍되고 있는 그들 메모리 셀들은 그들의 비트 라인들이 다음 프로그래밍 전압 펄스에 대해 Vint(예컨대, 0.5 볼트)로 상승되게 할 것이다. 제1 데이터 상태에 대해 VverI 이상의 임계 전압을 갖는 메모리 셀들의 수가 제1 사전결정된 수 초과인 경우, 제1 데이터 상태로 프로그래밍되고 있는 메모리 셀들의 세트는 VverI 및 VverF 모드로 이동한다. 일례에서, 제1 사전결정된 수는 프로그래밍되고 있는 모든 메모리 셀들의 0.02%, 제1 데이터 상태로 프로그래밍되고 있는 메모리 셀들의 0.2%, 또는 다른 양의 메모리 셀들이다.
도 16은 (시스템이 VverI에 대해 그리고 VverF에 대해 테스트되고 있을 때) VverI 및 VverF 모드에서 제1 데이터 상태로 프로그래밍되고 있는 메모리 셀들에 대한 임계 전압 분포를 도시한다. 임계 전압 분포의 부분(762)은 제1 데이터 상태에 대해 VverI 미만의 임계 전압들을 갖는 메모리 셀들을 표현한다. 임계 전압 분포의 부분(764)은 제1 데이터 상태에 대해 VverI 초과의, 그러나 제1 데이터 상태에 대해 VverF 미만의 임계 전압들을 갖는 메모리 셀들을 표현한다. 임계 전압 분포의 부분(766)은 제1 데이터 상태에 대해 VverF 초과의 임계 전압들을 갖는 메모리 셀들을 표현한다. 검증 동작을 수행할 때, 제1 데이터 상태에 대해 VverI 미만의 임계 전압을 갖는, 제1 데이터 상태로 프로그래밍되고 있는 그들 메모리 셀들은 그들의 비트 라인들이 다음 프로그래밍 전압 펄스에 대해 Vss(예컨대, 0 볼트)에서 유지되게 할 것이고, 제1 데이터 상태에 대해 VverI 이상의 임계 전압을 갖는, 제1 데이터 상태로 프로그래밍되고 있는 그들 메모리 셀들은 그들의 비트 라인들이 다음 프로그래밍 전압 펄스에 대해 Vint(예컨대, 0.5 내지 1.0 볼트)로 상승되게 할 것이고, 제1 데이터 상태에 대해 VverF 이상의 임계 전압을 갖는, 제1 데이터 상태로 프로그래밍되고 있는 그들 메모리 셀들은 그들의 비트 라인들이 다음 프로그래밍 전압 펄스에 대해 Vinhibit(예컨대, 1.0 내지 5.0 볼트)로 상승되게 할 것이다. 제1 데이터 상태에 대해 VverF 이상의 임계 전압을 갖는 메모리 셀들의 수가 제2 사전결정된 수 초과인 경우, 제1 데이터 상태로 프로그래밍되고 있는 메모리 셀들의 세트는 VverI 스킵 모드로 이동한다. 일례에서, 제2 사전결정된 수는 프로그래밍되고 있는 모든 메모리 셀들의 0.02%, 제1 데이터 상태로 프로그래밍되고 있는 메모리 셀들의 0.2%, 또는 다른 양의 메모리 셀들이다.
일부 실시예들에서, VverI 이상의 임계 전압들에 대해 테스트하는 것은 VverI에서 제1 전압 펄스를 인가하는 것을 포함하고, VverF 이상의 임계 전압들에 대해 테스트하는 것은 VverF에서 제2 전압 펄스를 인가하는 것을 포함한다. 다른 실시예들에서, 시스템은 하나의 전압 펄스로 그러나 2개의 상이한 감지 시간들을 사용하여 VverI 및 VverF에 대해 테스트할 수 있다. 예를 들어, 시스템은 전압 펄스를 인가할 수 있고, VverI에 대해 0.7마이크로초 후에 메모리 셀들이 턴온되었는지의 여부를 감지할 수 있고, VverF에 대해 1.4마이크로초 후에 메모리 셀들이 턴온되었는지의 여부를 감지할 수 있다.
도 17은 (시스템이 VverF에 대해 테스트되고 있지만 VverI에 대해서는 테스트되고 있지 않을 때) VverI 스킵 모드에서 제1 데이터 상태로 프로그래밍되고 있는 메모리 셀들에 대한 임계 전압 분포를 도시한다. 임계 전압 분포의 부분(774)은 제1 데이터 상태에 대해 VverI 초과의, 그러나 제1 데이터 상태에 대해 VverF 미만의 임계 전압들을 갖는 메모리 셀들을 표현한다. 임계 전압 분포의 부분(776)은 제1 데이터 상태에 대해 VverF 초과의 임계 전압들을 갖는 메모리 셀들을 표현한다. 일부 실시예들에서, VverI 스킵 모드에 있고, 임계 전압들이 VverI 미만인 일부 메모리 셀들을 갖는 것이 가능하다. 검증 동작을 수행할 때, 제1 데이터 상태에 대해 VverI 이상의 그리고 제1 데이터 상태에 대해 VverF 미만의 임계 전압을 갖는, 제1 데이터 상태로 프로그래밍되고 있는 그들 메모리 셀들은 그들의 비트 라인들이 다음 프로그래밍 전압 펄스에 대해 Vint로 상승되게 할 것이고, 제1 데이터 상태에 대해 VverF 이상의 임계 전압을 갖는, 제1 데이터 상태로 프로그래밍되고 있는 그들 메모리 셀들은 그들의 비트 라인들이 다음 프로그래밍 전압 펄스에 대해 Vinhibit로 상승되게 할 것이다.
도 18은 비휘발성 메모리의 프로그래밍을 검증할 때 수행되는 프로세스의 일 실시예를 기술한 흐름도를 도시한다. 도 18의 프로세스는 복수의 비휘발성 메모리 셀들에 접속된 제어 회로(위에서 논의됨)에 의해 수행된다. 예를 들어, 도 18의 프로세스는 상태 머신(312)(이는 메모리 구조물(326)에 접속됨)의 지시로 수행될 수 있다. 일 실시예에서, 도 18의 프로세스는, 단계(574)의 각각의 반복 동안, 메모리 셀들이 프로그래밍되고 있는 각각의 데이터 상태에 대해 1회(또는 데이터 상태들의 서브세트 각각에 대해 1회) 도 18의 프로세스가 수행되도록 도 8의 단계(574) 동안 수행된다. 예를 들어, 도 18의 프로세스는 도 12의 단계들(660 내지 672) 각각 동안 수행될 수 있다. 따라서, 도 18의 프로세스는 프로그래밍의 도즈들 사이에서 프로그램 검증을 수행하는 것(예컨대, 프로그래밍의 도즈들의 일례는 도 9의 프로그래밍 전압 펄스들임)을 포함하며, 여기서 프로그래밍의 도즈들은 도 8의 단계(572)의 각각의 반복 동안 인가된다.
위에서 언급된 바와 같이, 일 실시예에서, 시스템은 적어도 3개의 검증 모드들, 즉 VverF 스킵 모드, VverI 및 VverF 모드, 및 VverI 스킵 모드에서 동작할 수 있다. 도 18의 단계(802)는 검증되고 있는 특정 데이터 상태에 대해 시스템이 현재 그들 3개의 검증 모드들 중에서 어느 것에 있는지를 결정하는 단계를 포함한다. 시스템이 검증되고 있는 특정 데이터 상태에 대해 현재 VverF 스킵 모드에 있는 경우, 프로세스는 단계(804)에서 계속되는데, 이는 제1 데이터 상태에 대한 제1 검증 조건(예컨대, VverI)에 대해 복수의 비휘발성 메모리 셀들을 검증하는 반면, 제1 데이터 상태에 대한 제2 검증 조건(예컨대, VverF)에 대해 복수의 비휘발성 메모리 셀들을 검증하는 것을 스킵하는 단계를 포함한다. 단계(806)에서, VverI 이하의 임계 전압(Vt)을 갖는 메모리 셀들은 그들의 비트 라인 전압들이 프로그래밍의 다음 도즈들에 대해 Vsel(예컨대, 0 볼트)에서 유지되게 한다. 단계(808)에서, VverI 초과의 임계 전압을 갖는 메모리 셀들은 프로그래밍의 다음 도즈에 대해 그들의 비트 라인 전압들이 Vint로 상승되게 하여 그들 메모리 셀들에 대한 프로그래밍을 느리게 한다.
단계(810)에서, 시스템은 제1 기준이 만족되는지의 여부를 결정한다. 일 실시예에서, 시스템은 제1 검증 조건을 만족한 메모리 셀들의 양이 제1 기준을 충족시키는지의 여부; 예를 들어, VverI 초과의 임계 전압을 갖는 메모리 셀들의 수가 제1 사전결정된 수(위에서 언급됨) 초과인지의 여부를 결정한다. 즉, 하나의 예시적인 구현예에서, 제1 기준은 임계 개수의 복수의 비휘발성 메모리 셀들이 제1 검증 조건에 도달했을 때 만족된다. 제1 기준이 만족되지 않는 경우, 단계(812)에서, 시스템은 프로그래밍의 다음 도즈 동안 검증되고 있는 특정 데이터 상태에 대해 VverF 스킵 모드에서 유지될 것이다. 제1 기준이 만족되는 경우, 단계(814)에서, 시스템은 프로그래밍의 다음 도즈 동안 검증되고 있는 특정 데이터 상태에 대해 VverI 및 VverF 모드로 스위칭할 것이다.
(단계(802)에서) 시스템이 검증되고 있는 특정 데이터 상태에 대해 현재 VverI 및 VverF 모드에 있는 경우, 프로세스는 단계(820)에서 계속되는데, 이는 (제1 검증 조건을 만족한 메모리 셀들의 양이 제1 기준을 충족시킨다고 결정한 것에 응답하여) 데이터 상태에 대한 제1 검증 조건(예컨대, VverI)에 대해 복수의 비휘발성 메모리 셀들을 검증하는 것, 및 검증되고 있는 특정 데이터 상태에 대한 제2 검증 조건(예컨대, VverF)에 대해 복수의 비휘발성 메모리 셀들을 검증하는 것을 포함한다. 단계(822)에서, VverI 이하의 임계 전압을 갖는 메모리 셀들은 그들의 비트 라인 전압들이 프로그래밍의 다음 도즈들에 대해 Vsel에서 유지되게 한다. 단계(824)에서, 제1 검증 조건(예컨대, VverI) 초과의 임계 전압을 갖는 메모리 셀들은 프로그래밍의 다음 도즈에 대해 그들의 비트 라인 전압들이 Vint로 상승되게 하여 그들 메모리 셀들에 대한 프로그래밍을 느리게 한다. 단계(826)에서, 제2 검증 조건(예컨대, VverF) 초과의 임계 전압을 갖는 메모리 셀들은 그들의 비트 라인 전압들이 Vinhibit로 상승되게 하여 그들 메모리 셀들에 대한 프로그래밍을 중지시킨다. 단계(828)에서, 시스템은 제2 기준이 만족되는지의 여부를 결정한다. 제2 기준이 만족되지 않는 경우, 단계(830)에서, 시스템은 프로그래밍의 다음 도즈 동안 검증되고 있는 특정 데이터 상태에 대해 VverI 및 VverF 모드에서 유지될 것이다. 제2 기준이 만족되는 경우, 단계(832)에서, 시스템은 프로그래밍의 다음 도즈 동안 검증되고 있는 특정 데이터 상태에 대해 VverI 스킵 모드로 스위칭할 것이다.
(단계(802)에서) 시스템이 검증되고 있는 특정 데이터 상태에 대해 현재 VverI 스킵 모드에 있는 경우, 프로세스는 단계(850)에서 계속되는데, 이는 (예컨대, 제2 기준이 만족된다고 결정한 것에 응답하여) 검증되고 있는 특정 데이터 상태에 대한 제2 조건(예컨대, VverF)에 대해 복수의 비휘발성 메모리 셀들을 검증하는 반면에, 검증되고 있는 특정 데이터 상태에 대한 제1 검증 조건(예컨대, VverI)에 대해 복수의 비휘발성 메모리 셀들을 검증하는 것을 스킵하는 것을 포함한다. 단계(852)에서, 제2 검증 조건(예컨대, VverF) 이하인 임계 전압을 갖는 메모리 셀들은 그들의 비트 라인 전압들이 Vint로 설정되게 하여, 프로그래밍의 다음 도즈에 대해 그들 메모리 셀들에 대한 프로그래밍을 느리게 한다. 단계(854)에서, 제2 검증 조건(예컨대, VverF) 초과의 임계 전압을 갖는 메모리 셀들은 그들의 비트 라인 전압들이 Vinhibit로 상승되게 하여, 그들 메모리 셀들에 대한 프로그래밍을 중지시킨다.
제2 기준이 만족되는지의 여부를 결정하는 데 사용될 수 있는 많은 상이한 테스트들이 있다(단계(828)). 일부 실시예들에서, 제2 기준은 제1 검증 조건(예컨대, VverI)에 도달하는 복수의 메모리 셀들의 양과 다르다. 일 실시예에서, 제2 기준은 복수의 비휘발성 메모리 셀들의 임계 개수가 제2 검증 조건(예컨대, VverF)에 도달했을 때 만족된다. 위에서 언급된 바와 같이, 하나의 예시적인 구현예에서, 제2 기준은, 이러한 특정 상태로 프로그래밍되고 있는 모든 메모리 셀들의 0.02%가 제2 검증 조건(예컨대, VverF)에 도달했을 때 만족된다. 일 실시예에서, 제2 기준은 제1 기준이 만족된 후에 사전결정된 개수의 프로그래밍의 도즈들이 복수의 비휘발성 메모리에 적용된 후에 만족된다. 예를 들어, 메모리 다이에 대한 디바이스 파라미터는 VverI 및 VverF 모드에서 인가할 프로그래밍 전압 펄스들의 수를 나타내도록 설정되어, VverI 및 VverF 모드에 있는 동안 그 나타내진 수의 프로그래밍 전압 펄스들이 인가된 후에 시스템이 VverI 스킵 모드로 자동으로 스위칭하게 할 수 있다. VverI 및 VverF 모드에서 인가할 프로그래밍 전압 펄스들의 수를 나타내는 데 사용될 수 있는 디바이스 파라미터의 일례가 스킵 파라미터(SP)이다(도 2 참조). 스킵 파라미터(SP)는 제조 시에 또는 당업자에 의해 설정될 수 있다.
다른 실시예에서, 제2 기준은 검증되고 있는 특정 데이터 상태와는 상이한 데이터 상태로 프로그래밍되고 있는 메모리 셀들의 성능에 기초하여 만족된다. 이러한 실시예에서, 메모리 셀들은 메모리 셀당 다수의 비트들의 데이터를 저장한다. 제어 회로들은 비휘발성 메모리 셀들의 선택된 세트를 다수의 데이터 상태들로 프로그래밍하도록 구성된다. 검증되고 있는 특정 데이터 상태로 프로그래밍되고 있는 복수의 비휘발성 메모리 셀들은 프로그래밍되고 있는 비휘발성 메모리 셀들의 선택된 세트의 제1 서브세트이다. 제어 회로는 비휘발성 메모리 셀들의 선택된 세트의 제2 서브세트를 제2 데이터 상태로 프로그래밍하도록 구성된다. 이러한 실시예에서, 제2 기준은 비휘발성 메모리 셀들의 선택된 세트의 제2 서브세트의 최소 개수가 제2 데이터 상태에 대한 타깃 레벨에 도달했을 때 만족된다. 이러한 조건의 일례가 도 19에 도시되어 있으며, 이는 2개의 임계 전압 분포들(912, 914)을 보여준다. 임계 전압 분포(912)는 메모리 셀들이 제1 데이터 상태(상태 N)로 프로그래밍되는 것에 대한 것이고, 도 18의 프로세스에서 검증되고 있는 특정 데이터 상태를 표현할 수 있다. 임계 전압 분포(914)는 메모리 셀들이 제2 데이터 상태(상태 N+1)로 프로그래밍되고 있는 것에 대한 것이다. 일 실시예에서, 제2 데이터 상태는 제1 데이터 상태에 인접하고, 더 높은 임계 전압들을 갖는다(예컨대, 제1 데이터 상태는 상태 S4이고, 제2 데이터 상태는 S5임 - 도 6 참조). 도 19는 각각의 데이터 상태가 어떻게 그 자신의 제1 검증 조건(예컨대, VverI) 및 그 자신의 제2 검증 조건(예컨대, VverF)을 갖는지를 도시한다. 예를 들어, 데이터 상태 N(임계 전압 분포(912)의 타깃)은 VverI 상태 N 및 VverF 상태 N을 갖는 반면, 데이터 상태 N+1(임계 전압 분포(914)의 타깃)은 VverI 상태 N+1 및 VverF 상태 N+1을 갖는다. 이러한 실시예에서, 임계 전압 분포(914)의 메모리 셀들의 최소 개수가 VverI 상태 N+1에 도달했을 때, 임계 전압 분포(912)의 메모리 셀들에 대해 제2 기준들이 만족된다. VverI 상태 N+1에 도달한 임계 전압 분포(914)의 이러한 최소 개수의 메모리 셀들이 임계 전압 분포(914)의 영역(920)에 의해 도 19에 도시되어 있으며, (일례에서) 프로그래밍되고 있는 모든 메모리 셀들의 0.02%(또는 다른 양)일 수 있다.
상기의 설명은 프로그래밍을 검증하기 위해 필요한 시간을 감소시키기 위한 시스템을 도입한다. 따라서, 프로그래밍 프로세스는 더 빠르게 완료된다.
일 실시예는 복수의 비휘발성 메모리 셀들, 및 비휘발성 메모리 셀들에 접속되는 제어 회로를 포함하는 비휘발성 저장 장치를 포함한다. 제어 회로는, 비휘발성 메모리 셀들을 제1 데이터 상태로 프로그래밍하는 프로그래밍 프로세스를 수행하도록, 제1 기준이 만족될 때까지 프로그래밍 프로세스 동안 제1 데이터 상태에 대해 제2 검증 조건에 대한 프로그램 검증을 수행하지 않고서 제1 데이터 상태에 대해 제1 검증 조건에 대한 프로그램 검증을 수행하도록, 제1 기준이 만족된 후에 그리고 제2 기준이 만족될 때까지 프로그래밍 프로세스 동안 제1 검증 조건 및 제2 검증 조건에 대한 프로그램 검증을 수행하도록, 그리고 제2 기준이 만족된 후에 프로그래밍 프로세스 동안 제1 검증 조건에 대한 프로그램 검증을 수행하지 않고서 제2 검증 조건에 대한 프로그램 검증을 수행하도록 구성된다.
일 실시예는 비휘발성 저장을 프로그래밍하기 위한 방법을 포함하며, 본 방법은, 제1 데이터 상태로 프로그래밍되고 있는 복수의 비휘발성 메모리 셀들에 프로그래밍의 도즈들을 적용하는 단계; 및 프로그래밍의 도즈들 사이에서 프로그램 검증을 수행하는 단계를 포함한다. 프로그램 검증을 수행하는 단계는, 제1 데이터 상태에 대한 제1 검증 조건에 대해 복수의 비휘발성 메모리 셀들을 검증하는 반면, 제1 데이터 상태에 대한 제2 검증 조건에 대해 복수의 비휘발성 메모리 셀들을 검증하는 것을 스킵하는 단계; 제1 검증 조건을 만족한 메모리 셀들의 양이 제1 기준을 충족시킨다고 결정하는 단계; 제1 검증 조건을 만족한 메모리 셀들의 양이 제1 조건을 충족시킨다고 결정한 것에 응답하여, 데이터 상태에 대한 제1 검증 조건에 대해 복수의 비휘발성 메모리 셀들을 검증하고, 데이터 상태에 대한 제2 검증 조건에 대해 복수의 비휘발성 메모리 셀들을 검증하는 단계; 제2 기준이 만족된다고 결정하는 단계; 및 제2 기준이 만족되는 메모리 셀들의 양을 결정한 것에 응답하여, 데이터 상태에 대한 제2 검증 조건에 대해 복수의 비휘발성 메모리 셀들을 검증하는 반면, 데이터 상태에 대한 제1 검증 조건에 대해 복수의 비휘발성 메모리 셀들을 검증하는 것을 스킵하는 단계를 포함한다.
하나의 예시적인 구현예에서, 프로그래밍의 도즈들은 펄스에 따라 크기가 증가하는 일련의 프로그래밍 전압 펄스들을 포함하고; 제1 검증 조건은 제1 데이터 상태에 대한 중간 검증 기준 전압이고; 제2 검증 조건은 제1 데이터 상태에 대한 최종 검증 기준 전압이다.
일 실시예는 비휘발성 저장 장치를 포함하고, 비휘발성 저장 장치는 비휘발성 메모리 셀들의 3차원 어레이; 메모리 셀들에 일련의 프로그래밍 전압 펄스들을 인가함으로써 메모리 셀들을 프로그래밍하기 위한 수단; 및 사전결정된 수 초과의 메모리 셀들이 데이터 상태에 대한 중간 검증 기준 전압에 도달할 때까지 비휘발성 메모리 셀들이 데이터 상태에 대한 최종 검증 기준 전압에 도달했는지의 여부를 테스트하지 않고서 비휘발성 메모리 셀들이 데이터 상태에 대한 중간 검증 기준 전압에 도달했는지의 여부를 테스트함으로써, 사전결정된 개수의 메모리 셀들이 중간 검증 기준 전압에 도달한 후에 그리고 테스트 기준이 중간 검증 기준 전압에 도달하는 메모리 셀들의 양과 다르도록 테스트 기준이 충족될 때까지 비휘발성 메모리 셀들이 중간 검증 기준 전압에 도달했는지의 여부를 테스트하고 비휘발성 메모리 셀들이 최종 검증 기준 전압에 도달했는지의 여부를 테스트함으로써, 그리고 테스트 기준이 충족된 후에 비휘발성 메모리 셀들이 데이터 상태에 대한 중간 검증 기준 전압에 도달했는지의 여부를 테스트하지 않고서 비휘발성 메모리 셀들이 최종 검증 기준 전압에 도달했는지의 여부를 테스트함으로써 프로그래밍 전압 펄스들 사이에서 프로그래밍을 검증하기 위한 수단을 포함한다.
본 문헌의 목적을 위해, 프로그래밍하기 위한 수단은 디코더, 감지 증폭기, 전압원과 전류원, 및 도 5, 도 6, 도 8, 도 13a, 도 13b 및/또는 도 14(단계(702))의 프로세스들을 수행하는 다른 제어 로직과 조합하여, 마이크로프로세서, 마이크로제어기, 상태 머신, FPGA 또는 다른 타입의 프로세서에 의해 구현될 수 있다. 예를 들어, 프로그래밍하기 위한 수단은 도 5, 도 6, 도 8, 도 13a, 도 13b, 및/또는 도 14(단계(702))의 프로세스들을 수행하는 도 2의 제어 회로부(310), 디코더들(324/332) 및 판독/기록 회로들(328)을 포함할 수 있다. 일부 실시예들에서, 프로그래밍하기 위한 수단은, 메모리 다이(예컨대, 도 2의 메모리 다이(300)) 상의 회로들로부터의 지원을 갖고서 또는 이를 갖지 않고서, 도 5, 도 6, 도 8, 도 13a, 도 13b, 및/또는 도 14(단계(702))의 프로세스들을 수행하는 제어기(120)를 포함할 수 있다. 일부 실시예들에서, 프로그래밍하기 위한 수단은 도 5, 도 6, 도 8, 도 13a, 도 13b, 및/또는 도 14(단계(702))의 프로세스들을 수행하는 제어기(120), 제어 회로부(310), 디코더들(324/332) 및 판독/기록 회로들(328)을 포함할 수 있다.
본 문헌의 목적을 위해, 검증하기 위한 수단은 디코더, 감지 증폭기, 전압원과 전류원, 및 도 5, 도 6, 도 8, 도 13a, 도 13b 및/또는 도 14(단계(702))의 프로세스들을 수행하는 다른 제어 로직과 조합하여, 마이크로프로세서, 마이크로제어기, 상태 머신, FPGA 또는 다른 타입의 프로세서에 의해 구현될 수 있다. 예를 들어, 검증하기 위한 수단은 도 8(단계(574)), 도 12, 도 13a, 도 13b, 도 14, 도 18 및/또는 도 19의 프로세스들을 수행하는 도 2의 제어 회로부(310), 디코더들(324/332) 및 판독/기록 회로들(328)을 포함할 수 있다. 일부 실시예들에서, 검증하기 위한 수단은, 메모리 다이(예컨대, 도 2의 메모리 다이(300)) 상의 회로들로부터의 지원을 갖고서 또는 이를 갖지 않고서, 도 8(단계(574)), 도 12, 도 13a, 도 13b, 도 14, 도 18 및/또는 도 19의 프로세스들을 수행하는 제어기(120)를 포함할 수 있다. 일부 실시예들에서, 검증하기 위한 수단은 도 8(단계(574)), 도 12, 도 13a, 도 13b, 도 14, 도 18 및/또는 도 19의 프로세스들을 수행하는 제어기(120), 제어 회로부(310), 디코더들(324/332) 및 판독/기록 회로들(328)을 포함할 수 있다.
본 문헌의 목적들을 위해, 명세서 내에서 "일 실시예", "하나의 실시예", "일부 실시예들", 또는 "다른 실시예"에 대한 언급은 상이한 실시예들 또는 동일한 실시예를 기술하는 데 사용될 수 있다.
본 문헌의 목적들을 위해, 접속은 직접 접속 또는 (예컨대, 하나 이상의 다른 부품들을 통한) 간접 접속일 수 있다. 일부 경우들에서, 소정 요소가 다른 요소에 접속되거나 결합되는 것으로 언급되는 경우, 그 요소는 다른 요소에 직접적으로 접속되거나 개재 요소들을 통해 다른 요소에 간접적으로 접속될 수 있다. 소정 요소가 다른 요소에 직접적으로 접속되는 것으로 언급되는 경우, 그 요소와 다른 요소 사이에 개재 요소들이 없다. 2개의 디바이스들은, 그들이 직접적으로 또는 간접적으로 접속되어 그들이 그들 사이에서 전자 신호들을 통신할 수 있게 되는 경우에 "통신 중"이다.
본 문헌의 목적들을 위해, 용어 "~에 기초하여"는 "~에 적어도 부분적으로 기초하여"로 이해될 수 있다.
본 문헌의 목적들을 위해, 추가 콘텍스트 없이, "제1" 물체, "제2" 물체, 및 "제3" 물체와 같은 숫자와 관련된 용어들의 사용은 물체들의 순서화를 암시하는 것이 아니라, 대신에 상이한 물체들을 식별하기 위한 식별 목적들을 위해 사용될 수 있다.
본 문헌의 목적들을 위해, 용어 물체들의 "세트"는 물체들 중 하나 이상의 물체들의 "세트"를 지칭할 수 있다.
전술한 상세한 설명은 예시 및 설명의 목적으로 제시되었다. 그것은 망라하거나 개시된 정확한 형태로 제한하도록 의도되지 않는다. 상기의 교시 내용의 관점에서 많은 수정 및 변형이 가능하다. 기술된 실시예들은 제안된 기술의 원리 및 그의 실제 응용을 가장 잘 설명하기 위해 선택되었고, 이에 의해, 당업자가 다양한 실시예들에서 그리고 심사숙고된 특정 용도에 적절하게 된 바와 같은 다양한 수정예들로 그것을 가장 잘 활용할 수 있게 하였다. 그 범주는 명세서에 첨부된 청구범위에 의해 정의되는 것으로 의도된다.

Claims (20)

  1. 비휘발성 저장 장치로서,
    복수의 비휘발성 메모리 셀들; 및
    상기 비휘발성 메모리 셀들에 접속되는 제어 회로를 포함하고, 상기 제어 회로는,
    상기 비휘발성 메모리 셀들을 제1 데이터 상태로 프로그래밍하는 프로그래밍 프로세스를 수행하도록,
    제1 기준이 만족될 때까지 상기 프로그래밍 프로세스 동안 상기 제1 데이터 상태에 대해 제2 검증 조건에 대한 프로그램 검증을 수행하지 않고서 상기 제1 데이터 상태에 대해 제1 검증 조건에 대한 프로그램 검증을 수행하도록,
    상기 제1 기준이 만족된 후에 그리고 제2 기준이 만족될 때까지 상기 프로그래밍 프로세스 동안 상기 제1 검증 조건 및 상기 제2 검증 조건에 대한 프로그램 검증을 수행하도록, 그리고
    상기 제2 기준이 만족된 후에 상기 프로그래밍 프로세스 동안 상기 제1 검증 조건에 대한 프로그램 검증을 수행하지 않고서 상기 제2 검증 조건에 대한 프로그램 검증을 수행하도록 구성된, 비휘발성 저장 장치.
  2. 제1항에 있어서,
    상기 제2 기준은, 사전결정된 개수의 상기 복수의 비휘발성 메모리 셀들이 상기 제2 검증 조건을 만족했을 때 만족되는, 비휘발성 저장 장치.
  3. 제1항에 있어서,
    상기 제어 회로는 상기 복수의 비휘발성 메모리에 프로그래밍의 도즈(dose)들을 적용함으로써 상기 복수의 비휘발성 메모리 셀들을 프로그래밍하도록 구성되고;
    상기 제2 기준은 상기 제1 기준이 만족된 후에 사전결정된 개수의 프로그래밍의 도즈들이 상기 복수의 비휘발성 메모리에 적용된 후에 만족되는, 비휘발성 저장 장치.
  4. 제1항에 있어서,
    상기 제어 회로는 비휘발성 메모리 셀들의 선택된 세트의 각각의 비휘발성 메모리 셀이 다수의 비트들의 데이터를 저장하도록 비휘발성 메모리 셀들의 상기 세트를 다수의 데이터 상태들로 프로그래밍하도록 구성되고;
    상기 복수의 비휘발성 메모리 셀들은 비휘발성 메모리 셀들의 상기 선택된 세트의 제1 서브세트이고;
    상기 제어 회로는 비휘발성 메모리 셀들의 상기 선택된 세트의 제2 서브세트를 제2 데이터 상태로 프로그래밍하도록 구성되고;
    상기 제2 기준은 비휘발성 메모리 셀들의 상기 선택된 세트의 제2 서브세트의 최소 개수가 상기 제2 데이터 상태에 대한 타깃 레벨에 도달했을 때 만족되는, 비휘발성 저장 장치.
  5. 제1항에 있어서,
    상기 제2 기준은 상기 제1 검증 조건에 도달하는 상기 복수의 메모리 셀들의 양과 다른, 비휘발성 저장 장치.
  6. 제1항에 있어서,
    상기 제1 기준은, 사전결정된 개수의 상기 복수의 비휘발성 메모리 셀들이 상기 제1 검증 조건을 만족했을 때 만족되는, 비휘발성 저장 장치.
  7. 제1항에 있어서,
    상기 제어 회로는 펄스에 따라 크기가 증가하는 일련의 프로그래밍 전압 펄스들을 상기 복수의 비휘발성 메모리 셀들에 인가함으로써 상기 복수의 비휘발성 메모리 셀들을 프로그래밍하도록 구성된, 비휘발성 저장 장치.
  8. 제7항에 있어서,
    상기 제어 회로는 상기 프로그래밍 전압 펄스들 사이에서 상기 프로그램 검증을 수행하도록 구성된, 비휘발성 저장 장치.
  9. 제1항에 있어서,
    상기 제어 회로는 상기 복수의 비휘발성 메모리 셀들의 임계 전압들이 제1 검증 기준 전압에 있는지의 여부를 테스트함으로써 상기 제1 검증 조건에 대한 프로그램 검증을 수행하도록 구성되고;
    상기 제어 회로는 상기 복수의 비휘발성 메모리 셀들의 임계 전압들이 제2 검증 기준 전압에 있는지의 여부를 테스트함으로써 상기 제2 검증 조건에 대한 프로그램 검증을 수행하도록 구성된, 비휘발성 저장 장치.
  10. 제9항에 있어서,
    상기 제1 검증 기준 전압은 중간 검증 기준 전압이고;
    상기 제2 검증 기준 전압은 최종 검증 기준 전압인, 비휘발성 저장 장치.
  11. 제9항에 있어서,
    상기 제어 회로는, 상기 프로그래밍 프로세스 동안, 상기 제1 검증 기준 전압 초과의 그리고 상기 제2 검증 기준 전압 미만의 임계 전압들을 갖는, 상기 복수의 메모리 셀들 중의 메모리 셀들의 프로그래밍을 느리게 하도록 구성되고;
    상기 제어 회로는, 상기 프로그래밍 프로세스 동안, 상기 제2 검증 기준 전압 초과의 임계 전압들을 갖는, 상기 복수의 메모리 셀들 중의 메모리 셀들의 프로그래밍을 금지하도록 구성된, 비휘발성 저장 장치.
  12. 제1항에 있어서,
    상기 복수의 비휘발성 메모리 셀들은 3차원 NAND 스트링들을 포함하는, 비휘발성 저장 장치.
  13. 비휘발성 저장을 프로그래밍하기 위한 방법으로서,
    제1 데이터 상태로 프로그래밍되고 있는 복수의 비휘발성 메모리 셀들에 프로그래밍의 도즈들을 적용하는 단계; 및
    상기 프로그래밍의 도즈들 사이에서 프로그램 검증을 수행하는 단계를 포함하고, 상기 프로그램 검증을 수행하는 단계는,
    상기 제1 데이터 상태에 대한 제1 검증 조건에 대해 상기 복수의 비휘발성 메모리 셀들을 검증하는 반면, 상기 제1 데이터 상태에 대한 제2 검증 조건에 대해 상기 복수의 비휘발성 메모리 셀들을 검증하는 것을 스킵하는 단계,
    상기 제1 검증 조건을 만족한 메모리 셀들의 양이 제1 기준을 충족시킨다고 결정하는 단계,
    상기 제1 검증 조건을 만족한 메모리 셀들의 양이 상기 제1 기준을 충족시킨다고 결정한 것에 응답하여, 상기 데이터 상태에 대한 상기 제1 검증 조건에 대해 상기 복수의 비휘발성 메모리 셀들을 검증하고, 상기 데이터 상태에 대한 상기 제2 검증 조건에 대해 상기 복수의 비휘발성 메모리 셀들을 검증하는 단계,
    제2 기준이 만족된다고 결정하는 단계, 및
    상기 제2 기준이 만족되는 메모리 셀들의 양을 결정한 것에 응답하여, 상기 데이터 상태에 대한 상기 제2 검증 조건에 대해 상기 복수의 비휘발성 메모리 셀들을 검증하는 반면, 상기 데이터 상태에 대한 상기 제1 검증 조건에 대해 상기 복수의 비휘발성 메모리 셀들을 검증하는 것을 스킵하는 단계를 포함하는, 방법.
  14. 제13항에 있어서,
    상기 제2 기준은, 사전결정된 개수의 상기 복수의 비휘발성 메모리 셀들이 상기 제2 검증 조건을 만족했을 때 만족되는, 방법.
  15. 제13항에 있어서,
    상기 제2 기준은 상기 제1 기준이 만족된 후에 사전결정된 개수의 프로그래밍의 도즈들이 상기 복수의 비휘발성 메모리에 적용된 후에 만족되는, 방법.
  16. 제13항에 있어서,
    프로그래밍의 도즈들을 적용하는 단계는 상기 프로그래밍의 도즈들을 비휘발성 메모리 셀들의 선택된 세트에 적용하여, 비휘발성 메모리 셀들의 상기 세트의 각각의 비휘발성 메모리 셀이 다수의 비트들의 데이터를 저장하도록 비휘발성 메모리 셀들의 상기 선택된 세트를 다수의 데이터 상태들로 프로그래밍하는 단계를 포함하고;
    상기 복수의 비휘발성 메모리 셀들은 비휘발성 메모리 셀들의 상기 선택된 세트의 제1 서브세트이고;
    비휘발성 메모리 셀들의 상기 선택된 세트의 제2 서브세트는 상기 프로그래밍의 도즈들에 응답하여 제2 데이터 상태로 프로그래밍되고;
    상기 제2 기준은 비휘발성 메모리 셀들의 상기 선택된 세트의 제2 서브세트의 최소 개수가 상기 제2 데이터 상태에 대한 타깃 레벨에 도달했을 때 만족되는, 방법.
  17. 제13항에 있어서,
    상기 제2 기준은 상기 제1 검증 조건에 도달하는 상기 복수의 메모리 셀들의 양과 다른, 방법.
  18. 제13항에 있어서,
    상기 제1 검증 조건을 만족한 비휘발성 메모리 셀들에 대한 프로그래밍을 느리게 하는 단계; 및
    상기 제2 검증 조건을 만족한 비휘발성 메모리 셀들에 대한 프로그래밍을 금지하는 단계를 추가로 포함하는, 방법.
  19. 제13항에 있어서, 추가로,
    상기 프로그래밍의 도즈들은 펄스에 따라 크기가 증가하는 일련의 프로그래밍 전압 펄스들을 포함하고;
    상기 제1 검증 조건은 상기 제1 데이터 상태에 대한 중간 검증 기준 전압이고;
    상기 제2 검증 조건은 상기 제1 데이터 상태에 대한 최종 검증 기준 전압인, 방법.
  20. 비휘발성 저장 장치로서,
    비휘발성 메모리 셀들의 3차원 어레이;
    상기 메모리 셀들에 일련의 프로그래밍 전압 펄스들을 인가함으로써 상기 메모리 셀들을 프로그래밍하기 위한 수단; 및
    사전결정된 수 초과의 메모리 셀들이 데이터 상태에 대한 중간 검증 기준 전압에 도달할 때까지 비휘발성 메모리 셀들이 상기 데이터 상태에 대한 최종 검증 기준 전압에 도달했는지의 여부를 테스트하지 않고서 비휘발성 메모리 셀들이 상기 데이터 상태에 대한 상기 중간 검증 기준 전압에 도달했는지의 여부를 테스트함으로써, 상기 사전결정된 개수의 메모리 셀들이 상기 중간 검증 기준 전압에 도달한 후에 그리고 테스트 기준이 상기 중간 검증 기준 전압에 도달하는 메모리 셀들의 양과 다르도록 상기 테스트 기준이 충족될 때까지 비휘발성 메모리 셀들이 상기 중간 검증 기준 전압에 도달했는지의 여부를 테스트하고 비휘발성 메모리 셀들이 상기 최종 검증 기준 전압에 도달했는지의 여부를 테스트함으로써, 그리고 상기 테스트 기준이 충족된 후에 비휘발성 메모리 셀들이 상기 데이터 상태에 대한 상기 중간 검증 기준 전압에 도달했는지의 여부를 테스트하지 않고서 비휘발성 메모리 셀들이 상기 최종 검증 기준 전압에 도달했는지의 여부를 테스트함으로써 프로그래밍 전압 펄스들 사이에서 프로그래밍을 검증하기 위한 수단을 포함하는, 비휘발성 저장 장치.
KR1020200072760A 2020-02-19 2020-06-16 프로그램 검증 스킵을 갖는 비휘발성 메모리 KR102337129B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/795,313 2020-02-19
US16/795,313 US11049578B1 (en) 2020-02-19 2020-02-19 Non-volatile memory with program verify skip

Publications (2)

Publication Number Publication Date
KR20210105794A KR20210105794A (ko) 2021-08-27
KR102337129B1 true KR102337129B1 (ko) 2021-12-09

Family

ID=76548163

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200072760A KR102337129B1 (ko) 2020-02-19 2020-06-16 프로그램 검증 스킵을 갖는 비휘발성 메모리

Country Status (5)

Country Link
US (1) US11049578B1 (ko)
JP (1) JP6905127B1 (ko)
KR (1) KR102337129B1 (ko)
CN (1) CN113284538B (ko)
DE (1) DE102020115935A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115512747A (zh) 2021-06-23 2022-12-23 桑迪士克科技有限责任公司 用于具有相邻平面干扰检测的智能验证的设备和方法
CN113571115B (zh) * 2021-06-30 2024-06-14 长江存储科技有限责任公司 对存储器进行编程的方法及存储器
CN113421607B (zh) * 2021-06-30 2023-08-04 芯天下技术股份有限公司 一种闪存的校验修复方法、装置和电子设备
US11894077B2 (en) 2022-02-23 2024-02-06 Sandisk Technologies Llc Self-diagnostic smart verify algorithm in user mode to prevent unreliable acquired smart verify program voltage
CN114882928A (zh) * 2022-04-12 2022-08-09 长江存储科技有限责任公司 一种存储器装置、存储器系统及编程操作方法
US11881271B2 (en) 2022-05-31 2024-01-23 Sandisk Technologies Llc Non-volatile memory with engineered channel gradient
US20240233841A9 (en) * 2022-10-25 2024-07-11 Sandisk Technologies Llc Non-volatile memory with lower current program-verify

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3863330B2 (ja) 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
US6888758B1 (en) 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
US7139198B2 (en) 2004-01-27 2006-11-21 Sandisk Corporation Efficient verification for coarse/fine programming of non-volatile memory
US7020026B2 (en) 2004-05-05 2006-03-28 Sandisk Corporation Bitline governed approach for program control of non-volatile memory
US7092290B2 (en) 2004-11-16 2006-08-15 Sandisk Corporation High speed programming system with reduced over programming
US7158421B2 (en) 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7206235B1 (en) * 2005-10-14 2007-04-17 Sandisk Corporation Apparatus for controlled programming of non-volatile memory exhibiting bit line coupling
US7301817B2 (en) 2005-10-27 2007-11-27 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify
US7224614B1 (en) 2005-12-29 2007-05-29 Sandisk Corporation Methods for improved program-verify operations in non-volatile memories
TWI333210B (en) * 2006-06-01 2010-11-11 Sandisk Corp Non-volatile storage system and verify operation for non-volatile storage using different voltages
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
US7688638B2 (en) 2007-12-07 2010-03-30 Sandisk Corporation Faster programming of multi-level non-volatile storage through reduced verify operations
US7768836B2 (en) * 2008-10-10 2010-08-03 Sandisk Corporation Nonvolatile memory and method with reduced program verify by ignoring fastest and/or slowest programming bits
JP5292052B2 (ja) * 2008-10-21 2013-09-18 力晶科技股▲ふん▼有限公司 不揮発性半導体記憶装置とその書き込み方法
KR101528886B1 (ko) * 2009-04-09 2015-06-16 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US8054691B2 (en) * 2009-06-26 2011-11-08 Sandisk Technologies Inc. Detecting the completion of programming for non-volatile storage
US8223556B2 (en) * 2009-11-25 2012-07-17 Sandisk Technologies Inc. Programming non-volatile memory with a reduced number of verify operations
US8174895B2 (en) 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
KR101676816B1 (ko) * 2010-02-11 2016-11-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
US8233324B2 (en) 2010-03-25 2012-07-31 Sandisk Il Ltd. Simultaneous multi-state read or verify in non-volatile storage
US8274838B2 (en) * 2010-07-19 2012-09-25 Sandisk Technologies Inc. Programming non-volatile memory with bit line voltage step up
KR20120030281A (ko) * 2010-09-20 2012-03-28 삼성전자주식회사 플래시 메모리 장치, 및 그의 프로그램 검증 방법
KR101861084B1 (ko) * 2011-07-11 2018-05-28 삼성전자주식회사 비휘발성 메모리 장치, 이의 동작 방법, 및 비휘발성 메모리 장치를 포함하는 전자 장치
US8432740B2 (en) 2011-07-21 2013-04-30 Sandisk Technologies Inc. Program algorithm with staircase waveform decomposed into multiple passes
US8705293B2 (en) 2011-10-20 2014-04-22 Sandisk Technologies Inc. Compact sense amplifier for non-volatile memory suitable for quick pass write
US8971141B2 (en) 2012-06-28 2015-03-03 Sandisk Technologies Inc. Compact high speed sense amplifier for non-volatile memory and hybrid lockout
US8953386B2 (en) * 2012-10-25 2015-02-10 Sandisk Technologies Inc. Dynamic bit line bias for programming non-volatile memory
US9142298B2 (en) 2013-02-11 2015-09-22 Sandisk Technologies Inc. Efficient smart verify method for programming 3D non-volatile memory
US9082502B2 (en) 2013-10-10 2015-07-14 Sandisk Technologies Inc. Bit line and compare voltage modulation for sensing nonvolatile storage elements
US9443606B2 (en) 2014-10-28 2016-09-13 Sandisk Technologies Llc Word line dependent two strobe sensing mode for nonvolatile storage elements
US9548130B2 (en) * 2015-04-08 2017-01-17 Sandisk Technologies Llc Non-volatile memory with prior state sensing
US9570179B2 (en) * 2015-04-22 2017-02-14 Sandisk Technologies Llc Non-volatile memory with two phased programming
US9595317B2 (en) * 2015-05-28 2017-03-14 Sandisk Technologies Llc Multi-state programming for non-volatile memory
US10014063B2 (en) 2015-10-30 2018-07-03 Sandisk Technologies Llc Smart skip verify mode for programming a memory device
US9721662B1 (en) 2016-01-13 2017-08-01 Sandisk Technologies Llc Non-volatile memory with efficient programming
KR102697452B1 (ko) * 2016-11-22 2024-08-21 삼성전자주식회사 비휘발성 메모리 장치
IT201700034719A1 (it) * 2017-03-29 2018-09-29 Sk Hynix Inc Metodo per controllare le operazioni di verifica di programmazione di una memoria non volatile e relativo circuito
US10038005B1 (en) 2017-06-12 2018-07-31 Sandisk Technologies Llc Sense circuit having bit line clamp transistors with different threshold voltages for selectively boosting current in NAND strings
US10381095B1 (en) 2018-02-28 2019-08-13 Sandisk Technologies Llc Non-volatile memory with smart erase verify

Also Published As

Publication number Publication date
US11049578B1 (en) 2021-06-29
CN113284538B (zh) 2024-08-06
CN113284538A (zh) 2021-08-20
KR20210105794A (ko) 2021-08-27
JP2021131922A (ja) 2021-09-09
DE102020115935A1 (de) 2021-08-19
JP6905127B1 (ja) 2021-07-21

Similar Documents

Publication Publication Date Title
KR102327121B1 (ko) 다중 평면 혼합 서브블록 프로그래밍에 의한 비휘발성 메모리
KR102337129B1 (ko) 프로그램 검증 스킵을 갖는 비휘발성 메모리
US11495311B2 (en) Non-volatile memory with erase verify skip
US10223199B2 (en) Non-volatile memory configured to return error reduced read data
US9672940B1 (en) Non-volatile memory with fast read process
US10839928B1 (en) Non-volatile memory with countermeasure for over programming
CN113284539B (zh) 循环期间的编程电压调制
US10248499B2 (en) Non-volatile storage system using two pass programming with bit error control
US11081198B2 (en) Non-volatile memory with countermeasure for over programming
US20220101926A1 (en) Non-volatile memory with switchable erase methods
KR20210082263A (ko) 페어 스트링 구조를 갖는 3d 플래시 메모리를 위한 적응형 vpass
WO2022216340A1 (en) Non-volatile memory with multiple wells for word line switch transistors
US11894068B2 (en) Efficient sensing of soft bit data for non-volatile memory
US11901018B2 (en) Sense amplifier structure for non-volatile memory with neighbor bit line local data bus data transfer
KR102609401B1 (ko) 양면 인접 메모리 셀 간섭 완화
US11688469B2 (en) Non-volatile memory with sub-block based self-boosting scheme
US11901019B2 (en) Use of data latches for compression of soft bit data in non-volatile memories
US20240038315A1 (en) Early detection of programming failure for non-volatile memory
US20240177788A1 (en) Adaptive erase voltages for non-volatile memory
WO2024158450A1 (en) Apparatus and method for selectively reducing charge pump speed during erase operations

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right