KR20240045991A - 메모리 디바이스에서의 고성능 검증 기법들 - Google Patents

메모리 디바이스에서의 고성능 검증 기법들 Download PDF

Info

Publication number
KR20240045991A
KR20240045991A KR1020230089459A KR20230089459A KR20240045991A KR 20240045991 A KR20240045991 A KR 20240045991A KR 1020230089459 A KR1020230089459 A KR 1020230089459A KR 20230089459 A KR20230089459 A KR 20230089459A KR 20240045991 A KR20240045991 A KR 20240045991A
Authority
KR
South Korea
Prior art keywords
memory
word line
memory cells
programming
programming voltage
Prior art date
Application number
KR1020230089459A
Other languages
English (en)
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 KR20240045991A publication Critical patent/KR20240045991A/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/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
    • 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/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56016Apparatus features
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out

Landscapes

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

Abstract

메모리 디바이스는 복수의 워드 라인들로 배열된 복수의 메모리 셀들을 갖는 적어도 하나의 메모리 블록을 포함한다. 메모리 디바이스는 복수의 프로그램 루프들에서 적어도 하나의 메모리 블록의 메모리 셀들을 프로그래밍하도록 구성된 제어 회로부를 포함한다. 제어 회로부는 사용자 데이터를 메모리 디바이스에 기입하라는 커맨드를 수신하도록 추가로 구성된다. 복수의 워드 라인들 중 선택된 워드 라인의 적어도 일부 상에서, 제어 회로부는 스마트 검증 프로그래밍 전압을 획득하기 위해 스마트 검증 동작을 수행하도록 구성된다. 스마트 검증 프로그래밍 전압이 획득된 이후, 복수의 프로그램 루프들에서, 제어 회로부는 사용자 데이터, 및 스마트 검증 프로그래밍 전압에 대응하는 데이터를 포함하도록 선택된 워드 라인의 메모리 셀들을 프로그래밍하도록 구성된다.

Description

메모리 디바이스에서의 고성능 검증 기법들{HIGH PERFORMANCE VERIFY TECHNIQUES IN A MEMORY DEVICE}
1. 기술분야
본 개시내용은 일반적으로 메모리 디바이스들에 관한 것으로, 더 구체적으로는 프로그래밍 동작 동안 메모리 셀들의 임계 전압들을 검증하기 위한 기법들에 관한 것이다.
2. 종래 기술
반도체 메모리는 셀룰러 전화기들, 디지털 카메라들, 개인 휴대 정보 단말기들, 의료용 전자기기들, 모바일 컴퓨팅 디바이스들, 서버들, 솔리드 스테이트 드라이브들, 비-모바일 컴퓨팅 디바이스들 및 다른 디바이스들과 같은 다양한 전자 디바이스들에서 널리 사용된다. 반도체 메모리는 비휘발성 메모리 또는 휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는 비휘발성 메모리가 전원, 예를 들어 배터리에 연결되어 있지 않을 때에도 정보가 저장되고 보유되게 허용한다.
NAND 메모리 디바이스들은 복수의 메모리 블록들을 갖는 칩을 포함하며, 복수의 메모리 블록들 각각은 복수의 워드 라인들로 배열된 메모리 셀들의 어레이를 포함한다. 데이터를 유지하기 위해 워드 라인의 메모리 셀들을 프로그래밍하는 것은 전형적으로 복수의 프로그램 루프들에서 발생하며, 이들 각각은 워드 라인의 제어 게이트로의 프로그래밍 펄스의 인가 및 선택적으로는, 프로그래밍되고 있는 메모리 셀들의 임계 전압들을 감지하기 위한 검증 동작을 포함한다. 많은 프로그래밍 기법들에서, 프로그래밍 펄스는 제1 프로그램 루프에서 초기 프로그래밍 전압을 갖고, 이어서 프로그래밍 펄스의 전압은 프로그래밍이 완료될 때까지 프로그램 루프들 사이에서 증분적으로 증가한다. 초기 프로그래밍 전압에 대한 최적 값은 칩 내의 복수의 메모리 블록들에 걸쳐 변하고, 또한 단일 메모리 블록의 워드 라인들 사이에서 변할 수 있다. 초기 프로그래밍 전압이 너무 높게 설정되면, 일부 메모리 셀들의 오버프로그래밍이 발생할 수 있지만, 그것이 너무 낮게 설정되면, 프로그래밍 성능이 악화될 수 있다.
오버프로그래밍이 발생할 수 있도록 단지 높은 레벨로 초기 프로그래밍 전압을 설정하지 않으면서 프로그래밍 성능을 개선시키기 위한 하나의 접근법은 메모리 블록에서의 프로그래밍 동작이 시작할 때 스마트 검증 동작을 수행하는 것이다. 스마트 검증 동작은 복수의 스마트 검증 프로그래밍 루프들을 포함하며, 이들 각각은 프로그래밍 펄스 및 검증 동작을 포함한다. 각각의 스마트 검증 프로그래밍 루프의 검증 동작 동안, 미리 결정된 검증 전압보다 큰 임계 전압들을 갖는 메모리 셀들의 수가 결정되고 타깃과 비교된다. 검증 동작이 통과되면, 마지막 프로그래밍 펄스의 전압은 칩의 NAND 레지스터에 저장되고, 메모리 블록에서의 후속 프로그래밍 동작들에 대한 초기 프로그래밍 전압으로서 사용된다. 그러나, NAND 레지스터는 전형적으로 칩 내의 메모리 블록들 모두에 대한 최적의 초기 프로그래밍 전압들 모두를 유지할 수 없다.
본 개시내용의 일 양태는 메모리 디바이스를 프로그래밍하는 방법에 관한 것이다. 방법은 사용자 데이터를 메모리 디바이스에 기입하라는 커맨드를 수신하는 단계를 포함한다. 방법은 복수의 워드 라인들로 배열된 복수의 메모리 셀들을 포함하는 적어도 하나의 메모리 블록을 준비하는 단계로 진행한다. 복수의 워드 라인들 중 선택된 워드 라인의 적어도 일부 상에서, 방법은 스마트 검증 프로그래밍 전압을 획득하기 위해 스마트 검증 동작을 수행하는 단계로 진행한다. 스마트 검증 프로그래밍 전압이 획득된 이후, 복수의 프로그램 루프들에서, 방법은, 사용자 데이터, 및 스마트 검증 프로그래밍 전압에 대응하는 데이터를 포함하도록 선택된 워드 라인의 메모리 셀들을 프로그래밍하는 단계로 계속된다.
본 개시내용의 다른 양태에 따르면, 선택된 워드 라인은 복수의 스트링들을 포함하고, 스마트 검증 프로그래밍 전압을 획득하기 위해 스마트 검증 동작을 수행하는 단계는 단지 복수의 스트링들 중 제1 스트링 상에만 이루어진다. 선택된 워드 라인의 메모리 셀들을 프로그래밍하는 단계는 스마트 검증 프로그래밍 전압에 대응하는 데이터를 선택된 워드 라인의 제1 스트링의 메모리 셀들 내로 프로그래밍하는 단계를 포함한다.
본 개시내용의 또 다른 양태에 따르면, 방법은 스마트 검증 프로그래밍 전압을 초기 프로그래밍 전압으로서 사용하여 복수의 프로그램 루프들에서 선택된 워드 라인의 다른 스트링들의 메모리 셀들 내로 사용자 데이터를 프로그래밍하는 단계를 더 포함한다.
본 개시내용의 또 다른 양태에 따르면, 메모리 블록의 워드 라인들 각각은 복수의 스트링들을 포함한다. 방법은, 각각의 워드 라인에 대한 스마트 검증 프로그래밍 전압을 획득하기 위해 워드 라인들 각각의 제1 스트링 상에서 스마트 검증 동작을 수행하고, 각각의 워드 라인에 대한 스마트 검증 프로그래밍 전압에 대응하는 데이터를 그 워드 라인의 제1 스트링의 메모리 셀들 내로 프로그래밍하는 단계를 더 포함한다.
본 개시내용의 추가적인 양태에 따르면, 선택된 워드 라인의 제1 스트링의 메모리 셀들 내로 프로그래밍된 스마트 검증 프로그래밍 전압은 복수의 프로그램 루프들에서 적어도 하나의 부가적인 워드 라인을 프로그래밍할 때의 초기 프로그래밍 전압이다.
본 개시내용의 또 다른 양태에 따르면, 스마트 검증 프로그래밍 전압에 대응하는 데이터를 포함하도록 프로그래밍되는 제1 스트링의 메모리 셀들은 메모리 셀당 하나의 비트(SLC) 저장 스킴(scheme)으로 프로그래밍된다.
본 개시내용의 또 다른 양태에 따르면, 사용자 데이터를 포함하도록 프로그래밍되는 제1 스트링의 메모리 셀들은 메모리 셀당 하나 이상의 비트들의 저장 스킴으로 프로그래밍된다.
본 개시내용의 다른 양태에 따르면, 스마트 검증 프로그래밍 전압에 대응하고 제1 스트링의 메모리 셀들로 프로그래밍되는 데이터는 1 바이트 이하의 데이터이다.
본 개시내용의 또 다른 양태에 따르면, 메모리 디바이스는 단지 하나의 바이트의 데이터만을 또는 3 바이트 이하의 데이터를 포함할 수 있는 NAND 레지스터를 갖는다.
본 개시내용의 다른 양태는 메모리 디바이스에 관한 것이다. 메모리 디바이스는 복수의 워드 라인들로 배열된 복수의 메모리 셀들을 갖는 적어도 하나의 메모리 블록을 포함한다. 메모리 디바이스는 복수의 프로그램 루프들에서 적어도 하나의 메모리 블록의 메모리 셀들을 프로그래밍하도록 구성된 제어 회로부를 포함한다. 제어 회로부는 사용자 데이터를 메모리 디바이스에 기입하라는 커맨드를 수신하도록 추가로 구성된다. 복수의 워드 라인들 중 선택된 워드 라인의 적어도 일부 상에서, 제어 회로부는 스마트 검증 프로그래밍 전압을 획득하기 위해 스마트 검증 동작을 수행하도록 구성된다. 스마트 검증 프로그래밍 전압이 획득된 이후, 복수의 프로그램 루프들에서, 제어 회로부는 사용자 데이터, 및 스마트 검증 프로그래밍 전압에 대응하는 데이터를 포함하도록 선택된 워드 라인의 메모리 셀들을 프로그래밍하도록 구성된다.
본 개시내용의 다른 양상에 따르면, 선택된 워드 라인은 복수의 스트링들을 포함하며, 제어 회로부는 스마트 검증 프로그래밍 전압에 대응하는 데이터를 선택된 워드 라인의 제1 스트링의 메모리 셀들 내로 프로그래밍하도록 구성된다.
본 개시내용의 또 다른 양태에 따르면, 제어 회로부는 스마트 검증 프로그래밍 전압을 초기 프로그래밍 전압으로서 사용하여 복수의 프로그램 루프들에서 선택된 워드 라인의 다른 스트링들의 메모리 셀들 내로 사용자 데이터를 프로그래밍하도록 추가로 구성된다.
본 개시내용의 또 다른 양태에 따르면, 메모리 블록의 워드 라인들 각각은 복수의 스트링들을 포함한다. 제어 회로부는 각각의 워드 라인에 대한 스마트 검증 프로그래밍 전압을 획득하기 위해 워드 라인들 각각의 제1 스트링 상에서 스마트 검증 동작을 수행하고, 각각의 워드 라인에 대한 스마트 검증 프로그래밍 전압에 대응하는 데이터를 그 워드 라인의 제1 스트링의 메모리 셀들 내로 프로그래밍하도록 추가로 구성된다.
본 개시내용의 추가적인 양태에 따르면, 제어 회로부에 의해 선택된 워드 라인의 제1 스트링의 메모리 셀들 내로 프로그래밍된 스마트 검증 프로그래밍 전압은 복수의 프로그램 루프들에서 메모리 블록의 적어도 하나의 부가적인 워드 라인을 프로그래밍할 때의 초기 프로그래밍 전압이다.
본 개시내용의 또 다른 양태에 따르면, 스마트 검증 프로그래밍 전압에 대응하는 데이터를 포함하도록 제어 회로부에 의해 프로그래밍되는 제1 스트링의 메모리 셀들은 메모리 셀당 하나의 비트(SLC) 저장 스킴으로 프로그래밍된다.
본 개시내용의 또 다른 양태에 따르면, 사용자 데이터를 포함하도록 제어 회로부에 의해 프로그래밍되는 제1 스트링의 메모리 셀들은 메모리 셀당 2개 이상의 비트들의 저장 스킴으로 프로그래밍된다.
본 개시내용의 다른 양태에 따르면, 스마트 검증 프로그래밍 전압에 대응하고 제1 스트링의 메모리 셀들로 프로그래밍되는 데이터는 1 바이트 이하의 데이터이다.
본 개시내용의 또 다른 양태에 따르면, 메모리 디바이스는 단지 하나의 바이트의 데이터만을 또는 3 바이트 이하의 데이터를 포함할 수 있는 NAND 레지스터를 더 포함한다.
본 개시내용의 또 다른 양태는 복수의 워드 라인들로 배열된 복수의 메모리 셀들을 포함하는 적어도 하나의 메모리 블록을 포함하는 장치에 관한 것이다. 장치는 또한 사용자 데이터를 복수의 메모리 셀들 내로 프로그래밍하기 위한 프로그래밍 수단을 포함한다. 프로그래밍 수단은 복수의 프로그램 루프들에서 적어도 하나의 메모리 블록의 메모리 셀들을 프로그래밍하도록 구성된다. 프로그래밍 수단은 사용자 데이터를 메모리 디바이스에 기입하라는 커맨드를 수신하도록 추가로 구성된다. 복수의 워드 라인들 중 선택된 워드 라인의 복수의 스트링들 중 제1 스트링 상에서, 프로그래밍 수단은 스마트 검증 프로그래밍 전압을 획득하기 위해 스마트 검증 동작을 수행하도록 구성된다. 스마트 검증 프로그래밍 전압이 획득된 이후, 복수의 프로그램 루프들에서, 프로그래밍 수단은 사용자 데이터, 및 스마트 검증 프로그래밍 전압에 대응하는 데이터를 포함하도록 선택된 워드 라인의 메모리 셀들을 프로그래밍하도록 추가로 구성된다. 프로그래밍 수단은 스마트 검증 프로그래밍 전압을 초기 프로그래밍 전압으로서 사용하여 복수의 프로그램 루프들에서 선택된 워드 라인의 다른 스트링들의 메모리 셀들을 프로그래밍하도록 추가로 구성된다.
본 개시내용의 다른 양태에 따르면, 프로그래밍 수단은, 메모리 블록 내의 복수의 워드 라인들의 각각의 워드 라인의 제1 스트링 상에서 스마트 검증 동작을 수행하고, 고유 스마트 검증 프로그래밍 전압에 대응하는 데이터를 각각의 워드 라인의 제1 스트링의 메모리 셀들 내로 프로그래밍하도록 추가로 구성된다.
더 상세한 설명이 첨부 도면들에 도시된 예시적인 실시예들을 참조하여 아래에 기재된다. 이들 도면들이 본 개시내용의 예시적인 실시예들만을 도시하고, 따라서 그의 범주를 제한하는 것으로 간주되지 않는다는 것을 이해한다. 본 개시내용은 첨부 도면들의 사용을 통해 추가된 특이성 및 세부사항으로 기술되고 설명된다.
도 1a는 예시적인 메모리 디바이스의 블록도이다.
도 1b는 예시적인 제어 회로의 블록도이다.
도 2는 도 1a의 메모리 어레이의 예시적인 2차원 구성에서의 메모리 셀들의 블록들을 도시한다.
도 3a 및 도 3b는 NAND 스트링들에서의 예시적인 플로팅(floating) 게이트 메모리 셀들의 단면도들을 도시한다.
도 4a 및 도 4b는 NAND 스트링들에서의 예시적인 전하 트래핑 메모리 셀들의 단면도들을 도시한다.
도 5는 도 1의 감지 블록(SB1)의 예시적인 블록도를 도시한다.
도 6a는 도 1의 메모리 어레이의 예시적인 3차원 구성에서의 블록들의 세트의 사시도이다.
도 6b는 도 6a의 블록들 중 하나의 블록의 일부의 예시적인 단면도를 도시한다.
도 6c는 도 6b의 스택에서의 메모리 홀 직경의 플롯을 도시한다.
도 6d는 도 6b의 스택의 구역(622)의 확대도를 도시한다.
도 7a는 도 6b의 스택의 예시적인 워드 라인 층(WLL0)의 평면도를 도시한다.
도 7b는 도 6b의 스택의 예시적인 상단 유전체 층(DL116)의 평면도를 도시한다.
도 8은 메모리 셀당 하나의 비트(SLC)로 프로그래밍된 메모리 셀들의 페이지의 임계 전압 분포를 도시한다.
도 9는 메모리 셀당 3개의 비트들(TLC)로 프로그래밍된 메모리 셀들의 페이지의 임계 전압 분포를 도시한다.
도 10은 메모리 셀당 4개의 비트들(QLC)로 프로그래밍된 메모리 셀들의 페이지의 임계 전압 분포를 도시한다.
도 11은 프로그래밍 동작 동안 선택된 워드 라인의 제어 게이트에 인가되는 전압의 전압 파형을 도시한다.
도 12는 스마트 검증 동작 동안 그리고 그 직후 선택된 워드 라인의 제어 게이트에 인가되는 전압들의 전압 파형을 도시한다.
도 13은 스마트 검증 동작의 복수의 프로그램 루프들 전의 그리고 그에 후속하는 복수의 메모리 셀들의 임계 전압 분포를 도시한다.
도 14는 스마트 검증 바이트에서의 상이한 비트 조합들과 연관된 SV_VPGM 전압들의 예시적인 테이블을 도시한다.
도 15는 사용자 데이터에 전용되는 워드 라인의 일부 및 스마트 검증 바이트에 전용되는 워드 라인의 일부를 식별하는 예시적인 워드 라인의 개략도이다.
도 16은 본 개시내용의 예시적인 실시예에 따른, 메모리 블록에서 워드 라인들을 프로그래밍하는 단계들을 도시하는 흐름도이다.
도 17은 스마트 검증 동작의 복수의 프로그램 루프들 전의 그리고 그에 후속하는 복수의 메모리 셀들의 임계 전압 분포를 도시한다.
도 18은 본 개시내용의 프로그래밍 기법들의 일 실시예를 이용하는 동안 예시적인 실시예에서 메모리 셀들을 프로그래밍하는 시퀀스의 테이블을 도시한다.
본 개시내용의 일 양태는, 메모리 블록에서 스마트 검증 동작 동안 스마트 검증 전압이 획득될 때, 그것이 NAND 레지스터에 부가하여 메모리 블록의 메모리 셀들에 직접 저장되도록 메모리 블록의 메모리 셀들을 프로그래밍하기 위한 개선된 기법에 관한 것이다. 메모리 디바이스가 블록 점프(하나의 메모리 블록을 프로그래밍하는 것으로부터 다른 메모리 블록을 프로그래밍하는 것으로의 변화)를 겪고, NAND 레지스터에 저장된 스마트 검증 전압이 새롭게 선택된 블록과 매칭되지 않는 경우, 새롭게 선택된 블록에 대한 스마트 검증 전압은 재획득될 필요는 없지만, 대신에 메모리 블록의 메모리 셀들로부터 용이하게 액세스되고, NAND 레지스터로 입력될 수 있다. 이러한 프로그래밍 기법들은 프로그래밍에 비해 위험하지 않으면서, 메모리 디바이스가 특정 인스턴스들에서, 예컨대 블록 점프에 후속하여 시간 소모적인 스마트 검증 동작을 스킵하게 허용함으로써 성능을 개선시킨다. 이러한 프로그래밍 기법들은 이하에서 더 상세히 논의된다.
도 1a는 본 개시내용의 프로그래밍 기법들에 따라 동작하도록 구성된 예시적인 메모리 디바이스(100)의 블록도이다. 메모리 다이(108)는 메모리 셀들의 메모리 구조물(126), 예컨대, 메모리 셀들의 어레이, 제어 회로부(110), 및 판독/기입 회로들(128)을 포함한다. 메모리 구조물(126)은 행(row) 디코더(124)를 통해 워드 라인들에 의해 그리고 열(column) 디코더(132)를 통해 비트 라인들에 의해 어드레싱가능하다. 판독/기입 회로들(128)은 다수의 감지 블록들(SB1, SB2, ... SBp)(감지 회로부)을 포함하고, 메모리 셀들의 일 페이지가 병렬로 판독되거나 프로그래밍되게 허용한다. 전형적으로, 제어기(122)는 하나 이상의 메모리 다이(108)와 동일한 메모리 디바이스(100)(예를 들어, 착탈식 저장 카드)에 포함된다. 커맨드들 및 데이터가 데이터 버스(120)를 통해 호스트(140)와 제어기(122) 사이에서 전달되고, 라인들(118)을 통해 제어기와 하나 이상의 메모리 다이(108) 사이에서 전달된다.
메모리 구조물(126)은 2차원 또는 3차원일 수 있다. 메모리 구조물(126)은 3차원 어레이를 포함하는 메모리 셀들의 하나 이상의 어레이를 포함할 수 있다. 메모리 구조물(126)은 다수의 메모리 레벨들이, 개재된 기판들 없이, 웨이퍼와 같은 단일 기판 위에 형성되는 (그리고 그 내에는 형성되지 않는) 모놀리식 3차원 메모리 구조물을 포함할 수 있다. 메모리 구조물(126)은 실리콘 기판 위에 배치된 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 이상의 물리적 레벨들에 모놀리식으로 형성된 임의의 유형의 비휘발성 메모리를 포함할 수 있다. 메모리 구조물(126)은, 연관된 회로부가 기판 위에 있든지 또는 기판 내에 있든지 간에, 메모리 셀들의 동작과 연관된 회로부를 갖는 비휘발성 메모리 디바이스 내에 있을 수 있다.
제어 회로부(110)는 판독/기입 회로들(128)과 협력하여 메모리 구조물(126)에 대한 메모리 동작들을 수행하며, 상태 머신(112), 온-칩 어드레스 디코더(114), 및 전력 제어 모듈(116)을 포함한다. 상태 머신(112)은 메모리 동작들의 칩 레벨 제어를 제공한다.
저장 구역(113)은, 예를 들어 프로그래밍 파라미터들을 위해 제공될 수 있다. 프로그래밍 파라미터들은 프로그램 전압, 프로그램 전압 바이어스, 메모리 셀들의 포지션들을 표시하는 포지션 파라미터들, 콘택 라인 커넥터 두께 파라미터들, 검증 전압 등을 포함할 수 있다. 포지션 파라미터들은 NAND 스트링들의 전체 어레이 내의 메모리 셀의 포지션, 특정 NAND 스트링 그룹 내에 있을 때의 메모리 셀의 포지션, 특정 평면 상의 메모리 셀의 포지션 등을 표시할 수 있다. 콘택 라인 커넥터 두께 파라미터들은 콘택 라인 커넥터의 두께, 콘택 라인 커넥터를 구성하는 기판 또는 재료 등을 표시할 수 있다.
온-칩 어드레스 디코더(114)는 호스트 또는 메모리 제어기에 의해 사용되는 어드레스와 디코더들(124, 132)에 의해 사용되는 하드웨어 어드레스 사이에 어드레스 인터페이스를 제공한다. 전력 제어 모듈(116)은 메모리 동작들 동안 워드 라인들 및 비트 라인들에 공급되는 전력 및 전압들을 제어한다. 그것은 워드 라인들, SGS 및 SGD 트랜지스터들 및 소스 라인들을 위한 드라이버들을 포함할 수 있다. 감지 블록들은 하나의 접근법에서 비트 라인 드라이버들을 포함할 수 있다. SGS 트랜지스터는 NAND 스트링의 소스 단부에 있는 선택 게이트 트랜지스터이고, SGD 트랜지스터는 NAND 스트링의 드레인 단부에 있는 선택 게이트 트랜지스터이다.
일부 구현예들에서, 컴포넌트들 중 일부가 조합될 수 있다. 다양한 설계들에서, 메모리 구조물(126) 이외의 컴포넌트들 중 하나 이상은 (단독으로 또는 조합하여) 본 명세서에 설명된 동작들을 수행하도록 구성된 적어도 하나의 제어 회로로 고려될 수 있다. 예를 들어, 제어 회로는 제어 회로부(110), 상태 머신(112), 디코더들(114/132), 전력 제어 모듈(116), 감지 블록들(SBb, SB2, ..., SBp), 판독/기입 회로들(128), 제어기(122) 등 중 임의의 하나 또는 이들의 조합을 포함할 수 있다.
제어 회로들은 메모리 셀들의 하나의 세트에 대한 프로그램 및 검증 동작을 수행하도록 구성된 프로그래밍 회로를 포함할 수 있으며, 여기서, 메모리 셀들의 하나의 세트는 복수의 데이터 상태들 중에서 하나의 데이터 상태를 표현하도록 할당된 메모리 셀들 및 복수의 데이터 상태들 중에서 다른 데이터 상태를 표현하도록 할당된 메모리 셀들을 포함하고; 프로그램 및 검증 동작은 복수의 프로그램 및 검증 반복들을 포함하고; 각각의 프로그램 및 검증 반복에서, 프로그래밍 회로는 하나의 선택된 워드 라인에 대한 프로그래밍을 수행하고, 그 후, 프로그래밍 회로는 선택된 워드 라인에 검증 신호를 인가한다. 제어 회로들은 또한 하나의 데이터 상태에 대한 검증 테스트를 통과하는 메모리 셀들의 카운트를 획득하도록 구성된 카운팅 회로를 포함할 수 있다. 제어 회로들은 또한, 카운트가 임계치를 초과하는 양에 기초하여, 프로그래밍 동작이 완료되는지를 결정하도록 구성된 결정 회로를 포함할 수 있다.
예를 들어, 도 1b는 프로그래밍 회로(151), 카운팅 회로(152), 및 결정 회로(153)를 포함하는 예시적인 제어 회로(150)의 블록도이다.
오프-칩 제어기(122)는 프로세서(122c), ROM(122a) 및 RAM(122b)과 같은 저장 디바이스들(메모리), 및 오류 정정 코드(ECC) 엔진(245)을 포함할 수 있다. ECC 엔진은 Vth 분포의 상부 테일(tail)이 너무 높게 될 때 야기되는 다수의 판독 오류들을 정정할 수 있다. 그러나, 정정불가능 오류(uncorrectable error)들이 일부 경우들에 존재할 수 있다. 본 명세서에 제공된 기법들은 정정불가능 오류들의 가능성을 감소시킨다.
저장 디바이스(들)(122a, 122b)는 명령어들의 세트와 같은 코드를 포함하고, 프로세서(122c)는 본 명세서에서 설명되는 기능을 제공하기 위해 명령어들의 세트를 실행하도록 동작가능하다. 대안적으로 또는 부가적으로, 프로세서(122c)는 하나 이상의 워드 라인들에서의 메모리 셀들의 예약된 영역과 같은 메모리 구조물(126)의 저장 디바이스(126a)로부터의 코드에 액세스할 수 있다. 예를 들어, 코드는, 예컨대, 프로그래밍, 판독, 및 소거 동작들을 위해 메모리 구조물(126)에 액세스하도록 제어기(122)에 의해 사용될 수 있다. 코드는 부트 코드 및 제어 코드(예를 들어, 명령어들의 세트)를 포함할 수 있다. 부트 코드는, 부팅 또는 시동 프로세스 동안 제어기(122)를 초기화하고 제어기(122)가 메모리 구조물(126)에 액세스할 수 있게 하는 소프트웨어이다. 코드는 하나 이상의 메모리 구조물들(126)을 제어하기 위해 제어기(122)에 의해 사용될 수 있다. 전력공급 시에, 프로세서(122c)는 실행을 위해 ROM(122a) 또는 저장 디바이스(126a)로부터 부트 코드를 페치(fetch)하고, 부트 코드는 시스템 컴포넌트들을 초기화하고 제어 코드를 RAM(122b)에 로딩한다. 일단 제어 코드가 RAM(122b)에 로딩되면, 그것은 프로세서(122c)에 의해 실행된다. 제어 코드는 메모리의 제어 및 할당, 명령어들의 프로세싱의 우선순위화, 및 입력 및 출력 포트들의 제어와 같은 기본 작업들을 수행하기 위한 드라이버들을 포함한다.
일반적으로, 제어 코드는, 아래에서 추가로 논의되는 흐름도들의 단계들을 포함하는 본 명세서에서 설명되는 기능들을 수행하고, 아래에서 추가로 논의되는 것들을 포함하는 전압 파형들을 제공하기 위한 명령어들을 포함할 수 있다.
일 실시예에서, 호스트는 하나 이상의 프로세서들, 본 명세서에 설명되는 방법들을 수행하도록 하나 이상의 프로세서들을 프로그래밍하기 위한 프로세서 판독가능 코드(예를 들어, 소프트웨어)를 저장하는 하나 이상의 프로세서 판독가능 저장 디바이스들(RAM, ROM, 플래시 메모리, 하드 디스크 드라이브, 솔리드 스테이트 메모리)을 포함하는 컴퓨팅 디바이스(예를 들어, 랩톱, 데스크톱, 스마트폰, 태블릿, 디지털 카메라)이다. 호스트는 또한, 하나 이상의 프로세서들과 통신하는 부가적인 시스템 메모리, 하나 이상의 입력/출력 인터페이스들 및/또는 하나 이상의 입력/출력 디바이스들을 포함할 수 있다.
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 구성으로 구성될 수 있다.
메모리 디바이스들은 수동 및/또는 능동 요소들로부터, 임의의 조합들로 형성될 수 있다. 비제한적인 예로서, 수동 반도체 메모리 요소들은 ReRAM 디바이스 요소들을 포함하며, 이들은 일부 실시예들에서, 안티-퓨즈(anti-fuse) 또는 상변화 재료와 같은 저항성 스위칭 저장 요소, 및 선택적으로, 다이오드 또는 트랜지스터와 같은 스티어링 요소(steering element)를 포함한다. 추가로, 비제한적인 예로서, 능동 반도체 메모리 요소들은 EEPROM 및 플래시 메모리 디바이스 요소들을 포함하며, 이들은 일부 실시예들에서, 플로팅 게이트, 전도성 나노입자들, 또는 전하 저장 유전체 재료와 같은 전하 저장 구역을 포함하는 요소들을 포함한다.
다수의 메모리 요소들은 그들이 직렬로 연결되도록 또는 각각의 요소가 개별적으로 액세스가능하도록 구성될 수 있다. 비제한적인 예로서, NAND 구성의 플래시 메모리 디바이스들(NAND 메모리)은 전형적으로 직렬로 연결된 메모리 요소들을 포함한다. NAND 스트링은, SG 트랜지스터들 및 메모리 셀들을 포함하는 직렬로 연결된 트랜지스터들의 세트의 일 예이다.
NAND 메모리 어레이는 어레이가 다수의 메모리 스트링들 - 스트링은, 단일 비트 라인을 공유하고 그룹으로서 액세스되는 다수의 메모리 요소들로 구성됨 - 로 구성되도록 구성될 수 있다. 대안적으로, 메모리 요소들은 각각의 요소가 개별적으로 액세스가능하도록 구성될 수 있다 - 예를 들어, NOR 메모리 어레이. NAND 및 NOR 메모리 구성들은 예들이고, 메모리 요소들은 달리 구성될 수 있다. 기판 내에 그리고/또는 기판 위에 위치된 반도체 메모리 요소들은 2차원 메모리 구조물 또는 3차원 메모리 구조물과 같이, 2차원 또는 3차원으로 배열될 수 있다.
2차원 메모리 구조물에서, 반도체 메모리 요소들은 단일 평면 또는 단일 메모리 디바이스 레벨로 배열된다. 전형적으로, 2차원 메모리 구조물에서, 메모리 요소들은, 메모리 요소들을 지지하는 기판의 주 표면에 실질적으로 평행하게 연장되는 평면(예를 들어, x-y 방향 평면) 내에 배열된다. 기판은 메모리 요소들의 층이 상부에 또는 내부에 형성되는 웨이퍼일 수 있거나, 또는 그것은 메모리 요소들이 형성된 이후 메모리 요소들에 부착되는 캐리어 기판일 수 있다. 비제한적인 예로서, 기판은 실리콘과 같은 반도체를 포함할 수 있다.
메모리 요소들은, 복수의 행들 및/또는 열들에서와 같이, 순서화된 어레이에서의 단일 메모리 디바이스 레벨로 배열될 수 있다. 그러나, 메모리 요소들은 규칙적이지 않은(non-regular) 또는 직교하지 않는(non-orthogonal) 구성들로 배열될 수 있다. 메모리 요소들은 각각 비트 라인들 및 워드 라인들과 같은 2개 이상의 전극들 또는 콘택 라인들을 가질 수 있다.
3차원 메모리 어레이는 메모리 요소들이 다수의 평면들 또는 다수의 메모리 디바이스 레벨들을 차지하도록 배열되고, 그에 의해 구조물을 3차원들로 (즉, x, y 및 z 방향들로 - 여기서, z 방향은 기판의 주 표면에 실질적으로 수직이고, x 및 y 방향들은 기판의 주 표면에 실질적으로 평행함) 형성한다.
비제한적인 예로서, 3차원 메모리 구조물은 다수의 2차원 메모리 디바이스 레벨들의 스택으로서 수직으로 배열될 수 있다. 다른 비제한적인 예로서, 3차원 메모리 어레이는 각각의 컬럼이 다수의 메모리 요소들을 갖는 다수의 수직 열들(예를 들어, 기판의 주 표면에 실질적으로 수직으로, 즉, y 방향으로 연장된 열들)로서 배열될 수 있다. 열들은 2차원 구성으로, 예를 들어, x-y 평면 내에 배열될 수 있어서, 요소들이 다수의 수직으로 적층된 메모리 평면들 상에 있는, 메모리 요소들의 3차원 배열을 초래할 수 있다. 3차원의 메모리 요소들의 다른 구성들이 또한 3차원 메모리 어레이를 구성할 수 있다.
비제한적인 예로서, NAND 스트링들의 3차원 어레이에서, 메모리 요소들은 함께 커플링되어, 단일 수평(예를 들어, x-y) 메모리 디바이스 레벨 내의 NAND 스트링을 형성할 수 있다. 대안적으로, 메모리 요소들은 함께 커플링되어, 다수의 수평 메모리 디바이스 레벨들을 횡단하는 수직 NAND 스트링을 형성할 수 있다. 일부 NAND 스트링들이 메모리 요소들을 단일 메모리 레벨로 포함하는 반면 다른 스트링들은 다수의 메모리 레벨들을 통하여 걸쳐 있는 메모리 요소들을 포함하는 다른 3차원 구성들이 구상될 수 있다. 3차원 메모리 어레이들은 또한 NOR 구성으로 그리고 ReRAM 구성으로 설계될 수 있다.
전형적으로, 모놀리식 3차원 메모리 어레이에서, 하나 이상의 메모리 디바이스 레벨들이 단일 기판 위에 형성된다. 선택적으로, 모놀리식 3차원 메모리 어레이는 또한, 적어도 부분적으로 단일 기판 내에 하나 이상의 메모리 층들을 가질 수 있다. 비제한적인 예로서, 기판은 실리콘과 같은 반도체를 포함할 수 있다. 모놀리식 3차원 어레이에서, 어레이의 각각의 메모리 디바이스 레벨을 구성하는 층들은 전형적으로 어레이의 하부 메모리 디바이스 레벨들의 층들 상에 형성된다. 그러나, 모놀리식 3차원 메모리 어레이의 인접한 메모리 디바이스 레벨들의 층들은 공유될 수 있거나 또는 메모리 디바이스 레벨들 사이에 개재하는 층들을 가질 수 있다.
또 한편으로는, 2차원 어레이들은 별도로 형성되고 이어서 함께 패키징되어 다수의 메모리 층들을 갖는 비-모놀리식 메모리 디바이스를 형성할 수 있다. 예를 들어, 비모놀리식 적층된 메모리들은, 별개의 기판들 상에 메모리 레벨들을 형성하고 이어서 메모리 레벨들을 서로 맨 위에 적층함으로써 구성될 수 있다. 기판들은 적층 이전에 메모리 디바이스 레벨들로부터 박화되거나 제거될 수 있지만, 메모리 디바이스 레벨들은 초기에 별개의 기판들 위에 형성되기 때문에, 생성된 메모리 어레이들은 모놀리식 3차원 메모리 어레이들이 아니다. 추가로, 다수의 2차원 메모리 어레이들 또는 3차원 메모리 어레이들(모놀리식 또는 비모놀리식)이 별개의 칩들 상에 형성되고, 이어서 함께 패키징되어 적층형 칩 메모리 디바이스를 형성할 수 있다.
도 2는 도 1의 메모리 어레이(126)의 예시적인 2차원 구성의 메모리 셀들의 블록들(200, 210)을 예시한다. 메모리 어레이(126)는 많은 그러한 블록들(200, 210)을 포함할 수 있다. 각각의 예시적인 블록(200, 210)은 다수의 NAND 스트링들 및 개개의 비트 라인들, 예를 들어, BL0, BL1을 포함하며, 이들은 블록들 사이에서 공유된다. 각각의 NAND 스트링은 일 단부에서 드레인 측 선택 게이트(SGD)에 연결되고, 드레인 선택 게이트들의 제어 게이트들은 공통 SGD 라인을 통해 연결된다. NAND 스트링들은 그들의 다른 단부에서 소스 측 선택 게이트(SGS)에 연결되는데, 이는 이어서 공통 소스 라인(220)에 연결된다. 112개의 워드 라인들, 예를 들어, WL0 내지 WL111이 SGS들과 SGD들 사이에서 연장된다. 일부 실시예들에서, 메모리 블록은 112개보다 더 많거나 더 적은 워드 라인들을 포함할 수 있다. 예를 들어, 일부 실시예들에서, 메모리 블록은 164개의 워드 라인들을 포함한다. 일부 경우들에서, 어떠한 사용자 데이터도 포함하지 않는 더미 워드 라인들이 또한 선택 게이트 트랜지스터들에 인접한 메모리 어레이에 사용될 수 있다. 그러한 더미 워드 라인들은 소정의 에지 효과들로부터 에지 데이터 워드 라인을 차폐할 수 있다.
메모리 어레이에 제공될 수 있는 비휘발성 메모리의 일 유형은 플로팅 게이트 메모리, 예컨대 도 3a 및 도 3b에 도시된 유형의 플로팅 게이트 메모리이다. 그러나, 다른 유형들의 비휘발성 메모리들이 또한 사용될 수 있다. 아래에서 더 상세히 논의되는 바와 같이, 도 4a 및 도 4b에 도시된 다른 예에서, 전하 트래핑 메모리 셀이 비휘발성 방식으로 전하를 저장하기 위해 전도성 플로팅 게이트 대신에 비전도성 유전체 재료를 사용한다. 실리콘 산화물, 실리콘 질화물 및 실리콘 산화물("ONO")로 형성된 삼중 층 유전체가 전도성 제어 게이트와, 메모리 셀 채널 위의 반전도성 기판의 표면 사이에 개재된다. 셀은 셀 채널로부터 질화물 내로 전자들을 주입함으로써 프로그래밍되고, 여기서 그들은 제한된 구역에 트래핑되고 저장된다. 이어서, 이러한 저장된 전하는 검출가능한 방식으로 셀의 채널의 일부의 임계 전압을 변화시킨다. 셀은 질화물 내로 고온 홀(hot hole)들을 주입함으로써 소거된다. 유사한 셀이 분할-게이트 구성으로 제공될 수 있으며, 여기서 도핑된 폴리실리콘 게이트는 별개의 선택 트랜지스터를 형성하기 위해 메모리 셀 채널의 일부 위로 연장된다.
다른 접근법에서, NROM 셀들이 사용된다. 예를 들어, 2개의 비트들이 각각의 NROM 셀에 저장되고, 여기서 ONO 유전체 층은 소스 확산부와 드레인 확산부 사이의 채널에 걸쳐 연장된다. 하나의 데이터 비트에 대한 전하는 드레인에 인접한 유전체 층에 국부화되고, 다른 데이터 비트에 대한 전하는 소스에 인접한 유전체 층에 국부화된다. 유전체 내의 공간적으로 분리된 전하 저장 구역들의 이진 상태들을 개별적으로 판독함으로써 다중-상태 데이터 저장이 획득된다. 다른 유형들의 비휘발성 메모리들이 또한 알려져 있다.
도 3a는 NAND 스트링들에서의 예시적인 플로팅 게이트 메모리 셀들(300, 310, 320)의 단면도를 예시한다. 이러한 도면에서, 비트 라인 또는 NAND 스트링 방향은 페이지로 들어가고, 워드 라인 방향은 좌측으로부터 우측으로 간다. 일 예로서, 워드 라인(324)은 개개의 채널 구역들(306, 316, 326)을 포함하는 NAND 스트링들에 걸쳐 연장된다. 메모리 셀(300)은 제어 게이트(302), 플로팅 게이트(304), 터널 산화물 층(305) 및 채널 구역(306)을 포함한다. 메모리 셀(310)은 제어 게이트(312), 플로팅 게이트(314), 터널 산화물 층(315) 및 채널 구역(316)을 포함한다. 메모리 셀(320)은 제어 게이트(322), 플로팅 게이트(321), 터널 산화물 층(325) 및 채널 구역(326)을 포함한다. 각각의 메모리 셀(300, 310, 320)은 상이한 개개의 NAND 스트링에 있다. 인터폴리 유전체(inter-poly dielectric, IPD) 층(328)이 또한 예시되어 있다. 제어 게이트들(302, 312, 322)은 워드 라인의 일부들이다. 콘택 라인 커넥터(329)를 따른 단면도가 도 3b에서 제공된다.
제어 게이트(302, 312, 322)는 플로팅 게이트(304, 314, 321) 주위를 감싸서, 제어 게이트(302, 312, 322)와 플로팅 게이트(304, 314, 321) 사이의 표면 콘택 영역을 증가시킨다. 이것은 더 높은 IPD 커패시턴스를 초래하여, 더 높은 커플링 비(coupling ratio)로 이어지며, 이는 프로그래밍 및 소거를 더 용이하게 한다. 그러나, NAND 메모리 디바이스들이 축소됨에 따라, 이웃한 셀들(300, 310, 320) 사이의 간격이 더 작아지므로, 2개의 인접한 플로팅 게이트들(302, 312, 322) 사이에 제어 게이트(302, 312, 322) 및 IPD 층(328)에 대한 공간이 거의 없다.
대안으로서, 도 4a 및 도 4b에 도시된 바와 같이, 제어 게이트(402, 412, 422)가 평탄하거나 평면형인 평탄한 또는 평면형 메모리 셀(400, 410, 420)이 개발되었고; 즉, 제어 게이트가 플로팅 게이트 주위를 감싸지 않고, 그것의 전하 저장 층(428)과의 콘택만이 플로팅 게이트 위에 있다. 이러한 경우, 높은 플로팅 게이트를 갖는다는 점에서 장점이 없다. 대신에, 플로팅 게이트는 훨씬 더 얇게 제조된다. 추가로, 플로팅 게이트는 전하를 저장하는 데 사용될 수 있거나, 또는 얇은 전하 트랩 층이 전하를 트래핑하는 데 사용될 수 있다. 이러한 접근법은 탄도 전자 트랜스포트(ballistic electron transport)의 문제를 회피할 수 있고, 여기서 전자는 프로그래밍 동안 터널 산화물을 통해 터널링한 후에 플로팅 게이트를 통해 이동할 수 있다.
도 4a는 NAND 스트링들에서의 예시적인 전하 트래핑 메모리 셀들(400, 410, 420)의 단면도를 도시한다. 그 도면은, 도 1의 메모리 셀 어레이(126) 내의 메모리 셀들(400, 410, 420)의 2차원 예로서 평탄한 제어 게이트 및 전하 트래핑 구역들을 포함하는 메모리 셀들(400, 410, 420)의 워드 라인 방향으로 이루어진다 전하 트래핑 메모리는 NOR 및 NAND 플래시 메모리 디바이스에서 사용될 수 있다. 이러한 기술은, 전자들을 저장하기 위해 도핑된 다결정질 실리콘과 같은 전도체를 사용하는 플로팅 게이트 MOSFET 기술과는 대조적으로, 전자들을 저장하기 위해 SiN 필름과 같은 절연체를 사용한다. 일 예로서, 워드 라인(424)은 개개의 채널 구역들(406, 416, 426)을 포함하는 NAND 스트링들에 걸쳐 연장된다. 워드 라인의 부분들은 제어 게이트들(402, 412, 422)을 제공한다. 워드 라인 아래에는 IPD 층(428), 전하 트래핑 층들(404, 414, 421), 폴리실리콘 층들(405, 415, 425), 및 터널링 층들(409, 407, 408)이 있다. 각각의 전하 트래핑 층(404, 414, 421)은 개개의 NAND 스트링에서 연속적으로 연장된다. 제어 게이트의 평탄한 구성은 플로팅 게이트보다 더 얇게 만들어질 수 있다. 부가적으로, 메모리 셀들은 서로 더 가까이 배치될 수 있다.
도 4b는 콘택 라인 커넥터(429)를 따른 도 4a의 구조물의 단면도를 예시한다. NAND 스트링(430)은 SGS 트랜지스터(431), 예시적인 메모리 셀들(400, 433, . 435), 및 SGD 트랜지스터(436)를 포함한다. SGS 및 SGD 트랜지스터들(431, 436)에서 IPD 층(428) 내의 통로들은 제어 게이트 층들(402) 및 플로팅 게이트 층들이 통신하게 허용한다. 제어 게이트(402) 및 플로팅 게이트 층들은 폴리실리콘일 수 있고, 터널 산화물 층은, 예를 들어 실리콘 산화물일 수 있다. IPD 층(428)은 질화물들(N) 및 산화물들(O)의 스택, 예컨대 N―O―N―O―N 구성일 수 있다.
NAND 스트링은 p형 기판 구역(455), n형 웰(well)(456) 및 p형 웰(457)을 포함하는 기판 상에 형성될 수 있다. N형 소스/드레인 확산 구역들(sd1, sd2, sd3, sd4, sd5, sd6, sd7)이 p형 웰 내에 형성된다. 채널 전압(Vch)이 기판의 채널 구역에 직접 인가될 수 있다.
도 5는 도 1의 감지 블록(SB1)의 예시적인 블록도를 예시한다. 하나의 접근법에서, 감지 블록은 다수의 감지 회로들을 포함한다. 각각의 감지 회로는 데이터 래치들과 연관된다. 예를 들어, 예시적인 감지 회로들(550a, 551a, 552a, 553a)은 데이터 래치들(550b, 551b, 552b, 553b)과 각각 연관된다. 하나의 접근법에서, 비트 라인들의 상이한 서브세트들이 상이한 개개의 감지 블록들을 사용하여 감지될 수 있다. 이것은 감지 회로들과 연관되는 프로세싱 부하가 각각의 감지 블록 내의 개개의 프로세서에 의해 분할되고 핸들링되게 허용한다. 예를 들어, SB1 내의 감지 회로 제어기(560)는 감지 회로들 및 래치들의 세트와 통신할 수 있다. 감지 회로 제어기(560)는 사전충전 전압을 설정하기 위해 전압을 각각의 감지 회로에 제공하는 사전충전 회로(561)를 포함할 수 있다. 하나의 가능한 접근법에서, 전압은, 예를 들어, 데이터 버스 및 로컬 버스를 통해, 각각의 감지 회로에 독립적으로 제공된다. 다른 가능한 접근법에서, 공통 전압이 각각의 감지 회로에 동시에 제공된다. 감지 회로 제어기(560)는 또한 사전충전 회로(561), 메모리(562) 및 프로세서(563)를 포함할 수 있다. 메모리(562)는 본 명세서에 설명된 기능들을 수행하기 위해 프로세서에 의해 실행가능한 코드를 저장할 수 있다. 이들 기능들은 감지 회로들(550a, 551a, 552a, 553a)과 연관되는 래치들(550b, 551b, 552b, 553b)을 판독하는 것, 래치들 내의 비트 값들을 설정하는 것, 및 감지 회로들(550a, 551a, 552a, 553a)의 감지 노드들에서 사전충전 레벨들을 설정하기 위한 전압들을 제공하는 것을 포함할 수 있다. 감지 회로 제어기(560) 및 감지 회로들(550a, 551a, 552a, 553a)의 추가적인 예시적인 세부사항들이 아래에서 제공된다.
일부 실시예들에서, 메모리 셀은 플래그 비트들을 저장하는 래치들의 세트를 포함하는 플래그 레지스터를 포함할 수 있다. 일부 실시예들에서, 플래그 레지스터들의 양은 데이터 상태들의 양에 대응할 수 있다. 일부 실시예들에서, 메모리 셀들을 검증할 때 사용되는 검증 기법의 유형을 제어하기 위해 하나 이상의 플래그 레지스터들이 사용될 수 있다. 일부 실시예들에서, 플래그 비트의 출력이 디바이스의 연관된 로직, 예를 들어 어드레스 디코딩 회로부를 수정하여, 셀들의 특정된 블록이 선택되게 할 수 있다. 벌크 동작(예를 들어, 소거 동작 등)은 플래그 레지스터에 설정된 플래그들, 또는 암시된 어드레싱에서와 같이 어드레스 레지스터와 플래그 레지스터의 조합을 사용하여, 또는 대안적으로 어드레스 레지스터만으로 직접 어드레싱함으로써 수행될 수 있다.
도 6a는 도 1의 메모리 어레이(126)의 예시적인 3차원 구성에서의 블록들(600)의 세트의 사시도이다. 기판 상에는, 메모리 셀들(저장 요소들)의 예시적인 블록들(BLK0, BLK1, BLK2, BLK3), 및 블록들(BLK0, BLK1, BLK2, BLK3)에 의한 사용을 위한 회로부를 갖는 주변 영역(604)이 있다. 예를 들어, 회로부는 블록들(BLK0, BLK1, BLK2, BLK3)의 제어 게이트 층들에 연결될 수 있는 전압 드라이버들(605)을 포함할 수 있다. 하나의 접근법에서, 블록들(BLK0, BLK1, BLK2, BLK3) 내의 공통 높이에 있는 제어 게이트 층들이 공통적으로 구동된다. 기판(601)은 또한, 회로부의 신호들을 반송하기 위한 전도성 경로들로 패턴화되는 하나 이상의 하부 금속 층들과 함께 블록들(BLK0, BLK1, BLK2, BLK3) 아래의 회로부를 지지할 수 있다. 블록들(BLK0, BLK1, BLK2, BLK3)은 메모리 디바이스의 중간 구역(602)에 형성된다. 메모리 디바이스의 상부 구역(603)에서, 하나 이상의 상부 금속 층들은 회로부의 신호들을 반송하기 위한 전도성 경로들로 패턴화된다. 각각의 블록(BLK0, BLK1, BLK2, BLK3)은 메모리 셀들의 적층된 영역을 포함하며, 여기서 스택의 교번하는 레벨들은 워드 라인들을 표현한다. 하나의 가능한 접근법에서, 각각의 블록(BLK0, BLK1, BLK2, BLK3)은 대향하는 층형(tiered) 측면들을 가지며, 이로부터 수직 콘택들이 상부 금속 층으로 상방으로 연장되어 전도성 경로들에 대한 연결부들을 형성한다. 4개의 블록들(BLK0, BLK1, BLK2, BLK3)이 일 예로서 예시되어 있지만, 2개 이상의 블록들이 사용되어, x-방향 및/또는 y-방향으로 연장될 수 있다.
하나의 가능한 접근법에서, x-방향에서의 평면의 길이는 워드 라인들로의 신호 경로들이 하나 이상의 상부 금속 층들로 연장되는 방향(워드 라인 또는 SGD 라인 방향)을 표현하고, y-방향에서의 평면의 폭은 비트 라인들로의 신호 경로들이 하나 이상의 상부 금속 층들로 연장되는 방향(비트 라인 방향)을 표현한다. z-방향은 메모리 디바이스의 높이를 표현한다.
도 6b는 도 6a의 블록들(BLK0, BLK1, BLK2, BLK3) 중 하나의 블록의 일부의 예시적인 단면도를 예시한다. 블록은 교번하는 전도성 층들 및 유전체 층들의 스택(610)을 포함한다. 이러한 예에서, 전도성 층들은 데이터 워드 라인 층들(워드 라인들)(WL0-WL111)에 부가하여, 2개의 SGD 층들, 2개의 SGS 층들 및 4개의 더미 워드 라인 층들(DWLD0, DWLD1, DWLS0, DWLS1)을 포함한다. 유전체 층들은 DL0 내지 DL116으로 라벨링된다. 추가로, NAND 스트링들(NS1, NS2)을 포함하는 스택(610)의 구역들이 예시되어 있다. 각각의 NAND 스트링은 메모리 홀(618, 619)을 포함하고, 이는 워드 라인들에 인접한 메모리 셀들을 형성하는 재료들로 충전된다. 스택(610)의 구역(622)은 도 6d에 더 상세히 도시되어 있으며 아래에서 더 상세히 논의된다.
스택(610)은 기판(611), 기판(611) 상의 절연 필름(612), 및 소스 라인(SL)의 일부를 포함한다. NS1은 스택(610)의 하단(614)에 소스 단부(613)를, 그리고 스택의 상단(616)에 드레인 단부(615)를 갖는다. 콘택 라인 커넥터들(예를 들어, 금속 충전 슬릿들과 같은 슬릿들)(617, 620)이 스택(610)에 걸쳐 상호연결부들로서 주기적으로 제공될 수 있으며, 이들은 스택(610)을 관통하여 연장되어, 예컨대 소스 라인을 스택(610) 위의 특정 콘택 라인에 연결시킨다. 콘택 라인 커넥터들(617, 620)은 워드 라인들의 형성 동안 사용될 수 있고, 후속하여 금속으로 충전될 수 있다. 비트 라인(BL0)의 일부가 또한 예시되어 있다. 전도성 비아(621)가 드레인 단부(615)를 BL0에 연결시킨다.
도 6c는 도 6b의 스택에서의 메모리 홀 직경의 플롯을 예시한다. 수직 축은 도 6b의 스택과 정렬되고, 메모리 홀들(618, 619)의 폭(wMH), 예를 들어 직경을 예시한다. 도 6a의 워드 라인 층들(WL0 내지 WL111)은 일 예로서 반복되고, 스택 내의 개개의 높이들(z0 내지 z111)에 있다. 그러한 메모리 디바이스에서, 스택을 통해 에칭되는 메모리 홀들은 매우 높은 종횡비를 갖는다. 예를 들어, 약 25 내지 30의 깊이 대 직경 비가 통상적이다. 메모리 홀들은 원형 단면을 가질 수 있다. 에칭 프로세스로 인해, 메모리 홀의 폭은 홀의 길이를 따라 변할 수 있다. 전형적으로, 직경은 메모리 홀의 상단으로부터 하단까지 점진적으로 더 작아진다. 즉, 메모리 홀들은 테이퍼링되어, 스택의 하단에서 좁아진다. 일부 경우들에서, 약간 좁아지는 것이 선택 게이트 근처의 홀의 상단에서 발생하여, 직경이 메모리 홀의 상단으로부터 하단으로 점진적으로 더 작아지기 전에 약간 더 넓어지게 한다.
메모리 홀의 폭에서의 불균일성으로 인해, 메모리 셀들의 프로그램 경사를 포함하는 프로그래밍 속도 및 소거 속도는 메모리 홀을 따른 그들의 포지션에 기초하여, 예를 들어 스택 내의 그들의 높이에 기초하여 변할 수 있다. 더 작은 직경의 메모리 홀에 의해, 터널링 산화물에 걸친 전기장은 상대적으로 더 강해져서, 프로그래밍 및 소거 속도가 상대적으로 더 높아지게 한다. 하나의 접근법은, 메모리 홀 직경이 유사한, 예를 들어, 정의된 직경 범위 내에 있는 인접한 워드 라인들의 그룹들을 정의하고, 그룹 내의 각각의 워드 라인에 대해 최적화된 검증 스킴을 적용하는 것이다. 상이한 그룹들은 상이한 최적화된 검증 스킴들을 가질 수 있다.
도 6d는 도 6b의 스택(610)의 구역(622)의 확대도를 예시한다. 메모리 셀들은 워드 라인 층과 메모리 홀의 교점에 스택의 상이한 레벨들에서 형성된다. 이러한 예에서, SGD 트랜지스터들(680, 681)이 더미 메모리 셀들(682, 683) 및 데이터 메모리 셀(MC) 위에 제공된다. 다수의 층들이, 예를 들어 원자층 증착을 사용하여, 메모리 홀(630)의 측벽(SW)을 따라 그리고/또는 각각의 워드 라인 층 내에 증착될 수 있다. 예를 들어, 각각의 열(예를 들어, 재료들에 의해 메모리 홀(630) 내에 형성되는 필러(pillar))은 SiN 또는 다른 질화물과 같은 전하 트래핑 층 또는 필름(663), 터널링 층(664), 폴리실리콘 바디 또는 채널(665), 및 유전체 코어(666)를 포함할 수 있다. 워드 라인 층은 차단 산화물(blocking oxide)/블록 하이-k 재료(660), 금속 배리어(barrier)(661), 및 제어 게이트로서 텅스텐과 같은 전도성 금속(662)을 포함할 수 있다. 예를 들어, 제어 게이트들(690, 691, 692, 693, 694)이 제공된다. 이러한 예에서, 금속을 제외한 층들 모두가 메모리 홀(630)에 제공된다. 다른 접근법들에서, 층들 중 일부는 제어 게이트 층 내에 있을 수 있다. 부가적인 필러들이 상이한 메모리 홀들에 유사하게 형성된다. 필러는 NAND 스트링의 열 활성 영역(active area, AA)을 형성할 수 있다.
메모리 셀이 프로그래밍될 때, 전자들은 메모리 셀과 연관되는 전하 트래핑 층의 일부에 저장된다. 이들 전자들은 채널로부터 전하 트래핑 층 내로 그리고 터널링 층을 통해 인출된다. 메모리 셀의 Vth는 저장된 전하의 양에 비례하여 증가된다. 소거 동작 동안, 전자들이 채널로 복귀한다.
메모리 홀들(630) 각각은 차단 산화물 층, 전하 트래핑 층(663), 터널링 층(664) 및 채널 층을 포함하는 복수의 환형(annular) 층들로 충전될 수 있다. 메모리 홀들(630) 각각의 코어 구역은 바디 재료로 충전되고, 복수의 환형 층들은 메모리 홀들(630) 각각에서 코어 구역과 워드 라인 사이에 있다.
NAND 스트링은 일정 길이의 채널이 기판 상에 형성되지 않기 때문에 플로팅 바디 채널을 갖는 것으로 간주될 수 있다. 추가로, NAND 스트링은 복수의 워드 라인 층들에 의해 스택에서 서로의 위에 제공되고, 유전체 층들에 의해 서로로부터 분리된다.
도 7a는 도 6b의 스택(610)의 예시적인 워드 라인 층(WL0)의 평면도를 예시한다. 언급된 바와 같이, 3차원 메모리 디바이스는 교번하는 전도성 층 및 유전체 층들의 스택을 포함할 수 있다. 전도성 층들은 SG 트랜지스터들 및 메모리 셀들의 제어 게이트들을 제공한다. SG 트랜지스터들에 사용되는 층들은 SG 층들이고 메모리 셀들에 사용되는 층들은 워드 라인 층들이다. 추가로, 메모리 홀들은 스택 내에 형성되고, 전하 트래핑 재료 및 채널 재료로 충전된다. 그 결과, 수직 NAND 스트링이 형성된다. 소스 라인들은 스택 아래의 NAND 스트링들에 연결되고, 비트 라인들은 스택 위의 NAND 스트링들에 연결된다.
3차원 메모리 디바이스 내의 블록(BLK)은 서브 블록들로 분할될 수 있으며, 여기서 각각의 서브 블록은 공통 SGD 제어 라인을 갖는 NAND 스트링 그룹을 포함한다. 예를 들어, 서브 블록들(SBa, SBb, SBc, SBd) 내의 SGD 라인들/제어 게이트들(SGD0, SGD1, SGD2, SGD3)을 각각 참조한다. 추가로, 블록 내의 워드 라인 층은 구역들로 분할될 수 있다. 각각의 구역은 개개의 서브 블록 내에 있고, 메모리 디바이스의 제조 프로세스 동안 워드 라인 층들을 프로세싱하기 위해 스택 내에 주기적으로 형성되는 콘택 라인 커넥터들(예를 들어, 슬릿들) 사이에서 연장될 수 있다. 이러한 프로세싱은 워드 라인 층들의 희생 재료를 금속으로 대체하는 것을 포함할 수 있다. 일반적으로, 콘택 라인 커넥터들 사이의 거리는, 희생 재료를 제거하기 위해 에천트가 측방향으로 이동할 수 있는, 그리고 금속이 희생 재료의 제거에 의해 생성되는 공극을 충전하기 위해 이동할 수 있는 거리의 한계를 고려하도록 비교적 작아야 한다. 예를 들어, 콘택 라인 커넥터들 사이의 거리는 인접한 콘택 라인 커넥터들 사이에 메모리 홀들의 수 개의 행들을 허용할 수 있다. 메모리 홀들 및 콘택 라인 커넥터들의 레이아웃은 또한, 각각의 비트 라인이 상이한 메모리 셀에 연결되는 동안 구역을 가로질러 연장될 수 있는 비트 라인들의 수의 한계를 고려해야 한다. 워드 라인 층들을 프로세싱한 이후, 콘택 라인 커넥터들은 선택적으로 스택을 통해 상호연결부를 제공하기 위해 금속으로 충전될 수 있다.
이러한 예에서, 인접한 콘택 라인 커넥터들 사이에 메모리 홀들의 4개의 행들이 존재한다. 여기서, 행은 x-방향으로 정렬되는 메모리 홀들의 그룹이다. 게다가, 메모리 홀들의 행들은 메모리 홀들의 밀도를 증가시키기 위해 스태거링된 패턴으로 이루어진다. 워드 라인 층 또는 워드 라인은 구역들(WL0a, WL0b, WL0c, WL0d)로 분할되고, 이들 각각은 콘택 라인(713)에 의해 연결된다. 일 접근법에서, 블록 내의 워드 라인 층의 최종 구역은 다음 블록 내의 워드 라인 층의 제1 구역에 연결될 수 있다. 이어서, 콘택 라인(713)이 워드 라인 층에 대한 전압 드라이버에 연결된다. 구역(WL0a)은 콘택 라인(712)을 따르는 예시적인 메모리 홀들(710, 711)을 갖는다. 구역(WL0b)은 예시적인 메모리 홀들(714, 715)을 갖는다. 구역(WL0c)은 예시적인 메모리 홀들(716, 717)을 갖는다. 구역(WL0d)은 예시적인 메모리 홀들(718, 719)을 갖는다. 메모리 홀들이 또한 도 7b에 도시되어 있다. 각각의 메모리 홀은 개개의 NAND 스트링의 일부일 수 있다. 예를 들어, 메모리 홀들(710, 714, 716, 718)은 각각 NAND 스트링들(NS0_SBa, NS1_SBb, NS2_SBc, NS3_SBd, NS4_SBe)의 일부일 수 있다.
각각의 원은 워드 라인 층 또는 SG 층에서의 메모리 홀의 단면을 표현한다. 파선들로 도시된 예시적인 원들은 메모리 홀 내의 재료들에 의해 그리고 인접한 워드 라인 층에 의해 제공되는 메모리 셀들을 표현한다. 예를 들어, 메모리 셀들(720, 721)은 WL0a 내에 있고, 메모리 셀들(724, 725)은 WL0b 내에 있고, 메모리 셀들(726, 727)은 WL0c 내에 있고, 메모리 셀들(728, 729)은 WL0d 내에 있다. 이들 메모리 셀들은 스택에서 공통 높이에 있다.
콘택 라인 커넥터들(예를 들어, 금속 충전 슬릿들과 같은 슬릿들)(701, 702, 703, 704)은 구역들(WL0a 내지 WL0d)의 에지들 사이에 그리고 그들에 인접하게 위치될 수 있다. 콘택 라인 커넥터들(701, 702, 703, 704)은 스택의 하단으로부터 스택의 상단까지 전도성 경로를 제공한다. 예를 들어, 스택의 하단에서의 소스 라인은 스택 위의 전도성 라인에 연결될 수 있고, 여기서 전도성 라인은 메모리 디바이스의 주변 구역 내의 전압 드라이버에 연결된다.
도 7b는 도 6b의 스택의 예시적인 상단 유전체 층(DL116)의 평면도를 예시한다. 유전체 층은 구역들(DL116a, DL116b, DL116c, DL116d)로 분할된다. 각각의 구역은 개개의 전압 드라이버에 연결될 수 있다. 이것은 워드 라인 층의 하나의 구역 내의 한 세트의 메모리 셀들이 동시에 프로그래밍되게 허용하며, 이때 각각의 메모리 셀은 개개의 비트 라인에 연결되는 개개의 NAND 스트링 내에 있다. 각각의 프로그램 전압 동안 프로그래밍을 허용하도록 또는 금지하도록 전압이 각각의 비트 라인 상에 설정될 수 있다.
구역(DL116a)은 비트 라인(BL0)과 일치하는 콘택 라인(712)을 따라 예시적인 메모리 홀들(710, 711)을 갖는다. 다수의 비트 라인들이 메모리 홀들 위로 연장되고, "X" 심볼들에 의해 표시된 바와 같이 메모리 홀들에 연결된다. BL0은 메모리 홀들(711, 715, 717, 719)을 포함하는 한 세트의 메모리 홀들에 연결된다. 다른 예시적인 비트 라인(BL1)은 메모리 홀들(710, 714, 716, 718)을 포함하는 한 세트의 메모리 홀들에 연결된다. 도 7a로부터의 콘택 라인 커넥터들(예를 들어, 금속 충전 슬릿들과 같은 슬릿들)(701, 702, 703, 704)은 또한, 그들이 스택을 통해 수직으로 연장되는 것으로 예시되어 있다. 비트 라인들은 x-방향으로 DL116 층을 가로지르는 시퀀스(BL0 내지 BL23)로 번호가 매겨질 수 있다.
비트 라인들의 상이한 서브세트들이 상이한 행들 내의 메모리 셀들에 연결된다. 예를 들어, BL0, BL4, BL8, BL12, BL16, BL20은 각각의 구역의 우측 에지에서 셀들의 제1 행 내의 메모리 셀들에 연결된다. BL2, BL6, BL10, BL14, BL18, BL22는 우측 에지에서 제1 행에 인접한, 셀들의 인접한 행 내의 메모리 셀들에 연결된다. BL3, BL7, BL11, BL15, BL19, BL23은 각각의 구역의 좌측 에지에서 셀들의 제1 행 내의 메모리 셀들에 연결된다. BL1, BL5, BL9, BL13, BL17, BL21은 좌측 에지에서 제1 행에 인접한, 메모리 셀들의 인접한 로우 내의 메모리 셀들에 연결된다.
메모리 블록들의 메모리 셀들은 다수의 데이터 상태들로 하나 이상의 비트들의 데이터를 저장하도록 프로그래밍될 수 있으며, 이들 각각은 개개의 임계 전압(Vt)과 연관된다. 예를 들어, 도 8은 메모리 셀당 하나의 비트(SLC) 저장 스킴에 따라 프로그래밍된 메모리 셀들의 그룹의 임계 전압(Vt) 분포를 도시한다. SLC 저장 스킴에서, 소거 상태(Er) 및 단일 프로그래밍된 데이터 상태(S1)를 포함하는 총 2개의 데이터 상태들이 존재한다. 도 9는 총 8개의 데이터 상태들, 즉 소거 상태(Er) 및 7개의 프로그래밍된 데이터 상태들(S1, S2, S3, S4, S5, S6, S7)을 포함하는 셀당 3개의 비트들(TLC) 저장 스킴의 임계 전압(Vt) 분포를 예시한다. 각각의 프로그래밍된 데이터 상태(S1 내지 S7)는 검증 전압(Vv1 내지 Vv7)과 연관되며, 이는 프로그래밍 동작의 검증 부분 동안 이용된다. 도 10은 총 16개의 데이터 상태들, 즉 소거 상태(Er) 및 15개의 프로그래밍된 데이터 상태들(S1 내지 S15)을 포함하는 셀당 4개의 비트들(QLC) 저장 스킴의 임계 전압(Vt) 분포를 도시한다. 4개의 데이터 상태들을 갖는 셀당 2개의 비트들(MLC) 또는 32개의 데이터 상태들을 갖는 셀당 5개의 비트들(PLC)과 같은 다른 저장 스킴들이 또한 이용가능하다.
일부 메모리 다이들에서, 메모리 블록들은 다수의 저장 스킴 모드들, 예를 들어 SLC 모드 및 TLC 모드 또는 SLC 모드 및 QLC 모드에서 동작하도록 구성될 수 있다. 이어서, 메모리 디바이스는 SLC 모드에서 동작하는 메모리 블록들에 데이터를 초기에 기입하도록 구성될 수 있으며, 이는 높은 성능을 제공한다. 이어서, 성능이 중요하지 않을 때 백그라운드 동작에서, 메모리 디바이스는 장기 저장을 위해 그 데이터를 메모리 셀당 다중 비트 포맷으로 프로그래밍할 수 있다.
메모리 셀당 다수의 비트들로 프로그래밍하는 것은 전형적으로 복수의 프로그램 루프들을 포함한다. 도 11은 선택된 워드 라인의 메모리 셀들을 메모리 셀당 더 많은 수의 비트들(예를 들어, TLC 또는 QLC)로 프로그래밍하기 위해 예시적인 메모리 셀 프로그래밍 동작 동안 선택된 워드 라인에 인가되는 전압들의 파형(1100)을 도시한다. 도시된 바와 같이, 각각의 프로그램 루프는 특정 프로그램 루프에서 어느 데이터 상태들이 프로그래밍되고 있는지에 의존하여, 프로그래밍 펄스(VPGM) 및 하나 이상의 검증 펄스들을 포함한다. 단순화를 위해 각각의 펄스에 대해 정사각형 파형이 도시되지만; 다중레벨 형상 또는 램핑된(ramped) 형상과 같은 다른 형상들이 가능하다.
증분적 스텝 펄스 프로그래밍(Incremental Step Pulse Programming, ISPP)이 이러한 예시적인 펄스 트레인(pulse train)에서 사용되며, 이는 VPGM 펄스 진폭이 각각의 연속적인 프로그램 루프에서 스텝 업되거나 증가된다는 것을 의미한다. 다시 말하면, 펄스 트레인은 진폭이 단계적으로 증가하는 VPGM 펄스들을 포함하며, 이때 각각의 프로그램 루프는 고정 스텝 크기(dVPGM)를 사용한다. 새로운 펄스 트레인은 초기 VPGM 펄스 레벨(VPGMU)로 시작되고, 최종 VPGM 펄스 레벨에서 종료되며, 이는 최대 허용 레벨을 초과하지 않는다. 펄스 트레인(1100)은 비휘발성 메모리 셀들의 세트를 포함하는 선택된 워드 라인에 인가되는 일련의 VPGM 펄스들(1101 내지 1115)을 포함한다. 하나 이상의 검증 전압 펄스들(1116 내지 1129)은, 프로그램 루프에서 검증되고 있는 타깃 데이터 상태들에 기초하여 일 예로서 각각의 VPGM 펄스 이후 제공된다. 검증 전압들은 전압들(Vv1 내지 VV7)(도 9에 도시됨)에 대응한다. 검증 전압들의 인가와 동시에, 감지 동작은, 메모리 셀을 통한 전류를 감지함으로써, 선택된 워드 라인 내의 특정 메모리 셀이 그의 의도된 데이터 상태와 연관된 검증 전압 초과의 임계 전압(Vt)을 갖는지 여부를 결정할 수 있다. 전류가 비교적 높으면, 이것은 메모리 셀이 전도성 상태에 있어서, 그의 임계 전압(Vt)이 검증 전압 미만이라는 것을 표시한다. 전류가 비교적 낮으면, 이것은 메모리 셀이 비전도성 상태에 있어서, 그의 임계 전압(Vt)이 검증 전압 초과라는 것을 표시한다. 메모리 셀이 검증을 통과하면, 그 메모리 셀의 프로그래밍이 완료되고, 그 메모리 셀의 추가적인 프로그래밍은 메모리 셀과 커플링된 비트 라인에 금지 전압을 인가함으로써 모든 나머지 프로그램 루프들에 대해 금지된다. 프로그래밍은, 모든 메모리 셀들이 그들의 의도된 데이터 상태들에 대한 검증을 통과할 때까지(이 경우, 프로그래밍이 통과될 때까지), 또는 미리 결정된 최대 수의 프로그램 루프들이 초과될 때까지(이 경우, 프로그래밍이 실패할 때까지) 진행된다. 워드 라인의 메모리 셀들은, 서로 독립적으로 프로그래밍될 수 있는 일련의 스트링 그룹들 또는 간단히 스트링들로 분할될 수 있고, 프로그래밍은 메모리 블록 내의 다음 워드 라인으로 진행되기 전에 워드 라인을 가로질러 하나의 스트링으로부터 다른 스트링으로 시작될 수 있다.
일부 프로그래밍 동작들에서, "스마트 검증 동작"은, 그 메모리 블록 내의 워드 라인들에 대한 최적의 시작 프로그래밍 전압을 획득하기 위해 프로그래밍 동작의 프로그램 루프들의 제1 커플 동안 수행된다. 도 12 및 도 13을 참조하면, 스마트 검증 동작 동안, 선택된 워드 라인의 일부(예를 들어, 하나의 스트링)만이 프로그래밍을 위해 선택된다. 제1 프로그램 루프에서, 비교적 낮은 VPGMU_SV 프로그래밍 펄스가 워드 라인의 선택된 부분에 인가되고, 이어서, 검증 레벨(Vver1)을 통과한 메모리 셀들의 수가 메모리 셀들의 타깃 수보다 큰지를 결정하기 위해 검증 동작이 수행된다. 도 13의 예에서, 제1 프로그램 루프 이후, 어떠한 메모리 셀들도 검증 레벨(Vver1)보다 큰 임계 전압들을 갖지 않는다. 검증 동작을 통과한 메모리 셀들의 수가 타깃보다 크지 않으면, 프로그래밍 전압은 스텝 업되고(VPGM = VPGM + dVPGM), 다른 프로그램 루프가 시작된다. 이는 검증을 통과한 메모리 셀들의 타깃 수가 검증 레벨(Vver1)을 초과하는 데 걸리는 시간만큼 많은 프로그램 루프들 동안 계속된다. 도 12 및 도 13의 예에서, 이는 3개의 프로그램 루프들을 취한다. 일단 검증 동작이 통과되면, VPGM 또는 VPGM 더하기 하나 이상의 증분 dVPGM이 SV_VPGM으로 설정되고, 칩의 NAND 레지스터에 저장된다. 동일한 메모리 블록 내의 다른 스트링들 및 워드 라인들이 후속하여 프로그래밍되면, 이러한 후속 프로그래밍 동작들의 제1 프로그램 루프 내의 초기 프로그래밍 전압(VPGMU)은 SV_VPGM으로 설정되며, 그에 의해, 메모리 셀들을 오버프로그래밍하지 않으면서 불필요한 프로그램 루프들을 스킵함으로써 성능을 개선시킨다.
도 12 및 도 13의 예에서, 스마트 검증 동작은 제3 스마트 검증 프로그램 루프 상에서 통과된다(도 13의 곡선의 음영 영역은 검증을 통과한 메모리 셀들을 식별함). 따라서, 후속 워드 라인들 및 스트링들에 대한 SV_VPGM은 VPGMU_SV 더하기 dVPGM의 3배로 설정되고, 즉 SV_VPGM = VPGMU_SV + 3*dVPGM이다. 동일한 칩 내의 다른 메모리 블록들에서 또는 상이한 칩들에서, 스마트 검증을 통과하기 위한 프로그램 루프들의 수는 3개 미만이거나, 그와 동일하거나, 또는 그 초과일 수 있으며, 즉 최적의 SV_VPGM은 각각의 메모리 블록에 고유하고, 심지어 동일한 메모리 블록 내의 각각의 워드 라인에 고유할 수 있다.
많은 칩들에서, SV_VPGM을 저장하는 NAND 레지스터는 칩당 하나의 바이트의 데이터만을 포함하며, 이는 한 번에 하나의 SV_VPGM만을 저장하기에 충분한 데이터이다. 다른 칩들에서, NAND 레지스터는 하나 초과의 바이트(예를 들어, 3 바이트 이하)를 포함할 수 있지만, NAND 레지스터 내의 바이트들의 수는 칩에 존재하는 메모리 블록들보다 훨씬 더 적다. 데이터 바이트에서, 상이한 비트 조합들은 도 14에서 발견되는 것들과 같은 상이한 SV_VPGM 전압들과 연관될 수 있다. 최적의 초기 프로그래밍 전압(VPGM)이 칩을 가로질러 메모리 블록마다 변하고, 칩의 레지스터가 단지 1 바이트의 데이터, 또는 메모리 블록들에 존재하는 것보다 훨씬 더 적은 바이트들의 데이터(예를 들어, 3 바이트 이하)를 포함하므로, 이는 프로그래밍이 하나의 블록으로부터 다른 블록으로 스위칭할 때마다, 즉 블록 점프할 때마다 SV_VPGM을 재획득하는 것을 필요로 한다. 다시 말하면, 프로그래밍이 하나의 메모리 블록으로부터 다른 메모리 블록으로 점프할 때마다, 다음의 블록이 이미 부분적으로 프로그래밍되었고 SV_VPGM이 이전에 획득되었더라도, 그 메모리 블록의 고유 SV_VPGM 전압이 손실되고, NAND 레지스터에서 대체되며, 스마트 검증 동작이 수행되어야 하므로, SV_VPGM은 재획득되어 NAND 레지스터로 다시 기입될 수 있다. 이러한 재획득 프로세스는 메모리 칩의 시간 및 리소스들을 취하며, 그에 의해, 성능을 감소시킨다.
본 개시내용의 일 양태는, 일단 SV_VPGM이 메모리 블록에 대해 획득되면, 단지 레지스터에 기입되는 대신, SV_VPGM이 또한 그 메모리 블록의 예비 바이트에 직접 기입되는 프로그래밍 기법에 관한 것이다. 이로부터, SV_VPGM은 장기간 유지되고, 스마트 검증 동작을 다시 수행할 필요 없이 NAND 레지스터로 리턴될 수 있다. 따라서, 블록 점프의 경우, 프로그래밍되는 블록에 대한 SV_VPGM은 그 예비 바이트로부터 판독되며, 시간 소모적인 재획득 동작 없이 메모리 블록 내의 워드 라인들을 프로그래밍할 때 사용하기 위해 NAND 레지스터에 저장될 수 있다. 이는 프로그래밍 시간을 감소시킴으로써 메모리 디바이스의 성능을 개선시킨다. 일부 실시예들에서, SV_VPGM은 칩 내의 전체 메모리 블록에 대해 저장될 수 있어서, 스마트 검증 동작은 단지 각각의 메모리 블록에 대해 1회 발생해야 하고, 단지 메모리 블록에서 반복되어야 하며, 그 메모리 블록은 후속하여 소거된다. 또한 아래에서 더 상세히 논의되는 바와 같이, 일부 실시예들에서, SV_VPGM이 획득되어, 워드 라인별로 저장될 수 있으며, 이는 프로그래밍 성능 및 신뢰성을 추가로 개선시킨다. 다시 말하면, 메모리 블록 내의 모든 워드 라인들을 프로그래밍할 때 사용되는 단일 SV_VPGM보다는, 각각의 워드 라인(또는 소정 수의 워드 라인들)에는 워드 라인 자체 내의 장기간 저장을 위해 저장되는 그 자신의 고유하고 최적화된 SV_VPGM이 제공될 수 있다.
메모리 블록에서, 프로그래밍될 때, 각각의 워드 라인은 많은 양의 데이터를 포함한다. 도 15의 예시적인 실시예에서, 도시된 워드 라인은 총 데이터의 16 킬로바이트(16 kB)를 포함한다. 이러한 용량의 대부분은 사용자 데이터에 대해 예약되지만, 하나 이상의 예비 바이트들은 다양한 목적들, 예를 들어 결함있는 열들을 수리하는 데 사용될 수 있는 오류 정정 코드(ECC) 또는 열 리던던시를 위해 사용될 수 있다. 본 개시내용의 프로그래밍 기법들에 따르면, 각각의 워드 라인의 이러한 예비 바이트들 중 하나(이하, "스마트 검증 바이트"로 지칭됨)는 SV_VPGM을 저장하는 데 전용된다. 도 14에 도시된 것과 같은 테이블은 칩에 저장될 수 있으며, 이러한 스마트 검증 바이트에서의 상이한 비트 조합들을 상이한 SV_VPGM 전압들과 연관시킨다. 일부 실시예들에서, SV_VPGM은 메모리 블록의 하나의 워드 라인에 저장되고, 이어서 그 메모리 블록 내의 모든 후속 워드 라인들에 대해 사용될 수 있다. 다른 실시예들에서, SV_VPGM은 각각의 워드 라인의 예비 바이트에 저장된다.
이제 도 16을 참조하면, 예시적인 메모리 블록의 워드 라인들을 프로그래밍하는 단계들이 도시된다. 단계(1600)에서, 데이터 기입 커맨드가 수신된다. 일부 실시예들에서, 이는 블록 점프를 필요로 하는 데이터 기입 커맨드일 수 있다. 단계(1602)에서, 칩 내의 제어 회로부는 메모리 블록을 체크하여, 타깃 워드 라인에 대한 SV_VPGM이 NAND 레지스터에 저장되는지를 결정하고, 그렇지 않으면, SV_VPGM이 스마트 검증 바이트에 기입되었는지를 결정한다. 각각의 워드 라인이 고유한 SV_VPGM을 갖는 예시적인 실시예에서, 프로그래밍되고 있는 워드 라인(WLn)의 스트링이 String_0(워드 라인의 제1 스트링) 이외의 임의의 스트링이면, SV_VPGM은 WLn, String_0의 스마트 검증 바이트로 이미 프로그래밍되어야 한다. 다른 실시예들에서, SV_VPGM은 워드 라인들의 그룹 또는 전체 메모리 블록에 공통일 수 있다. 그 경우, 스마트 검증 바이트는 다른 워드 라인의 스마트 검증 바이트에서와 같이 다른 곳에 위치될 수 있다. 예를 들어, 일부 실시예들에서, SV_VPGM은 하나 걸러 하나의 워드 라인에 대해 획득되고, 2개, 3개, 또는 그 초과의 워드 라인들에 대해 사용될 수 있다. SV_VPGM 전압이 NAND 레지스터가 아니라 스마트 검증 바이트에 저장되면, 이러한 스테이지에서, SV_VPGM은 NAND 레지스터에 기입된다.
결정 단계(1604)에서, SV_VPGM이 메모리 블록 내의 스마트 검증 바이트로 프로그래밍되는지가 결정된다.
결정 단계(1604)에서의 답변이 "아니오"이면, 단계(1606)에서, 프로그래밍 전압(VPGM)은 비교적 낮은 전압 레벨에 있는 초기 스마트 검증 프로그래밍 전압(VPGMU_SV)으로 설정된다. 단계(1608)에서, 제1 스마트 검증 프로그램 루프가 시작되며, 이때 프로그래밍 펄스(VPGM)가 타깃 워드 라인에 인가되고, 검증 동작이 뒤따른다. 검증 동작은 스마트 검증 전압(Vver1)(도 17 참조)을 초과하는 임계 전압들을 갖는 메모리 셀들의 수를 카운팅하는 것 및 그 수를 타깃과 비교하는 것을 포함한다.
결정 단계(1610)에서, 검증 동작이 통과되는지, 즉, 검증 전압을 초과하는 임계 전압들을 갖는 메모리 셀들의 수가 타깃을 초과하는지?가 결정된다. 결정 단계(1610)에서의 답변이 "아니오"이면, 단계(1612)에서, VPGM은 증분적으로 증가되고, 즉 VPGM = VPGM + dVPGM이다. 이어서, 방법은 다른 스마트 검증 프로그램 루프를 시작하기 위해 단계(1608)로 복귀한다. 방법은 검증 동작이 통과될 때까지 "N"개의 프로그램 루프들에 대해 단계들(1608 내지 1612)의 루프를 통해 진행한다. 도 17에 도시된 예에서, 검증 동작은 처음 4개의 스마트 검증 프로그램 루프들에서 실패하고, 제5 스마트 검증 프로그램 루프 상에서 통과된다. 그러나, 검증 동작을 통과할 스마트 검증 프로그램 루프들의 수는 블록마다 그리고 때때로 워드 라인마다 변할 것이다. 결정 단계(1610)에서의 답변이 "예"이면, 단계(1614)에서, VPGM은 SV_VPGM으로 설정되고, NAND 레지스터에 로딩된다.
단계(1616)에서, 사용자 데이터는 ISPP 프로그래밍 기법을 사용하여 하나 이상의 프로그래밍 루프들에서 타깃 워드 라인의 메모리 셀들 내로 프로그래밍된다. 타깃 워드 라인의 메모리 셀들은 임의의 적합한 프로그래밍 스킴, 예컨대 MLC, TLC, 또는 QLC로 프로그래밍될 수 있다. 단계(1616) 동안, 프로그램 루프 N+m에서, 타깃 워드 라인의 스마트 검증 바이트는 SV_VPGM 전압과 연관된 데이터를 포함하도록 프로그래밍된다.
예시적인 실시예에서, 사용자 데이터를 포함하는 메모리 셀들이 메모리 셀당 더 높은 수의 비트들로 프로그래밍되고 각각의 프로그램 루프에서 검증 동작을 이용하여 프로그래밍되더라도, 스마트 검증 바이트의 메모리 셀들은 검증 없이 단일 프로그램 루프(루프 N+m)에서 SLC로 프로그래밍될 수 있다. 예를 들어, 소거될 때, 스마트 검증 바이트가 "1, 1, 1, 1, 1, 1, 1, 1"을 판독하고, SV_VPGM 전압과 연관된 데이터가 "0, 1, 0, 1, 1, 1, 0, 1"이면, 프로그램 루프 N+m의 프로그래밍 펄스 동안, 제2, 제4, 제5, 제6, 및 제8 메모리 셀들에 커플링된 비트 라인들은 금지 전압을 수신하여, 프로그래밍만이 제1, 제3, 및 제7 메모리 셀들에서 시작된다. 프로그래밍 동작의 나머지 프로그램 루프들에 대해, 이러한 메모리 셀들 모두는 프로그래밍이 금지되어, 스마트 검증 바이트를 프로그래밍하는 데 요구되는 부가적인 시간이 무시가능하다. 스마트 검증 바이트의 프로그래밍이 발생하는 특정 프로그램 루프는 VPGM 전압이 어느 프로그램 루프 상에서 하나의 프로그래밍 펄스의 제로 검증(1P0V) 프로그래밍 동작에 대해 최적의 레벨에 있는지에 기초하여 선택될 수 있다. 예시적인 실시예에서, 스마트 검증 바이트의 메모리 셀들이 프로그래밍되는 N+m 펄스는 S1 데이터 상태로의 프로그래밍의 완료에 후속하는 펄스일 수 있다. 따라서, 스마트 검증 바이트의 프로그래밍은 워드 라인의 나머지를 프로그래밍하는 데 요구되는 시간을 증가시키지 않지만, 대신에, 이미 발생한 프로그래밍 동작 내에서 은닉(hidden)된다. 이러한 예에서, 스마트 검증 바이트 내의 메모리 셀들의 임계 전압 Vt 분포는 도 8(SLC)에 근사할 수 있고, 워드 라인 내의 나머지 메모리 셀들의 임계 전압 Vt 분포들은 도 9(TLC) 또는 도 10(QLC) 중 어느 하나에 근사할 수 있다. 스마트 검증 바이트의 메모리 셀들이 비휘발성이기 때문에, SV_VPGM은 액세스가능하게 유지되며, 메모리 디바이스의 전원이 꺼지고 다시 전원이 켜지더라도 재획득될 필요가 없다.
결정 단계(1604)에서의 답변이 "예"이면, 단계(1620)에서, 스마트 검증 바이트가 판독되고, SV_VPGM은 스마트 검증 동작을 수행하지 않으면서 레지스터에 로딩된다.
단계(1616 또는 1620) 중 어느 하나에 후속하여, 단계(1618)에서, 선택된 WLn의 나머지 스트링들은 ISPP 프로그래밍 기법을 사용하여 프로그래밍되고, SV_VPGM과 동일한 초기 프로그래밍 전압(VPGMU)을 이용하여 프로그래밍된다. 단계(1622)에서, 프로그래밍되고 있는 워드 라인은 증분적으로 전진되고, 즉 WLn = WLn+1이다. 이러한 프로세스는 기입 커맨드가 완료되거나 메모리 블록이 가득찰 때까지, 즉 폐쇄될 때까지 계속된다.
도 18은 본 개시내용의 일 실시예에 따른, 4개의 스트링들(String_0 내지 String_3으로 라벨링됨)로 분할된 워드 라인들을 갖는 예시적인 메모리 블록에 적용된 바와 같은 위에서 논의된 프로그래밍 기법들의 프로그래밍 순서 또는 시퀀스를 도시하는 테이블이다. 제1 동작은, 워드 라인 WLn에 대한 스마트 검증 전압, 즉 SV_VPGM_WLn을 획득하기 위해 프로그래밍될 제1 워드 라인(WLn)의 String_0의 메모리 셀들 상에서 스마트 검증 동작을 수행하는 것이다. 다음으로, WLn, String_0의 메모리 셀들은 SV_VPGM_WLn 전압을 포함하는 데이터 및 사용자 데이터를 포함하도록 프로그래밍된다. 제2, 제3, 및 제4 프로그래밍 동작들은 이러한 프로그래밍 동작들에 대한 초기 프로그래밍 전압(VPGMU)으로서 SV_VPGM_WLn을 사용하여 워드 라인(WLn) 각각의 String_1, String_2, 및 String_3의 메모리 셀들을 프로그래밍하고 있다.
이어서, 프로그래밍은 메모리 블록 내의 다음 순차적 워드 라인, 즉 WLn+1로 이동한다. 제5 프로그래밍 동작은 SV_VPGM_WLn+1을 획득하고 String_0, WLn+1을 프로그래밍하는 것이다. 제6, 제7, 및 제8 프로그래밍 동작들은 이러한 프로그래밍 동작들의 초기 프로그래밍 전압(VPGMU)으로서 SV_VPGM_WLn+1을 사용하여 워드 라인(WLn+1) 각각의 String_1, String_2, 및 String_3을 프로그래밍하는 것이다. 이러한 패턴은 기입 동작이 완료될 때까지 전방으로 워드 라인들(WLn+2)에 대해 계속된다.
다양한 용어들이 본 명세서에서 특정 시스템 컴포넌트들을 지칭하는 데 사용된다. 상이한 회사들이 상이한 이름들로 동일하거나 유사한 컴포넌트를 지칭할 수 있으며, 이러한 설명은 이름만 상이하고 기능은 상이하지 않은 컴포넌트들을 구별하도록 의도하지 않는다. 다음의 개시내용에 설명되는 다양한 기능 단위들이 "모듈들"로 지칭되는 경우, 그러한 특성화는 잠재적인 구현 메커니즘들의 범위를 과도하게 제한하지 않도록 의도된다. 예를 들어, "모듈"은 맞춤형 VLSI(very-large-scale integration) 회로들 또는 게이트 어레이들, 또는 로직 칩들, 트랜지스터들, 또는 다른 별개의 컴포넌트들을 포함하는 기성(off-the-shelf) 반도체들을 포함하는 하드웨어 회로로서 구현될 수 있다. 추가적인 예에서, 모듈은 또한, 프로그래밍가능 하드웨어 디바이스, 예컨대 필드 프로그래밍가능 게이트 어레이(FPGA), 프로그래밍가능 어레이 로직, 프로그래밍가능 로직 디바이스 등으로 구현될 수 있다. 더욱이, 모듈은 또한, 적어도 부분적으로, 다양한 유형들의 프로세서들에 의해 실행되는 소프트웨어에 의해 구현될 수 있다. 예를 들어, 모듈은 객체, 프로세스, 또는 기능으로 변환되는 컴퓨터 명령어들의 하나 이상의 물리적 또는 논리적 블록들을 구성하는 실행가능 코드의 세그먼트를 포함할 수 있다. 또한, 그러한 모듈의 실행가능 부분들이 물리적으로 함께 위치되는 것이 요구되는 것이 아니라, 오히려 상이한 위치들에 저장되며, 함께 실행될 때, 식별된 모듈을 포함하고 그 모듈의 언급된 목적을 달성하는 별개의 명령어들을 포함할 수 있는 것이 요구된다. 실행가능 코드는 단지 단일 명령어 또는 다수의 명령어들의 세트를 포함할 수 있을 뿐만 아니라, 상이한 코드 세그먼트들에 걸쳐, 또는 상이한 프로그램들 사이에, 또는 여러 개의 메모리 디바이스들에 걸쳐 등의 방식으로 분산될 수 있다. 소프트웨어 또는 부분 소프트웨어 모듈 구현에서, 소프트웨어 부분들은, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체-기반 시스템, 장치, 또는 디바이스, 또는 이들의 임의의 적합한 조합을 포함하지만 이에 제한되지 않는 하나 이상의 컴퓨터 판독가능 및/또는 실행가능 저장 매체들 상에 저장될 수 있다. 일반적으로, 본 개시내용의 목적들을 위해, 컴퓨터 판독가능 및/또는 실행가능 저장 매체는 명령어 실행 시스템, 장치, 프로세서, 또는 디바이스에 의한 또는 그들과 관련된 사용을 위한 프로그램을 포함 및/또는 저장할 수 있는 임의의 유형적(tangible) 및/또는 비일시적 매체로 구성될 수 있다.
유사하게, 본 개시내용의 목적들을 위해, 용어 "컴포넌트"는 임의의 유형적, 물리적, 및 비일시적 디바이스로 구성될 수 있다. 예를 들어, 컴포넌트는, 맞춤형 VLSI 회로들, 게이트 어레이들, 또는 다른 집적 회로들로 구성되거나 또는 로직 칩들, 트랜지스터들, 또는 다른 별개의 컴포넌트들, 또는 임의의 다른 적합한 기계적 및/또는 전기 디바이스들을 포함하는 기성 반도체들로 구성된 하드웨어 로직 회로의 형태로 이루어질 수 있다. 부가적으로, 컴포넌트는 또한, 필드 프로그래밍가능 게이트 어레이(FPGA), 프로그래밍가능 어레이 로직, 프로그래밍가능 로직 디바이스들 등과 같은 프로그래밍가능 하드웨어 디바이스들에서 구현될 수 있다. 더욱이, 컴포넌트는, 예를 들어 인쇄 회로 보드(PCB) 등의 전기 전도체들을 통한 하나 이상의 다른 컴포넌트들과의 전기 통신 구성에 있는 칩들, 다이, 다이 평면들, 및 패키지들, 또는 다른 별개의 전기 디바이스들과 같은 하나 이상의 실리콘-기반 집적 회로 디바이스들로 구성될 수 있다. 따라서, 위에서 정의된 바와 같은 모듈은, 소정의 실시예들에서, 컴포넌트에 의해 구체화되거나 컴포넌트로서 구현될 수 있으며, 일부 예시들에서, 용어들 모듈 및 컴포넌트는 상호교환가능하게 사용될 수 있다.
용어 "회로"가 본 명세서에서 사용되는 경우, 그것은 전류가 흐르게 허용하는 하나 이상의 전도성 경로들을 구성하는 하나 이상의 전기 및/또는 전자 컴포넌트들을 포함한다. 회로는 폐쇄-루프 구성 또는 개방-루프 구성의 형태로 이루어질 수 있다. 폐쇄-루프 구성에서, 회로 컴포넌트들은 전류에 대한 복귀 경로를 제공할 수 있다. 대조적으로, 개방-루프형 구성에서, 본 명세서의 회로 컴포넌트들은 전류에 대한 복귀 경로를 포함하지 않음에도 불구하고 회로를 형성하는 것으로 여전히 간주될 수 있다. 예를 들어, 집적 회로는 집적 회로가 (전류에 대한 복귀 경로로서) 접지에 커플링되는지 여부에 관계없이 회로로 지칭된다. 소정의 예시적인 실시예들에서, 회로는 집적 회로들의 세트, 단독의 집적 회로, 또는 집적 회로의 일부를 포함할 수 있다. 예를 들어, 회로는 맞춤형 VLSI 회로들, 게이트 어레이들, 로직 회로들, 및/또는 다른 형태들의 집적 회로들을 포함할 수 있을 뿐만 아니라, 로직 칩들, 트랜지스터들, 또는 다른 별개의 디바이스들과 같은 기성 반도체를 포함할 수 있다. 추가적인 예에서, 회로는, 예를 들어 인쇄 회로 보드(PCB)의 전기 전도체들을 통한 하나 이상의 다른 컴포넌트들과의 전기 통신 구성에 있는 칩들, 다이, 다이 평면들, 및 패키지들, 또는 다른 별개의 전기 디바이스들과 같은 하나 이상의 실리콘-기반 집적 회로 디바이스들을 포함할 수 있다. 회로는 또한, 필드 프로그래밍가능 게이트 어레이(FPGA), 프로그래밍가능 어레이 로직, 및/또는 프로그래밍가능 로직 디바이스들 등과 같은 프로그래밍가능 하드웨어 디바이스에 대한 합성된 회로로서 구현될 수 있다. 다른 예시적인 실시예들에서, 회로는 (집적 회로 디바이스들을 갖거나 갖지 않는) 집적되지 않은 전기 및/또는 전자 컴포넌트들의 네트워크를 포함할 수 있다. 따라서, 위에서 정의된 바와 같은 모듈은, 소정의 실시예들에서, 회로에 의해 구체화되거나 또는 회로로서 구현될 수 있다.
본 명세서에 개시된 예시적인 실시예들이 하나 이상의 마이크로프로세서들, 및 본 명세서에 개시된 기능들 중 일부, 대부분, 또는 전부를 소정의 비-프로세서 회로들 및 다른 요소들과 함께 구현하도록 하나 이상의 마이크로프로세서들을 제어하는 특정 저장된 컴퓨터 프로그램 명령어들로 구성될 수 있다는 것이 인식될 것이다. 대안적으로, 일부 또는 모든 기능들은 저장된 프로그램 명령어들을 갖지 않는 상태 머신에 의해, 또는 하나 이상의 주문형 집적 회로(ASIC)들 또는 필드 프로그래밍가능 게이트 어레이(FPGA)들로 구현될 수 있으며, 여기서 각각의 기능 또는 기능들 중 소정의 기능들의 일부 조합들은 맞춤형 로직으로서 구현된다. 이들 접근법들의 조합이 또한 사용될 수 있다. 추가로, "제어기"에 대한 아래의 참조들은 개별 회로 컴포넌트들, 주문형 집적 회로(ASIC), 제어 소프트웨어를 갖는 마이크로제어기, 디지털 신호 프로세서(DSP), 필드 프로그래밍가능 게이트 어레이(FPGA), 및/또는 제어 소프트웨어를 갖는 프로세서, 또는 이들의 조합을 포함하는 것으로 정의되어야 한다.
부가적으로, 용어들 "커플링", "커플링된", 또는 "커플링한"은 본 명세서에서 사용될 수 있는 경우, 직접 또는 간접 연결 중 어느 하나를 의미하도록 의도된다. 따라서, 제1 디바이스가 제2 디바이스와 커플링하거나 그에 커플링되면, 그 연결은 직접 연결에 의해 또는 다른 디바이스들(또는 컴포넌트들) 및 연결부들을 통한 간접 연결을 통해 이루어질 수 있다.
"일 실시예", "하나의 실시예", "예시적인 실시예", "특정 실시예", 또는 다른 유사한 용어와 같은 용어들의 본 명세서에서의 사용에 관해, 이들 용어들은 실시예와 관련하여 설명되는 특정 특징, 구조, 기능, 동작, 또는 특성이 본 개시내용의 적어도 하나의 실시예에서 발견된다는 것을 표시하도록 의도된다. 따라서, "하나의 실시예에서", "일 실시예에서", "예시적인 실시예에서" 등과 같은 문구들의 등장들은 모두 동일한 실시예를 지칭할 수 있지만 반드시 그러한 것은 아니며, 오히려, 명시적으로 달리 특정되지 않는 한 "모든 실시예들이 아니라 하나 이상의 실시예들"을 의미할 수 있다. 추가로, 용어들 "포함하는(comprising)", "갖는(having)", "포함하는(including)" 및 이들의 변형들은 개방형 방식으로 사용되며, 따라서 명시적으로 달리 특정되지 않는 한, "포함하지만 이에 제한되지 않는"을 의미하는 것으로 해석되어야 한다. 또한, "포함하는"에 선행되는 요소는, 더 많은 제약들 없이, 대상 프로세스, 방법, 시스템, 물품, 또는 요소를 포함하는 장치에서 부가적인 동일한 요소들의 존재를 배제하지 않는다.
단수형("a", "an", 및 "the")의 용어들은 또한, 명시적으로 달리 특정되지 않는 한, "하나 이상"을 지칭한다. 부가적으로, 본 명세서에서 그리고/또는 다음의 청구범위에서 사용될 수 있는 바와 같은 문구 "A 및 B 중 적어도 하나"(그에 의해, A 및 B는 특정 객체 또는 속성을 표시하는 변수들임)는 문구 "및/또는"과 유사하게 A 또는 B, 또는 A 및 B 둘 모두의 선택을 표시한다. 2개 초과의 변수들이 그러한 문구에 존재하는 경우, 이러한 문구는 이에 의해, 변수들 중 오직 하나, 변수들 중 임의의 하나, 변수들 중 임의의 변수들의 임의의 조합(또는 하위-조합), 및 변수들 모두를 포함하는 것으로 정의된다.
추가로, 본 명세서에서 사용되는 경우, 용어 "약" 또는 "대략"은 명시적으로 표시되든지 표시되지 않든지 간에 모든 수치 값들에 적용된다. 이들 용어들은 일반적으로, 당업자가 언급된 값들(예를 들어, 동일한 기능 또는 결과를 가짐)과 등가인 것으로 고려할 수치 값들의 범위를 지칭한다. 소정의 예시들에서, 이들 용어들은 가장 가까운 유효 숫자로 반올림된 수치 값들을 포함할 수 있다.
부가적으로, 본 명세서에 기재된 아이템들의 임의의 열거된 목록은 명시적으로 달리 특정되지 않는 한, 아이템들 중 임의의 것 또는 전부가 서로 상호 배타적이고 그리고/또는 서로 상호 포괄적이라는 것을 암시하지 않는다. 추가로, 본 명세서에 사용되는 바와 같은 용어 "세트"는 "하나 이상"을 의미하는 것으로 해석되어야 하며, "세트들"의 경우에는, 명시적으로 달리 특정되지 않는 한, 집합론에 따라 하나 이상들("one or more," "ones or more," 및/또는 "ones or mores")의 배수들(또는 복수의 하나 이상들)을 의미하는 것으로 해석되어야 한다.
전술한 상세한 설명은 예시 및 설명의 목적들을 위해 제시되었다. 그것은 개시된 정확한 형태로 제한하거나 망라하도록 의도되지 않는다. 위의 설명의 관점에서 많은 수정들 및 변형들이 가능하다. 설명된 실시예들은 본 기술의 원리들 및 그의 실제 응용을 가장 잘 설명하기 위해 선택되었으며, 그에 의해, 당업자가 다양한 실시예들에서 그리고 고려되는 특정 용도에 적합한 바와 같은 다양한 수정들을 갖고서 본 기술을 가장 잘 이용할 수 있게 한다. 본 기술의 범주는 명세서에 첨부된 청구범위에 의해 정의된다.

Claims (20)

  1. 메모리 디바이스를 프로그래밍하는 방법으로서,
    사용자 데이터를 상기 메모리 디바이스에 기입하라는 커맨드를 수신하는 단계;
    복수의 워드 라인들로 배열된 복수의 메모리 셀들을 포함하는 적어도 하나의 메모리 블록을 준비하는 단계;
    상기 복수의 워드 라인들 중 선택된 워드 라인의 적어도 일부 상에서, 스마트 검증(smart verify) 프로그래밍 전압을 획득하기 위해 스마트 검증 동작을 수행하는 단계; 및
    상기 스마트 검증 프로그래밍 전압이 획득된 이후, 복수의 프로그램 루프들에서, 상기 사용자 데이터, 및 상기 스마트 검증 프로그래밍 전압에 대응하는 데이터를 포함하도록 상기 선택된 워드 라인의 상기 메모리 셀들을 프로그래밍하는 단계를 포함하는, 메모리 디바이스를 프로그래밍하는 방법.
  2. 제1항에 있어서,
    상기 선택된 워드 라인은 복수의 스트링들을 포함하며, 상기 스마트 검증 프로그래밍 전압을 획득하기 위해 상기 스마트 검증 동작을 수행하는 단계는 상기 복수의 스트링들 중 제1 스트링 상에서만 이루어지고, 상기 선택된 워드 라인의 상기 메모리 셀들을 프로그래밍하는 단계는 상기 스마트 검증 프로그래밍 전압에 대응하는 상기 데이터를 상기 선택된 워드 라인의 상기 제1 스트링의 상기 메모리 셀들 내로 프로그래밍하는 단계를 포함하는, 메모리 디바이스를 프로그래밍하는 방법.
  3. 제2항에 있어서,
    상기 스마트 검증 프로그래밍 전압을 초기 프로그래밍 전압으로서 사용하여 복수의 프로그램 루프들에서 상기 선택된 워드 라인의 다른 스트링들의 메모리 셀들 내로 상기 사용자 데이터를 프로그래밍하는 단계를 더 포함하는, 메모리 디바이스를 프로그래밍하는 방법.
  4. 제2항에 있어서,
    상기 메모리 블록의 상기 워드 라인들 각각은 상기 복수의 스트링들을 포함하며, 상기 방법은, 각각의 워드 라인에 대한 상기 스마트 검증 프로그래밍 전압을 획득하기 위해 상기 워드 라인들 각각의 상기 제1 스트링 상에서 상기 스마트 검증 동작을 수행하고, 각각의 워드 라인에 대한 상기 스마트 검증 프로그래밍 전압에 대응하는 데이터를 상기 워드 라인의 상기 제1 스트링의 상기 메모리 셀들 내로 프로그래밍하는 단계를 더 포함하는, 메모리 디바이스를 프로그래밍하는 방법.
  5. 제2항에 있어서,
    상기 선택된 워드 라인의 상기 제1 스트링의 상기 메모리 셀들 내로 프로그래밍된 상기 스마트 검증 프로그래밍 전압은 복수의 프로그램 루프들에서 적어도 하나의 부가적인 워드 라인을 프로그래밍할 때의 초기 프로그래밍 전압인, 메모리 디바이스를 프로그래밍하는 방법.
  6. 제2항에 있어서,
    상기 스마트 검증 프로그래밍 전압에 대응하는 상기 데이터를 포함하도록 프로그래밍되는 상기 제1 스트링의 상기 메모리 셀들은 메모리 셀당 하나의 비트(SLC) 저장 스킴(scheme)으로 프로그래밍되는, 메모리 디바이스를 프로그래밍하는 방법.
  7. 제6항에 있어서,
    상기 사용자 데이터를 포함하도록 프로그래밍되는 상기 제1 스트링의 상기 메모리 셀들은 메모리 셀당 하나 이상의 비트들의 저장 스킴으로 프로그래밍되는, 메모리 디바이스를 프로그래밍하는 방법.
  8. 제2항에 있어서,
    상기 스마트 검증 프로그래밍 전압에 대응하고 상기 제1 스트링의 상기 메모리 셀들로 프로그래밍되는 상기 데이터는 1 바이트 이하의 데이터인, 메모리 디바이스를 프로그래밍하는 방법.
  9. 제1항에 있어서,
    상기 메모리 디바이스는 3 바이트 이하의 데이터만을 포함할 수 있는 NAND 레지스터를 갖는, 메모리 디바이스를 프로그래밍하는 방법.
  10. 메모리 디바이스로서,
    복수의 워드 라인들로 배열된 복수의 메모리 셀들을 포함하는 적어도 하나의 메모리 블록;
    복수의 프로그램 루프들에서 상기 적어도 하나의 메모리 블록의 상기 메모리 셀들을 프로그래밍하도록 구성된 제어 회로부를 포함하며,
    상기 제어 회로부는,
    사용자 데이터를 상기 메모리 디바이스에 기입하라는 커맨드를 수신하고,
    상기 복수의 워드 라인들 중 선택된 워드 라인의 적어도 일부 상에서, 스마트 검증 프로그래밍 전압을 획득하기 위해 스마트 검증 동작을 수행하고,
    상기 스마트 검증 프로그래밍 전압이 획득된 이후, 복수의 프로그램 루프들에서, 상기 사용자 데이터, 및 상기 스마트 검증 프로그래밍 전압에 대응하는 데이터를 포함하도록 상기 선택된 워드 라인의 상기 메모리 셀들을 프로그래밍하도록
    구성되는, 메모리 디바이스.
  11. 제10항에 있어서,
    상기 선택된 워드 라인은 복수의 스트링들을 포함하며, 상기 제어 회로부는 상기 스마트 검증 프로그래밍 전압에 대응하는 상기 데이터를 상기 선택된 워드 라인의 제1 스트링의 메모리 셀들 내로 프로그래밍하도록 구성되는, 메모리 디바이스.
  12. 제11항에 있어서,
    상기 제어 회로부는 상기 스마트 검증 프로그래밍 전압을 초기 프로그래밍 전압으로서 사용하여 복수의 프로그램 루프들에서 상기 선택된 워드 라인의 다른 스트링들의 메모리 셀들 내로 상기 사용자 데이터를 프로그래밍하도록 추가로 구성되는, 메모리 디바이스.
  13. 제11항에 있어서,
    상기 메모리 블록의 상기 워드 라인들 각각은 상기 복수의 스트링들을 포함하며, 상기 제어 회로부는 각각의 워드 라인에 대한 상기 스마트 검증 프로그래밍 전압을 획득하기 위해 상기 워드 라인들 각각의 상기 제1 스트링 상에서 상기 스마트 검증 동작을 수행하고, 각각의 워드 라인에 대한 상기 스마트 검증 프로그래밍 전압에 대응하는 데이터를 상기 워드 라인의 상기 제1 스트링의 상기 메모리 셀들 내로 프로그래밍하도록 추가로 구성되는, 메모리 디바이스.
  14. 제11항에 있어서,
    상기 제어 회로부에 의해 상기 선택된 워드 라인의 상기 제1 스트링의 상기 메모리 셀들 내로 프로그래밍된 상기 스마트 검증 프로그래밍 전압은 복수의 프로그램 루프들에서 상기 메모리 블록의 적어도 하나의 부가적인 워드 라인을 프로그래밍할 때의 초기 프로그래밍 전압인, 메모리 디바이스.
  15. 제11항에 있어서,
    상기 스마트 검증 프로그래밍 전압에 대응하는 상기 데이터를 포함하도록 상기 제어 회로부에 의해 프로그래밍되는 상기 제1 스트링의 상기 메모리 셀들은 메모리 셀당 하나의 비트(SLC) 저장 스킴으로 프로그래밍되는, 메모리 디바이스.
  16. 제15항에 있어서,
    상기 사용자 데이터를 포함하도록 상기 제어 회로부에 의해 프로그래밍되는 상기 제1 스트링의 상기 메모리 셀들은 메모리 셀당 2개 이상의 비트들의 저장 스킴으로 프로그래밍되는, 메모리 디바이스.
  17. 제11항에 있어서,
    상기 스마트 검증 프로그래밍 전압에 대응하고 상기 제1 스트링의 상기 메모리 셀들로 프로그래밍되는 상기 데이터는 1 바이트 이하의 데이터인, 메모리 디바이스.
  18. 제10항에 있어서,
    3 바이트 이하의 데이터를 포함할 수 있는 NAND 레지스터를 더 포함하는, 메모리 디바이스.
  19. 장치로서,
    복수의 워드 라인들로 배열된 복수의 메모리 셀들을 포함하는 적어도 하나의 메모리 블록;
    사용자 데이터를 상기 복수의 메모리 셀들 내로 프로그래밍하기 위한 프로그래밍 수단을 포함하며,
    상기 프로그래밍 수단은 복수의 프로그램 루프들에서 상기 적어도 하나의 메모리 블록의 상기 메모리 셀들을 프로그래밍하도록 구성되고,
    상기 프로그래밍 수단은,
    사용자 데이터를 메모리 디바이스에 기입하라는 커맨드를 수신하고,
    상기 복수의 워드 라인들 중 선택된 워드 라인의 복수의 스트링들 중 제1 스트링 상에서, 스마트 검증 프로그래밍 전압을 획득하기 위해 스마트 검증 동작을 수행하고,
    상기 스마트 검증 프로그래밍 전압이 획득된 이후, 복수의 프로그램 루프들에서, 상기 사용자 데이터, 및 상기 스마트 검증 프로그래밍 전압에 대응하는 데이터를 포함하도록 상기 선택된 워드 라인의 상기 메모리 셀들을 프로그래밍하고,
    상기 스마트 검증 프로그래밍 전압을 초기 프로그래밍 전압으로서 사용하여 복수의 프로그램 루프들에서 상기 선택된 워드 라인의 다른 스트링들의 메모리 셀들을 프로그래밍하도록
    구성되는, 장치.
  20. 제19항에 있어서,
    상기 프로그래밍 수단은, 상기 메모리 블록 내의 상기 복수의 워드 라인들의 각각의 워드 라인의 상기 제1 스트링 상에서 상기 스마트 검증 동작을 수행하고, 고유 스마트 검증 프로그래밍 전압에 대응하는 데이터를 각각의 워드 라인의 상기 제1 스트링의 상기 메모리 셀들 내로 프로그래밍하도록 추가로 구성되는, 장치.
KR1020230089459A 2022-09-30 2023-07-10 메모리 디바이스에서의 고성능 검증 기법들 KR20240045991A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/957,606 US20240112744A1 (en) 2022-09-30 2022-09-30 High performance verify techniques in a memory device
US17/957,606 2022-09-30

Publications (1)

Publication Number Publication Date
KR20240045991A true KR20240045991A (ko) 2024-04-08

Family

ID=90246589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230089459A KR20240045991A (ko) 2022-09-30 2023-07-10 메모리 디바이스에서의 고성능 검증 기법들

Country Status (6)

Country Link
US (1) US20240112744A1 (ko)
JP (1) JP2024052518A (ko)
KR (1) KR20240045991A (ko)
CN (1) CN117809715A (ko)
DE (1) DE102023117779A1 (ko)
TW (1) TW202416279A (ko)

Also Published As

Publication number Publication date
DE102023117779A1 (de) 2024-04-04
US20240112744A1 (en) 2024-04-04
CN117809715A (zh) 2024-04-02
JP2024052518A (ja) 2024-04-11
TW202416279A (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
CN113870935A (zh) 使用栅极诱生漏极泄漏生成的空穴预充电方案
US11961573B2 (en) Memory device that is optimized for operation at different temperatures
CN115527588A (zh) 使用选择性跳过的验证脉冲进行存储器编程以用于性能改进
US11244734B2 (en) Modified verify scheme for programming a memory apparatus
WO2023249719A1 (en) Techniques for checking vulnerability to cross-temperature read errors in a memory device
US20230377643A1 (en) Multi-pass programming operation sequence in a memory device
US11817157B2 (en) Systems and methods for detecting erratic programming in a memory system
CN114596887A (zh) 用于更大范围的操作温度产品的非线性温度补偿
CN113870934A (zh) 编程-验证技术之间的取决于循环的切换
US12046304B2 (en) Programming techniques to improve programming time and reduce programming errors
KR20240045991A (ko) 메모리 디바이스에서의 고성능 검증 기법들
US12057161B2 (en) Memory device with unique read and/or programming parameters
US20240242764A1 (en) Programming techniques in a memory device to reduce a hybrid slc ratio
US20240304262A1 (en) Loop dependent bit line and read biases in a memory device
US20240079062A1 (en) Precharge scheme during programming of a memory device
US12057172B2 (en) Hybrid multi-block erase technique to improve erase speed in a memory device
US20230253048A1 (en) Variable programming clocks during a multi-stage programming operation in a nand memory device
US11887677B2 (en) Quick pass write programming techniques in a memory device
US11972809B2 (en) Selective inhibit bitline voltage to cells with worse program disturb
US11798631B2 (en) Transfer latch tiers
US20240079063A1 (en) Dynamic word line boosting during programming of a memory device
US20240203511A1 (en) Channel pre-charge process in a memory device
US20230052121A1 (en) Memory device that is optimized for low power operation
CN117636976A (zh) 在存储器设备中就地写入而不擦除的技术
KR20240013052A (ko) 고유 저장 용량을 갖는 메모리 다이고유 저장 용량을 갖는 메모리 다이