KR20230111585A - 내부 펌웨어에 의한 자체 검증을 사용한 nand 메모리에 대한 중복 데이터 보호 - Google Patents

내부 펌웨어에 의한 자체 검증을 사용한 nand 메모리에 대한 중복 데이터 보호 Download PDF

Info

Publication number
KR20230111585A
KR20230111585A KR1020227044654A KR20227044654A KR20230111585A KR 20230111585 A KR20230111585 A KR 20230111585A KR 1020227044654 A KR1020227044654 A KR 1020227044654A KR 20227044654 A KR20227044654 A KR 20227044654A KR 20230111585 A KR20230111585 A KR 20230111585A
Authority
KR
South Korea
Prior art keywords
programming
data
nand flash
flash memory
page
Prior art date
Application number
KR1020227044654A
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 KR20230111585A publication Critical patent/KR20230111585A/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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • G11C16/3445Circuits or methods to verify correct erasure of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/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
    • 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/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • 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
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

본 개시는 NAND 메모리에 대한 데이터 보호의 방법을 제공한다. 방법은 제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 NAND 플래시 메모리 디바이스의 제1 및 제2 페이지를 프로그래밍하는 것을 포함한다. 제1 및 제2 페이지의 프로그래밍은 복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작 및 프로그래밍 데이터에 따라 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위한 복수의 검증 동작을 포함한다. 방법은 통과 결과를 반환하는 복수의 검증 동작 각각에 기초하여 제1 및 제2 페이지의 프로그래밍의 완료를 결정하는 것을 또한 포함한다. 방법은, 결정 이후, 제2 페이지에 저장되는 데이터를 자체 검증하기 위해, NAND 플래시 메모리 디바이스에 의해 제2 페이지에 대한 판독 동작을 수행하는 것을 또한 포함할 수 있다.

Description

내부 펌웨어에 의한 자체 검증을 사용한 NAND 메모리에 대한 중복 데이터 보호
본 개시는 일반적으로 반도체 기술의 분야에 관한 것으로, 특히, NAND 메모리에서 이중 프로그램 에러를 디버깅하기 위한 방법에 관한 것이다.
제조 비용을 감소시키고 저장 밀도를 증가시키기 위해 메모리 디바이스가 더 작은 다이 사이즈로 축소됨에 따라, 평면 메모리 셀의 스케일링은 프로세스 기술 제약 및 신뢰성 이슈에 기인하여 도전 과제에 직면한다. 3차원(three-dimensional; 3D) 메모리 아키텍쳐는 평면 메모리 셀에서의 밀도 및 성능 제약을 해결할 수 있다.
3D NAND 플래시 메모리에서, 단위 면적당 저장 밀도가 크게 증가될 수 있도록, 메모리 셀의 많은 레이어는 수직으로 적층될 수 있다. 수직으로 적층된 메모리 셀은 메모리 스트링을 형성할 수 있는데, 여기서 메모리 셀의 채널은 각각의 메모리 스트링에 연결된다. 각각의 메모리 셀은 워드 라인 및 비트 라인을 통해 주소 지정될 수 있다. 동일한 워드 라인을 공유하는 전체 메모리 페이지 내의 메모리 셀의 데이터(즉, 로직 상태)는 동시에 판독 또는 프로그래밍될 수 있다. 그러나, 공격적인 스케일링에 기인하여, 3D NAND 플래시 메모리의 경우 신뢰성이 문제가 될 수 있다.
메모리 디바이스에서 데이터 보호를 위한 방법 및 시스템의 실시형태가 본 개시에서 설명된다.
몇몇 실시형태에서, 방법은 NAND 자체 검증을 사용하는 중복 백업 방법(redundant backup method)을 제공할 수 있다. 방법은 제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 NAND 플래시 메모리 디바이스의 제1 및 제2 페이지를 프로그래밍하는 것을 포함할 수 있다. 제1 및 제2 페이지 각각은 제1 또는 제2 워드 라인에 대응하는 복수의 메모리 셀을 포함한다. 제1 및 제2 페이지의 프로그래밍은 복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작 및 복수의 검증 동작을 포함할 수 있다. 복수의 검증 동작 중의 동작은, 프로그래밍 데이터에 따라 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위해, 복수의 프로그래밍 동작 중 대응하는 동작 이후 수행될 수 있다. 방법은 통과 결과(pass result)를 반환하는 복수의 검증 동작 각각에 기초하여 제1 및 제2 페이지의 프로그래밍의 완료를 결정하는 것을 또한 포함할 수 있다. 방법은, 결정 이후, 프로그래밍 데이터에 따라 제2 페이지에 저장되는 데이터를 자체 검증하기 위해, NAND 플래시 메모리 디바이스에 의해 제2 페이지에 대한 판독 동작을 수행하는 것을 또한 포함할 수 있다.
몇몇 실시형태에서, 제1 페이지는 단일 레벨 셀(single-level cell; SLC) 프로그래밍을 위해 구성될 수 있다. 제2 페이지는 다중 레벨 셀(multi-level cell; MLC), 트리플 레벨 셀(triple-level cell; TLC), 또는 쿼드 레벨 셀(quad-level cell; QLC) 프로그래밍을 위해 구성될 수 있다.
몇몇 실시형태에서, 판독 동작의 수행은, 프로그래밍 데이터에 따라 제2 페이지에 저장되는 데이터를 외부적으로 검증하기 위해 하나 이상의 호스트 컴퓨팅 디바이스에 의해 판독 동작을 수행하는 것과 비교하여, 방법의 완료의 시간을 감소시키는 것을 포함할 수 있다.
몇몇 실시형태에서, 방법은 저장을 위한 새로운 데이터를 수신하기 위해 제1 페이지를 해제하는(releasing) 것을 또한 포함할 수 있다.
몇몇 실시형태에서, 판독 동작을 수행하는 것은 판독 동작으로부터 결정되는 저장된 데이터 및 프로그래밍 데이터를 비교하는 것을 포함할 수 있다. 판독 동작을 수행하는 것은, 실패 비트 카운트가 임계치 미만인 경우 통과 결과를 또는 실패 비트 카운트가 임계치를 초과하는 경우 실패 결과(fail result)를 결정하는 것을 또한 포함할 수 있다.
몇몇 실시형태에서, 방법은, NAND 플래시 메모리 디바이스에 의해, 판독 동작의 수행을 조정하기 위한 입력을 수신하는 것을 또한 포함할 수 있다.
몇몇 실시형태에서, 방법은 판독 동작을 수행하는 것을 입력에 의해 명시되는 NAND 플래시 메모리 디바이스의 하나 이상의 영역으로 제한하는 것을 또한 포함할 수 있다. 하나 이상의 명시된 영역은 단일 레벨 셀(SLC)을 위해 사용되는 영역, 다중 레벨 셀(MLC)을 위해 사용되는 영역, 트리플 레벨 셀(TLC)을 위해 사용되는 영역, 쿼드 레벨 셀(QLC)을 위해 사용되는 영역, 페이지, 블록, 및 평면 중 적어도 하나를 포함할 수 있다.
몇몇 실시형태에서, 방법은 판독 동작의 수행 이후까지 미래의 프로그래밍 데이터의 캐싱을 지연시키는 것을 또한 포함할 수 있다.
몇몇 실시형태에서, 방법은 캐싱의 사용을 검출하는 것을 또한 포함할 수 있는데, 여기서 지연은 캐싱의 사용의 검출에 기초한다.
몇몇 실시형태에서, NAND 플래시 메모리 디바이스는 NAND 자체 검증을 사용하는 중복 데이터 백업을 제공할 수 있다. NAND 플래시 메모리 디바이스는 메모리 어레이를 포함할 수 있다. 메모리 어레이는 제1 또는 제2 워드 라인에 대응하는 복수의 메모리 셀을 각각 포함하는 제1 및 제2 페이지를 포함할 수 있다. NAND 플래시 메모리 디바이스는 제1 및 제2 워드 라인을 통해 제1 및 제2 페이지에 커플링되는 주변 회로(peripheral circuit)를 또한 포함할 수 있다. 주변 회로는 제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 제1 및 제2 페이지를 프로그래밍할 수 있다. 제1 및 제2 페이지의 프로그래밍은 복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작 및 복수의 검증 동작을 포함할 수 있다. 복수의 검증 동작 중의 동작은, 프로그래밍 데이터에 따라 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위해, 복수의 프로그래밍 동작 중 대응하는 동작 이후 수행될 수 있다. 주변 회로는 통과 결과를 반환하는 복수의 검증 동작 각각에 기초하여 제1 및 제2 페이지의 프로그래밍의 완료를 또한 결정할 수 있다. 주변 회로는, 결정 이후, 프로그래밍 데이터에 따라 제2 페이지에서 데이터의 저장을 자체 검증하기 위해 NAND 플래시 메모리 디바이스에 의해 제2 페이지에 대한 판독 동작을 또한 수행할 수 있다.
NAND 플래시 메모리 디바이스의 몇몇 실시형태에서, 제1 페이지는 단일 레벨 셀(SLC) 프로그래밍을 위해 구성될 수 있다. 제2 페이지는 다중 레벨 셀(MLC), 트리플 레벨 셀(TLC), 또는 쿼드 레벨 셀(QLC) 프로그래밍을 위해 구성될 수 있다.
NAND 플래시 메모리 디바이스의 몇몇 실시형태에서, 판독 동작의 수행은, 프로그래밍 데이터에 따라 제2 페이지에 저장되는 데이터를 외부적으로 검증하기 위해 하나 이상의 호스트 컴퓨팅 디바이스에 의해 판독 동작을 수행하는 것과 비교하여, 제1 및 제2 페이지의 프로그래밍을 포함하는 중복 데이터 저장 프로세스의 완료의 시간을 감소시키는 것을 포함할 수 있다.
NAND 플래시 메모리 디바이스의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는 저장을 위한 새로운 데이터를 수신하기 위해 제1 페이지를 해제할 수 있다.
NAND 플래시 메모리 디바이스의 몇몇 실시형태에서, 판독 동작을 수행하는 것은 판독 동작으로부터 결정되는 저장된 데이터 및 프로그래밍 데이터를 비교하는 것을 포함할 수 있다. 판독 동작을 수행하는 것은, 실패 비트 카운트가 임계치 미만인 경우 통과 결과를 또는 실패 비트 카운트가 임계치를 초과하는 경우 실패 결과를 결정하는 것을 또한 포함할 수 있다.
NAND 플래시 메모리 디바이스의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는 판독 동작의 수행을 조정하기 위한 입력을 수신할 수 있다.
NAND 플래시 메모리 디바이스의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는, 판독 동작을 수행하는 것을, 입력에 의해 명시되는 NAND 메모리의 하나 이상의 영역으로 또한 제한할 수 있다. 하나 이상의 명시된 영역은 단일 레벨 셀(SLC)을 위해 사용되는 영역, 다중 레벨 셀(MLC)을 위해 사용되는 영역, 트리플 레벨 셀(TLC)을 위해 사용되는 영역, 쿼드 레벨 셀(QLC)을 위해 사용되는 영역, 페이지, 블록, 및 평면 중 적어도 하나를 포함할 수 있다.
NAND 플래시 메모리 디바이스의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는 판독 동작의 수행 이후까지 미래의 프로그래밍 데이터의 캐싱을 지연시킬 수 있다.
NAND 플래시 메모리 디바이스의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는 캐싱의 사용을 또한 검출할 수 있는데, 여기서 지연은 캐싱의 사용의 검출에 기초한다.
몇몇 실시형태에서, 메모리 시스템은 NAND 자체 검증을 사용하는 중복 백업 방법을 제공할 수 있다. 메모리 시스템은 데이터를 저장할 수 있는 NAND 플래시 메모리 디바이스를 포함할 수 있다. NAND 플래시 메모리 디바이스는 메모리 어레이를 포함할 수 있다. 메모리 어레이는 제1 또는 제2 워드 라인에 대응하는 복수의 메모리 셀을 각각 포함하는 제1 및 제2 페이지를 포함할 수 있다. NAND 플래시 메모리 디바이스는 제1 및 제2 워드 라인을 통해 제1 및 제2 페이지에 커플링되는 주변 회로를 또한 포함할 수 있다. 주변 회로는 제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 제1 및 제2 페이지를 프로그래밍할 수 있다. 제1 및 제2 페이지의 프로그래밍은 복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작 및 복수의 검증 동작을 포함할 수 있다. 복수의 검증 동작 중의 동작은, 프로그래밍 데이터에 따라 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위해, 복수의 프로그래밍 동작 중 대응하는 동작 이후 수행될 수 있다. 주변 회로는 통과 결과를 반환하는 복수의 검증 동작 각각에 기초하여 제1 및 제2 페이지의 프로그래밍의 완료를 또한 결정할 수 있다. 주변 회로는, 결정 이후, 프로그래밍 데이터에 따라 제2 페이지에서 데이터의 저장을 자체 검증하기 위해 NAND 플래시 메모리 디바이스에 의해 제2 페이지에 대한 판독 동작을 또한 수행할 수 있다.
메모리 시스템의 몇몇 실시형태에서, 제1 페이지는 단일 레벨 셀(SLC) 프로그래밍을 위해 구성될 수 있다. 제2 페이지는 다중 레벨 셀(MLC), 트리플 레벨 셀(TLC), 또는 쿼드 레벨 셀(QLC) 프로그래밍을 위해 구성될 수 있다.
메모리 시스템의 몇몇 실시형태에서, 판독 동작의 수행은, 프로그래밍 데이터에 따라 제2 페이지에 저장되는 데이터를 외부적으로 검증하기 위해 하나 이상의 호스트 컴퓨팅 디바이스에 의해 판독 동작을 수행하는 것과 비교하여, 제1 및 제2 페이지의 프로그래밍을 포함하는 중복 데이터 저장 프로세스의 완료의 시간을 감소시키는 것을 포함할 수 있다.
메모리 시스템의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는 저장을 위한 새로운 데이터를 수신하기 위해 제1 페이지를 또한 해제할 수 있다.
메모리 시스템의 몇몇 실시형태에서, 판독 동작의 수행은 판독 동작으로부터 결정되는 저장된 데이터 및 프로그래밍 데이터를 비교하는 것을 포함할 수 있다. 판독 동작의 수행은, 실패 비트 카운트가 임계치 미만인 경우 통과 결과를 또는 실패 비트 카운트가 임계치를 초과하는 경우 실패 결과를 결정하는 것을 또한 포함할 수 있다.
메모리 시스템의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는 판독 동작의 수행을 조정하기 위한 입력을 또한 수신할 수 있다.
메모리 시스템의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는, 판독 동작을 수행하는 것을, 입력에 의해 명시되는 NAND 플래시 메모리 디바이스의 하나 이상의 영역으로 또한 제한할 수 있다. 하나 이상의 명시된 영역은 단일 레벨 셀(SLC)을 위해 사용되는 영역, 다중 레벨 셀(MLC)을 위해 사용되는 영역, 트리플 레벨 셀(TLC)을 위해 사용되는 영역, 쿼드 레벨 셀(QLC)을 위해 사용되는 영역, 페이지, 블록, 및 평면 중 적어도 하나를 포함할 수 있다.
메모리 시스템의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는 판독 동작의 수행 이후까지 미래의 프로그래밍 데이터의 캐싱을 또한 지연시킬 수 있다.
메모리 시스템의 몇몇 실시형태에서, NAND 플래시 메모리 디바이스는 캐싱의 사용을 또한 검출할 수 있는데, 여기서 지연은 캐싱의 사용의 검출에 기초한다.
본 개시의 다른 양태가 본 개시의 설명, 청구범위, 및 도면을 고려하여 기술 분야의 숙련된 자에 의해 이해될 수 있다.
본원에서 통합되며 본 명세서의 일부를 형성하는 첨부의 도면은 본 개시의 실시형태를 예시하고, 설명과 함께, 본 개시의 원리를 설명하도록 그리고 관련 기술에서의 숙련된 자가 본 개시를 만들고 사용하는 것을 가능하게 하도록 또한 기능한다.
도 1 및 도 2a 및 도 2b는, 몇몇 실시형태에 따른, 하나 이상의 메모리 칩을 갖는 스토리지 시스템을 예시한다.
도 3은, 몇몇 실시형태에 따른, 메모리 다이의 개략도를 예시한다.
도 4는, 몇몇 실시형태에 따른, 3차원(3D) 메모리 다이의 개략도를 예시한다.
도 5는, 몇몇 실시형태에 따른, 3D 메모리 구조물의 일부의 사시도를 예시한다.
도 6은, 몇몇 실시형태에 따른, NAND 플래시 메모리의 임계 전압(Vth) 분포를 예시한다.
도 7은, 몇몇 실시형태에 따른, 메모리 셀을 프로그래밍하는 방법을 예시한다.
도 8a는, 몇몇 실시형태에 따른, NAND 메모리에서의 데이터의 저장 및 데이터의 자체 검증의 방법을 예시한다.
도 8b는, 몇몇 실시형태에 따른, 도 8a에서 설명되는 방법을 사용하는 타임라인을 예시한다.
도 9는 NAND 펌웨어를 사용하여 수행되는 조정을 비교하기 위한 타임라인을 예시한다.
도 10은, 몇몇 실시형태에 따른, 이중 프로그램 이벤트가 발생하는 NAND 메모리의 일부의 스냅샷을 예시한다.
도 11은, 몇몇 실시형태에 따른, 이중 프로그래밍 이벤트를 포함하는 프로세스 플로우를 예시한다.
도 12는, 몇몇 실시형태에 따른, 이중 프로그래밍 이벤트를 디버깅하는 타임라인을 예시한다.
도 13은, 몇몇 실시형태에 따른, SLC 백업을 수행하기 위한 방법을 예시한다.
도 14는, 몇몇 실시형태에 따른, NAND 메모리에서 신뢰할 수 없는 영역을 식별하기 위한 방법을 예시한다.
도 15 및 도 16은, 몇몇 실시형태에 따른, SLC 백업 프로세스에서 NAND 자체 검증을 구현하기 위한 방법을 예시한다.
본 발명의 피쳐 및 이점은, 동일한 참조 문자가 전체에 걸쳐 대응하는 엘리먼트를 식별하는 도면과 연계하여 취해질 때 하기에서 기술되는 상세한 설명으로부터 더욱 명백해질 것이다. 도면에서, 동일한 참조 번호는 일반적으로 동일한, 기능적으로 유사한, 및/또는 구조적으로 유사한 엘리먼트를 나타낸다. 엘리먼트가 처음 나타나는 도면은 대응하는 참조 번호의 맨 좌측 숫자(들)에 의해 나타내어진다.
첨부의 도면을 참조하여 본 개시의 실시형태가 설명될 것이다.
특정한 구성 및 배열이 논의되지만, 이것은 단지 예시의 목적을 위해 행해진다는 것이 이해되어야 한다. 관련 기술에서의 숙련된 자는 본 개시의 취지 및 범위로부터 벗어나지 않으면서 다른 구성 및 배열이 사용될 수 있다는 것을 인식할 것이다. 본 개시는 다양한 다른 애플리케이션에서도 또한 활용될 수 있다는 것이 관련 기술에서의 숙련된 자에게는 명백할 것이다.
본 명세서에서의 "하나의 실시형태", "한 실시형태", "예시적인 실시형태", "몇몇 실시형태", 등등에 대한 언급은, 설명되는 실시형태가 특정한 피쳐, 구조물, 또는 특성을 포함할 수 있지만, 그러나 모든 실시형태가 그 특정한 피쳐, 구조물, 또는 특성을 반드시 포함하지 않을 수 있음을 나타낸다는 것을 유의한다. 또한, 그러한 어구는 반드시 동일한 실시형태를 가리키는 것은 아니다. 게다가, 특정한 피쳐, 구조물 또는 특성이 실시형태와 관련하여 설명될 때, 명시적으로 설명되든 또는 그렇지 않든 간에, 다른 실시형태와 관련하여 그러한 피쳐, 구조물 또는 특성을 달성하는 것은 관련 기술에서의 숙련된 자의 지식 내에 있을 것이다.
일반적으로, 전문 용어는 문맥에서의 사용으로부터 적어도 부분적으로 이해될 수 있다. 예를 들면, 본원에서 사용되는 바와 같은 용어 "하나 이상"은, 적어도 부분적으로 문맥에 따라, 임의의 피쳐, 구조물 또는 특성을 단수의 의미로 설명하기 위해 사용될 수 있거나 또는 피쳐, 구조물 또는 특성의 조합을 복수의 의미로 설명하기 위해 사용될 수 있다. 유사하게, "a(한)", "an(한)" 또는 "the(그)"와 같은 용어는, 다시, 적어도 부분적으로 문맥에 따라, 단수의 용법을 전달하는 것으로 또는 복수 용법을 전달하는 것으로 이해될 수 있다. 또한, 용어 "에 기초한(based on)"은, 요인의 배타적인 세트를 전달하도록 반드시 의도되는 것은 아닌 것으로 이해될 수 있으며, 대신, 다시, 적어도 부분적으로 문맥에 따라, 반드시 명시적으로 설명되지는 않는 추가적인 요인의 존재를 허용할 수 있다.
본 개시에서 "상에(on)", "위에(above)" 및 "위에(over)"의 의미는, "상에(on)"가 어떤 것 "바로 상에(directly on)"를 의미할 뿐만 아니라, 또한, 사이에서 중간 피쳐 또는 레이어를 갖는 어떤 것 "상에(on)" 의 의미를 포함하도록 최광의의 방식으로 해석되어야 한다는 것이 쉽게 이해되어야 한다. 또한, "위에(above)" 또는 "위에(over)"가 어떤 것의 "위에(above)" 또는 "위에(over)"의 의미를 의미할 뿐만 아니라, 또한, 사이에서 어떠한 중간 피쳐 또는 레이어도 없이 어떤 것 "위에(above)" 또는 "위에(over)" 있다는(즉, 어떤 것 바로 상에 있다는) 의미를 포함할 수 있다.
게다가, 도면에서 예시되는 바와 같은 다른 엘리먼트(들) 또는 피쳐(들)에 대한 하나의 엘리먼트 또는 피쳐의 관계를 설명하는 설명의 용이성을 위해, "밑에(beneath)", "아래에(below)", "하부의(lower)", "위에(above)", "상부의(upper)" 및 등등과 같은 공간적으로 상대적인 용어가 본원에서 사용될 수 있다. 공간적으로 상대적인 용어는, 도면에서 묘사되는 방위 외에, 사용 또는 프로세스 단계에서 디바이스의 상이한 방위를 포괄하도록 의도된다. 장치는 다르게 배향될 수 있고(90 도 회전될 수 있거나 또는 다른 방위에 있을 수 있고), 본원에서 사용되는 공간적으로 상대적인 서술어(descriptor)는 마찬가지로 그에 따라 해석될 수 있다.
본원에서 사용될 때, 용어 "기판"은 후속하는 재료 레이어가 그 상에 추가되는 재료를 지칭한다. 기판은 "상단(top)" 표면 및 "저부(bottom)" 표면을 포함한다. 기판의 상단 표면은 통상적으로 반도체 디바이스가 형성되는 곳이며, 따라서, 반도체 디바이스는, 달리 언급되지 않는 한, 기판의 상단 측에서 형성된다. 저부 표면은 상단 표면과 반대쪽에 있으며, 따라서, 기판의 저부 표면은 기판의 상단 측과 반대쪽에 있다. 기판 그 자체는 패턴화될 수 있다. 기판의 상단 상에 추가되는 재료는 패턴화될 수 있거나 또는 패턴화되지 않은 상태로 남을 수 있다. 더구나, 기판은 실리콘, 게르마늄, 갈륨 비화물(gallium arsenide), 인듐 인화물(indium phosphide), 등등과 같은 다수의 반도체 재료를 포함할 수 있다. 대안적으로, 기판은 유리, 플라스틱, 또는 사파이어 웨이퍼와 같은 전기적으로 비전도성인 재료로부터 제조될 수 있다.
본원에서 사용될 때, 용어 "레이어"는 두께를 갖는 영역을 포함하는 재료 부분을 가리킨다. 레이어는 상단 측 및 저부 측 가지는데, 여기서 레이어의 저부 측은 기판에 상대적으로 가깝고 상단 측은 기판으로부터 상대적으로 떨어져 있다. 레이어는 아래에 있는 또는 위에 놓이는 구조물의 전체에 걸쳐 연장될 수 있거나 또는 아래에 있는 또는 위에 놓이는 구조물의 범위보다 더 작은 범위를 가질 수 있다. 게다가, 레이어는 연속 구조물의 두께보다 더 작은 두께를 갖는 균질한 또는 불균질한 연속 구조물의 영역일 수 있다. 예를 들면, 레이어는, 연속 구조물의 상단 표면과 저부 표면 사이의, 또는 상단 표면과 하단 표면에 있는 수평 평면의 임의의 세트 사이에서 위치될 수 있다. 레이어는 수평으로, 수직으로, 및/또는 점점 가늘어지는(tapered) 표면을 따라 연장될 수 있다. 기판은 레이어일 수 있고, 내부에 하나 이상의 레이어를 포함할 수 있고, 및/또는 그 상에, 그 위에, 및/또는 그 아래에 하나 이상의 레이어를 가질 수 있다. 레이어는 다수의 레이어를 포함할 수 있다. 예를 들면, 인터커넥트 레이어는 하나 이상의 전도성 및 콘택 레이어(콘택, 인터커넥트 라인, 및/또는 수직 인터커넥트 액세스(vertical interconnect access; VIA)가 형성됨) 및 하나 이상의 유전성 레이어를 포함할 수 있다.
본 개시에서, 설명의 용이성을 위해, 수직 방향을 따라 실질적으로 동일한 높이의 엘리먼트를 지칭하기 위해 "계층(tier)"이 사용된다. 예를 들면, 워드 라인 및 기저의(underlying) 게이트 유전성 레이어가 "한 계층(a tier)"으로 지칭될 수 있고, 워드 라인 및 기저의 절연성 레이어가 함께 "한 계층"으로 지칭될 수 있으며, 실질적으로 동일한 높이의 워드 라인은 "워드 라인의 한 계층" 또는 유사한 것으로 지칭될 수 있으며, 계속 그런 식일 수 있다.
본원에서 사용될 때, 용어 "명목상의(nominal)/명목상으로(nominally)"는, 소망되는 값을 초과하는 및/또는 소망되는 값 미만의 값의 범위와 함께, 프로세스 또는 제품의 설계 국면 동안 설정되는, 컴포넌트 또는 프로세스 단계에 대한 특성 또는 파라미터의 소망되는 값, 또는 목표 값을 가리킨다. 값의 범위는 제조 프로세스에서의 약간의 변동 또는 공차에 기인할 수 있다. 본원에서 사용될 때, 용어 "약(about)"은, 대상 반도체 디바이스와 관련되는 특정한 기술 노드에 기초하여 변할 수 있는 주어진 양의 값을 나타낸다. 특정한 기술 노드에 기초하여, 용어 "약"은, 예를 들면, 값의 10-30 %(예를 들면, 값의 ±10%, ±20%, 또는 ±30%) 내에서 변하는 주어진 양의 값을 나타낼 수 있다.
본 개시에서, 용어 "수평의/수평으로/횡방향의/횡방향으로(horizontal/horizontally/lateral/laterally)"는 기판의 측면 표면(lateral surface)에 명목상 평행한 것을 의미하고, 용어 "수직의" 또는 "수직으로"는 기판의 측면 표면에 명목상 수직인 것을 의미한다.
본원에서 사용될 때, 용어 "3D 메모리"는, 메모리 스트링(memory string)이 기판과 관련하여 수직 방향으로 연장되도록, 횡방향으로 배향된 기판 상에서 메모리 셀 트랜지스터의 수직으로 배향된 스트링(본원에서 "메모리 스트링", 예컨대 NAND 스트링으로 지칭됨)을 갖는 3차원(3D) 반도체 디바이스를 가리킨다.
도 1은, 몇몇 실시형태에 따른, 스토리지 시스템(10)을 구비하는 시스템(S1)의 블록도를 예시한다. 몇몇 실시형태에서, 시스템(S1)은 이동 전화, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿, 차량용 컴퓨터, 게이밍 콘솔, 프린터, 위치 결정 디바이스, 웨어러블 전자 디바이스, 스마트 센서, 가상 현실(virtual reality; VR) 디바이스, 증강 현실(augmented reality; AR) 디바이스, 또는 내부에 스토리지를 갖는 임의의 다른 적절한 전자 디바이스일 수 있다. 스토리지 시스템(10)(예를 들면, NAND 스토리지 시스템)은 메모리 컨트롤러(20) 및 하나 이상의 반도체 메모리 칩(25-1, 25-2, 25-3, ..., 25-n)을 포함할 수 있다. 각각의 반도체 메모리 칩(25)(이하 단지 "메모리 칩")은 NAND 칩(예를 들면, "플래시", "NAND 플래시" 또는 "NAND")일 수 있다. 스토리지 시스템(10)은 메모리 컨트롤러(20)를 통해 호스트(15)와 통신할 수 있는데, 여기서 메모리 컨트롤러(20)는 하나 이상의 메모리 채널(30-1, 30-2, 30-3, ..., 30-n)을 통해 하나 이상의 메모리 칩(25-1, 25-2, 25-3, ..., 25-n)에 연결될 수 있다. 몇몇 실시형태에서, 각각의 메모리 칩(25)은 하나 이상의 메모리 채널(30-1, 30-2, 30-3, ..., 30-n)을 통해 메모리 컨트롤러(20)에 의해 관리될 수 있다.
몇몇 실시형태에서, 호스트(15)는 전자 디바이스의 프로세서, 예컨대 중앙 프로세싱 유닛(central processing unit; CPU), 또는 시스템 온 칩(system-on-chip; SoC), 예컨대 애플리케이션 프로세서(application processor; AP)를 포함할 수 있다. 호스트(15)는 스토리지 시스템(10)에 저장될 데이터를 전송할 수 있고 및/또는 스토리지 시스템(10)에 저장되는 데이터를 검색할 수 있다.
몇몇 실시형태에서, 메모리 컨트롤러(20)는 호스트(15)로부터 수신되는 I/O 요청을 핸들링할 수 있고, 데이터 무결성 및 효율적인 저장을 보장할 수 있으며, 메모리 칩(25)을 관리할 수 있다. 이들 태스크를 수행하기 위해, 메모리 컨트롤러(20)는, 메모리 컨트롤러(20)의 하나 이상의 프로세서(22)(예를 들면, 마이크로컨트롤러 유닛, CPU)에 의해 실행될 수 있는 펌웨어(21)를 실행할 수 있다. 예를 들면, 메모리 컨트롤러(20)는 펌웨어(21)를 실행하여 논리적 주소(예를 들면, 호스트 데이터와 관련되는 호스트에 의해 활용되는 주소)를 메모리 칩(25)에서의 물리적 주소(예를 들면, 데이터가 저장되는 실제 위치)에 매핑할 수 있다. 컨트롤러(20)는 펌웨어(21)를 또한 실행하여 메모리 칩(25)에서의 결함이 있는 메모리 블록을 관리하는데, 여기서 펌웨어(21)는 논리적 주소를 상이한 물리적 주소로 재매핑할 수 있다, 즉, 데이터를 상이한 물리적 주소로 이동시킬 수 있다. 컨트롤러(20)는, 펌웨어(21)에 의해 사용되는 다양한 메타데이터를 저장하기 위해 사용될 수 있는 하나 이상의 메모리(23)(예를 들면, DRAM, SRAM, EPROM, 등등)를 또한 포함할 수 있다. 몇몇 실시형태에서, 메모리 컨트롤러(20)는 에러 정정 코드(error correction code; ECC) 엔진(29)을 통해 에러 복구를 또한 수행할 수 있다. ECC는 각각의 메모리 칩(25) 내에서 발생하는 원시 비트 에러를 검출하고 수정하기 위해 사용된다.
몇몇 실시형태에서, 메모리 채널(30)은 데이터를 제공할 수 있고 데이터 버스를 통해 메모리 컨트롤러(20)와 각각의 메모리 칩(25) 사이의 통신을 제어할 수 있다. 메모리 컨트롤러(20)는 칩 인에이블 신호(chip enable signal)에 따라 메모리 칩(25) 중 하나를 선택할 수 있다.
몇몇 실시형태에서, 도 1의 각각의 메모리 칩(25)은 하나 이상의 메모리 다이(100)를 포함할 수 있는데, 여기서 각각의 메모리 다이는 3D NAND 메모리일 수 있다.
몇몇 실시형태에서, 메모리 컨트롤러(20) 및 하나 이상의 메모리 칩(25)은 다양한 타입의 스토리지 디바이스에 통합될 수 있는데, 예를 들면, 동일한 패키지, 예컨대 범용 플래시 스토리지(universal Flash storage; UFS) 패키지 또는 eMMC 패키지에 포함될 수 있다. 즉, 스토리지 시스템(10)은 상이한 타입의 최종 전자 제품으로 구현되어 패키징될 수 있다. 도 2a에서 도시되는 바와 같은 하나의 예에서, 메모리 컨트롤러(20) 및 단일의 메모리 칩(25)은 메모리 카드(26)에 통합될 수 있다. 메모리 카드(26)는 PC 카드(PCMCIA, personal computer memory card international association; 퍼스널 컴퓨터 메모리 카드 국제 협회), CF 카드, 스마트 미디어(smart media; SM) 카드, 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMC마이크로), SD 카드(SD, 미니SD, 마이크로SD, SDHC), UFS, 등등을 포함할 수 있다. 메모리 카드(26)는 메모리 카드(26)를 호스트(예를 들면, 도 1의 호스트(15))와 커플링하는 메모리 카드 커넥터(24)를 더 포함할 수 있다. 도 2b에서 도시되는 바와 같은 다른 예에서, 메모리 컨트롤러(20) 및 다중 메모리 칩(25)은 솔리드 스테이트 드라이브(solid state drive; SSD)(27)에 통합될 수 있다. SSD(27)는 SSD(27)를 호스트(예를 들면, 도 1의 호스트(15))와 커플링하는 SSD 커넥터(28)를 더 포함할 수 있다.
도 3은, 몇몇 실시형태에 따른, 메모리 다이(100)의 탑 다운 뷰(top-down view)를 예시한다. 도 3에서 도시되는 예시적인 구성은 비제한적 예로서 주어지며 메모리는 확장 가능하다는 것이 인식되어야 한다. 몇몇 실시형태에서, 메모리 다이(100)는, 그 각각이 복수의 메모리 블록(103)을 포함할 수 있는 하나 이상의 메모리 평면(101)을 포함할 수 있다. 동일하고 동시적인 동작은 각각의 메모리 평면(101)에서 발생할 수 있다. 사이즈가 메가바이트(MB)일 수 있는 메모리 블록(103)은 소거 동작을 실행하기 위한 가장 작은 사이즈이다. 메모리 다이(100)는, 예를 들면, 네 개의 메모리 평면(101)을 포함할 수 있다. 각각의 메모리 평면(101)은, 예를 들면, 여섯 개의 메모리 블록(103)을 포함할 수 있다. 각각의 메모리 블록(103)은 복수의 메모리 셀을 포함할 수 있는데, 여기서 각각의 메모리 셀은 비트 라인 및 워드 라인과 같은 상호 접속을 통해 주소 지정될 수 있다. 비트 라인 및 워드 라인은 수직으로(예를 들면, 각각, 행과 열로) 배치되어, 금속 라인의 어레이를 형성할 수 있다. 비트 라인 및 워드 라인의 방향은 도 3에서 "BL"과 "WL"로서 라벨링된다. 본 개시에서, 메모리 블록(103)은 "메모리 어레이" 또는 "어레이"로서 또한 지칭된다. 메모리 어레이는 저장 기능을 수행하는 메모리 디바이스의 핵심 영역이다.
몇몇 실시형태에서, 메모리 다이(100)는 메모리 평면(101)을 둘러싸는 영역인 주변장치 영역(105)을 또한 포함할 수 있다. 주변장치 영역(105)은 메모리 어레이의 기능을 지원하기 위한 많은 디지털, 아날로그, 및/또는 혼합 신호 회로, 예를 들면, 페이지 버퍼, 행 및 열 디코더 및 감지 증폭기를 포함할 수 있다. 주변 회로는, 기술 분야에서 통상의 기술을 가진 자에게 명백할 바와 같이, 능동 및/또는 수동 반도체 디바이스, 예컨대 트랜지스터, 다이오드, 커패시터, 저항기, 등등을 사용한다.
몇몇 실시형태에서, 도 3에서 예시되는 메모리 다이(100) 내의 메모리 평면(101)의 배열 및 각각의 메모리 평면(101) 내의 메모리 블록(103)의 배열은, 본 개시의 범위를 제한하지 않는 예로서 단지 사용된다.
도 4는, 몇몇 실시형태에 따른, 메모리 다이(100)의 개략도를 예시한다. 몇몇 실시형태에서, 메모리 다이(100)는 하나 이상의 메모리 블록(103)(예를 들면, 103-1, 103-2, 103-3)을 포함할 수 있다. 각각의 메모리 블록(103)은 복수의 메모리 스트링(212)을 포함할 수 있다. 각각의 메모리 스트링(212)은 복수의 메모리 셀(340)을 포함한다. 동일한 워드 라인을 공유하는 메모리 셀(340)은 메모리 페이지(432)를 형성한다. 메모리 스트링(212)은 각각의 단부에서 적어도 하나의 전계 효과 트랜지스터(예를 들면, MOSFET)를 또한 포함할 수 있는데, 이것은, 각각, 하위 선택 게이트(lower select gate; LSG)(332) 및 상단 선택 게이트(top select gate; TSG)(334)에 의해 제어된다. 상단 선택 트랜지스터(334-T)의 드레인 단자는 비트 라인(341)에 연결될 수 있고, 하위 선택 트랜지스터(332-T)의 소스 단자는 어레이 공통 소스(array common source; ACS)(430)에 연결될 수 있다. ACS(430)는 전체 메모리 블록에서 메모리 스트링(212)에 의해 공유될 수 있으며, 공통 소스 라인으로서 또한 지칭된다.
몇몇 실시형태에서, 메모리 다이(100)는, 메모리 블록(103)의 기능을 지원하기 위한 많은 디지털, 아날로그, 및/또는 혼합 신호 회로, 예를 들면, 페이지 버퍼/감지 증폭기(50), 행 디코더/워드 라인 드라이버(40), 열 디코더/비트 라인 드라이버(52), 제어 회로(70), 전압 생성기(65) 및 입력/출력 버퍼(55)를 포함할 수 있는 주변 회로를 또한 포함할 수 있다. 이들 회로는, 기술 분야에서 통상의 기술을 가진 자에게 명백할 바와 같이, 능동 및/또는 수동 반도체 디바이스, 예컨대 트랜지스터, 다이오드, 커패시터, 저항기, 등등을 포함할 수 있다.
몇몇 실시형태에서, 메모리 블록(103)은 워드 라인(word line; "WL")(333), 하위 선택 게이트("LSG")(332) 및 상단 선택 게이트("TSG")(334)를 통해 행 디코더/워드 라인 드라이버(40)와 커플링될 수 있다. 메모리 블록(103)은 비트 라인(bit line; "BL")(341)을 통해 페이지 버퍼/감지 증폭기(50)와 커플링될 수 있다. 행 디코더/워드 라인 드라이버(40)는 제어 회로(70)에 의해 제공되는 X 경로 제어 신호에 응답하여 메모리 다이(100) 상의 메모리 블록(103) 중 하나를 선택할 수 있다. 행 디코더/워드 라인 드라이버(40)는 X 경로 제어 신호에 따라 전압 생성기(65)로부터 제공되는 전압을 워드 라인에 전달할 수 있다. 판독 및 프로그램 동작 동안, 행 디코더/워드 라인 드라이버(40)는 제어 회로(70)로부터 수신되는 X 경로 제어 신호에 따라 판독 전압(Vread) 및 프로그램 전압(Vpgm)을 선택된 워드 라인으로 그리고 통과 전압(Vpass)을 선택되지 않은 워드 라인으로 전달할 수 있다.
몇몇 실시형태에서, 열 디코더/비트 라인 드라이버(52)는 제어 회로(70)로부터 수신되는 Y 경로 제어 신호에 따라 금지 전압(Vinhibit)을 선택되지 않은 비트 라인에 전달할 수 있고 선택된 비트 라인을 접지에 연결할 수 있다. 다시 말하면, 열 디코더/비트 라인 드라이버(52)는 제어 회로(70)로부터의 Y 경로 제어 신호에 따라 하나 이상의 메모리 스트링(212)을 선택하도록 또는 선택 해제하도록 구성될 수 있다. 페이지 버퍼/감지 증폭기(50)는 제어 회로(70)로부터의 제어 신호 Y 경로 제어에 따라 데이터를 메모리 블록(103)으로부터 판독하도록 그리고 메모리 블록(103)으로 프로그래밍하도록(기록하도록) 구성될 수 있다. 예를 들면, 페이지 버퍼/감지 증폭기(50)는 프로그래밍될 데이터의 하나의 페이지를 하나의 메모리 페이지(432)에 저장할 수 있다. 다른 예에서, 페이지 버퍼/감지 증폭기(50)는, 데이터가 각각의 메모리 셀(340)에 적절하게 프로그래밍되었다는 것을 보장하기 위해 검증 동작을 수행할 수 있다. 여전히 다른 예에서, 판독 동작 동안, 페이지 버퍼/감지 증폭기(50)는, 메모리 셀(340)의 로직 상태(즉, 데이터)를 반영하는 비트 라인(341)을 통해 흐르는 전류를 감지할 수 있고 작은 신호를 측정 가능한 배율로 증폭할 수 있다.
몇몇 실시형태에서, 입력/출력 버퍼(55)는 I/O 데이터를 페이지 버퍼/감지 증폭기(50)로부터/로 전송할 수 있을 뿐만 아니라, 주소(ADDR) 또는 커맨드(CMD)를 제어 회로(70)로 전송할 수 있다. 몇몇 실시형태에서, 입력/출력 버퍼(55)는 (도 1의) 메모리 컨트롤러(20)와 메모리 칩(25) 상의 메모리 다이(100) 사이의 인터페이스로서 기능할 수 있다.
몇몇 실시형태에서, 제어 회로(70)는 입력/출력 버퍼(55)에 의해 전송되는 커맨드(CMD)에 응답하여 페이지 버퍼/감지 증폭기(50) 및 행 디코더/워드 라인 드라이버(40)를 제어할 수 있다. 프로그램 동작 동안, 제어 회로(70)는 선택된 메모리 셀을 프로그래밍하기 위해 행 디코더/워드 라인 드라이버(40) 및 페이지 버퍼/감지 증폭기(50)를 제어할 수 있다. 판독 동작 동안, 제어 회로(70)는 선택된 메모리 셀을 판독하기 위해 행 디코더/워드 라인 드라이버(40) 및 페이지 버퍼/감지 증폭기(50)를 제어할 수 있다. X 경로 제어 신호 및 Y 경로 제어 신호는 메모리 블록(103)에서 선택된 메모리 셀의 위치를 가리키기 위해 사용될 수 있는 행 주소(X-ADDR) 및 열 주소(Y-ADDR)를 포함한다. 행 주소(X-ADDR)는, 메모리 페이지(432), 메모리 블록(103), 및 (도 3의) 메모리 평면(101)을 각각 식별하기 위해 페이지 인덱스(PD), 블록 인덱스(BD) 및 평면 인덱스(PL)를 포함할 수 있다. 열 주소(Y-ADDR)는 메모리 페이지(432)의 데이터에서 바이트 또는 워드를 식별할 수 있다.
몇몇 실시형태에서, 전압 생성기(65)는 제어 회로(70)의 제어 하에서 워드 라인 및 비트 라인에 공급될 전압을 생성할 수 있다. 전압 생성기(65)에 의해 생성되는 전압은 판독 전압(Vread), 프로그램 전압(Vpgm), 통과 전압(Vpass), 금지 전압(Vinhibit), 등등을 포함한다.
도 1, 도 2a-2b 및 도 3-4에서 스토리지 시스템(10) 및 메모리 다이(100) 내의 전자 컴포넌트의 배열은 비제한적 예로서 도시된다는 것을 유의한다. 몇몇 실시형태에서, 스토리지 시스템(10) 및 메모리 다이(100)는 다른 레이아웃을 가질 수 있고 추가적인 컴포넌트를 포함할 수 있다. 도 4에서 도시되는 메모리 다이(100) 상의 컴포넌트(예를 들면, 제어 회로(70), I/O 버퍼(55))는, 스토리지 시스템(10)의 독립형 전기 컴포넌트로서, 메모리 다이(100)에서 또한 이동될 수 있다. 도 4에서 도시되는 메모리 다이(100) 상의 컴포넌트(예를 들면, 제어 회로(70), I/O 버퍼(55))는 스토리지 시스템(10)의 다른 컴포넌트로 또한 이동될 수 있는데, 예를 들면, 제어 회로(70)의 일부는 메모리 컨트롤러(20)와 결합될 수 있고 그 반대의 경우도 가능하다.
도 5는, 몇몇 실시형태에 따른, 3D 메모리 구조물(500)의 사시도를 예시한다. 몇몇 실시형태에서, 메모리 다이(100)는 3D NAND 메모리일 수 있고, 3D 메모리 구조물(500)은, 예를 들면, 도 3의 영역(108) 내의, 메모리 다이(100)의 일부일 수 있다. 3D 메모리 구조물(500)은 계단 영역(staircase region; 210) 및 채널 구조물 영역(211)을 포함할 수 있다. 채널 구조물 영역(211)은, 복수의 적층된 메모리 셀(340)을 각각 포함하는 복수의 메모리 스트링(212)을 포함할 수 있다. 계단 영역(210)은 계단 구조물을 포함할 수 있다.
몇몇 실시형태에서, 3D 메모리 구조물(500)은 기판(330), 기판(330) 위의 절연성 막(331), 절연성 막(331) 위의 하위 선택 게이트(LSG)(332)의 계층, 및 LSG(332)의 상단 상에 적층되어 교대하는 전도성 및 유전성 레이어의 막 스택(335)을 형성하는, "워드 라인(WL)"으로 또한 지칭되는, 제어 게이트(333)의 복수의 계층을 포함할 수 있다. 제어 게이트의 계층에 인접한 유전성 레이어는 명확화를 위해 도 5에서 도시되지 않는다.
몇몇 실시형태에서, 각각의 계층의 제어 게이트는 막 스택(335)을 관통하는 슬릿 구조물(216-1 및 216-2)에 의해 분리된다. 3D 메모리 구조물(500)은 제어 게이트(333)의 스택 위의 상단 선택 게이트(TSG)(334)의 계층을 또한 포함할 수 있다. TSG(334), 제어 게이트(333) 및 LSG(332)의 스택은 "게이트 전극"으로서 또한 지칭될 수 있다. 3D 메모리 구조물(500)은 인접한 LSG(332) 사이의 기판(330)의 일부에서 도핑된 소스 라인 영역(344)을 더 포함할 수 있다. 3D 메모리 구조물(500)의 메모리 스트링(212) 각각은 절연성 막(331) 및 교대하는 전도성 및 유전성 레이어의 막 스택(335)을 통해 연장되는 채널 홀(336)을 포함할 수 있다. 메모리 스트링(212)은 채널 홀(336)의 측벽 상의 메모리 막(337), 메모리 막(337) 위의 채널 레이어(338), 및 채널 레이어(338)에 의해 둘러싸이는 코어 충전 막(339)을 또한 포함할 수 있다. 메모리 셀(340)(예를 들면, 340-1, 340-2, 340-3)은 제어 게이트(333)(예를 들면, 333-1, 333-2, 333-3)와 메모리 스트링(212)의 교차점에서 형성될 수 있다. 채널 레이어(338)의 일부는 각각의 제어 게이트에 응답할 수 있고 메모리 셀의 채널(338)로서 또한 지칭된다. 3D 메모리 구조물(500)은 TSG(334) 위에서 메모리 스트링(212)과 연결되는 복수의 비트 라인(bit line; BL)(341)을 더 포함한다. 3D 메모리 구조물(500)은 복수의 콘택 구조물(214)을 통해 게이트 전극과 연결되는 복수의 금속 인터커넥트 라인(343)을 또한 포함할 수 있다. 막 스택(335)의 에지는 게이트 전극의 각각의 계층에 대한 전기적 연결을 허용하도록 계단의 형상으로 구성된다.
도 5에서, 예시적 목적을 위해, 세 개의 계층의 제어 케이트(333-1, 333-2, 및 333-3)가 하나의 계층의 TSG(334) 및 하나의 계층의 LSG(332)와 함께 도시되어 있다. 이 예에서, 각각의 메모리 스트링(212)은 제어 게이트(333-1, 333-2 및 333-3)에 각각 대응하는 세 개의 메모리 셀(340-1, 340-2 및 340-3)을 포함할 수 있다. 몇몇 실시형태에서, 제어 게이트의 수 및 메모리 셀의 수는 저장 용량을 증가시키기 위해 세 개보다 더 많을 수 있다. 3D 메모리 구조물(500)은 다른 구조물, 예를 들면, TSG 컷, 공통 소스 콘택(즉, 어레이 공통 소스) 및 더미 메모리 스트링을 또한 포함할 수 있다. 간략화를 위해 이들 구조물은 도 5에서 도시되지 않는다. 도 5에서 도시되는 3D 메모리 구조물(500)은, 본 개시의 범위를 제한하지 않는 예로서만 사용되며, 임의의 다른 적절한 3D 메모리 구조물이 또한 적응될 수 있다는 것을 유의한다.
도 4를 다시 참조하면, 몇몇 실시형태에서, 메모리 블록(103)은 플로팅 게이트 기술에 기초하여 형성될 수 있다. 몇몇 실시형태에서, 메모리 블록(103)은 전하 포획 기술(charge trapping technology)에 기초하여 형성될 수 있다. 전하 포획에 기초한 NAND 플래시 메모리는 높은 저장 밀도 및 높은 고유의 신뢰성을 제공할 수 있다. 로직 상태("상태", 예를 들면, 메모리 셀(340)의 임계 전압(Vth)) 형태의 저장 데이터는 메모리 셀(340)의 메모리 막(337)에 포획되는 전하 캐리어의 수에 의존한다.
몇몇 실시형태에서, NAND 플래시 메모리에서, 메모리 페이지(432)에 대한 판독 동작 및 기록 동작(프로그램 동작으로서 또한 지칭됨)이 수행될 수 있고, 메모리 블록(103)에 대한 소거 동작이 수행될 수 있다.
몇몇 실시형태에서, NAND 메모리에서, 메모리 셀(340)은 소거된 상태(ER) 또는 프로그래밍된 상태(P1)에 있을 수 있다. 초기에, 메모리 블록(103)의 메모리 셀(340)은, 메모리 셀(340)의 메모리 막의 포획된 전하 캐리어가 제거될 수 있도록, 제어 게이트(333)와 채널(338) 사이에서 음의 전압 차이를 구현하는 것에 의해 로직 "1"로서 소거된 상태(ER)로 재설정될 수 있다. 예를 들면, 음의 전압 차이는 메모리 셀(340)의 제어 게이트(333)를 접지로 설정하는 것, 및 높은 양의 전압(소거 전압(Verase))을 ACS(430)에 인가하는 것에 의해 유도될 수 있다. 소거된 상태(ER)("상태(ER)")에서, 메모리 셀(340)의 임계 전압(Vth)은 가장 낮은 값으로 재설정될 수 있다.
몇몇 실시형태에서, 프로그래밍(즉, 기록) 동안, 예를 들면, 제어 게이트(333) 상에서 프로그램 전압(Vpgm)(예를 들면, 10 V와 20 V 사이의 양의 전압 펄스)을 인가하는 것, 및 대응하는 비트 라인(341)을 접지시키는 것에 의해, 제어 게이트(333)와 채널(338) 사이의 양의 전압 차이가 확립될 수 있다. 결과적으로, 전하 캐리어(예를 들면, 전자)가 메모리 셀(340)의 메모리 막에 주입될 수 있고, 그에 의해, 메모리 셀(340)의 임계 전압(Vth)을 증가시킬 수 있다. 따라서, 메모리 셀(340)은 프로그래밍된 상태(P1)("상태(P1)" 또는 로직 "0")으로 프로그래밍될 수 있다.
몇몇 실시형태에서, 메모리 셀의 상태(예를 들면, 상태(ER) 또는 상태(P1))는 메모리 셀의 임계 전압(Vth)을 측정 또는 감지하는 것에 의해 결정될 수 있다. 판독 동작 동안, 메모리 셀의 제어 게이트(333) 상에서 판독 전압(Vread)이 인가될 수 있고 메모리 셀을 통해 흐르는 전류가 비트 라인(341)에서 측정될 수 있다. 선택되지 않은 메모리 셀을 온 상태로 전환하기 위해 선택되지 않은 워드 라인 상에서 통과 전압(Vpass)이 인가될 수 있다.
몇몇 실시형태에서, NAND 플래시 메모리는 단일 레벨 셀(SLC) 모드에서 동작하도록 구성될 수 있다. 저장 용량을 증가시키기 위해, NAND 플래시 메모리는 다중 레벨 셀(MLC) 모드, 트리플 레벨 셀(TLC) 모드, 쿼드 레벨 셀(QLC) 모드, 또는 이들 모드의 임의의 조합에서 동작하도록 또한 구성될 수 있다. SLC 모드에서, 메모리 셀은 1 비트를 저장하고 로직 {1 및 0}인 두 개의 로직 상태("상태"), 즉 상태(ER 및 P1)를 갖는다. MLC 모드에서, 메모리 셀은 2 비트를 저장하고, 로직 {11, 10, 01, 및 00}인 네 개의 로직 상태, 즉 상태(ER, P1, P2, P3)를 갖는다. TLC 모드에서, 메모리 셀은 3 비트를 저장하고, 로직 {111, 110, 101, 100, 011, 010, 001, 000}인 여덟 개의 로직 상태, 즉, 상태(ER) 및 상태(P1-P7)를 갖는다. QLC 모드에서, 메모리 셀은 4 비트를 저장하고 16 개의 로직 상태를 갖는다. 스토리지 시스템(10)의 메모리 컨트롤러(20)(도 1 참조)는 호스트(15)로부터 수신되는 데이터를 메모리 다이(100) 상의 메모리 셀의 대응하는 로직 상태로 변환할 수 있고, 그 반대도 가능하다.
도 6은, 몇몇 실시형태에 따른, 트리플 레벨 셀(TLC) 모드에서 프로그래밍되는 NAND 플래시 메모리의 임계 전압(Vth) 분포를 예시한다. 몇몇 실시형태에서, 메모리 셀의 각각의 상태는 임계 전압(Vth)의 특정한 범위에 대응할 수 있는데, 여기서 각각의 상태의 임계 전압(Vth) 분포는 확률 밀도에 의해 표현될 수 있다. 몇몇 실시형태에서, 여덟 개의 TLC 상태는, 프로그래밍 전압(Vpgm)이 스텝 펄스(Vstep)를 추가하는 것에 의해 증분적으로 증가될 수 있는 증분적 스텝 펄스 프로그래밍(incremental step pulse programming; ISPP) 방식을 사용하는 것에 의해 프로그래밍될 수 있다. 따라서, 더 낮은 임계 전압을 갖는 상태(P1)로부터 가장 높은 임계 전압을 갖는 상태(P7)까지 여덟 개의 TLC 상태가 프로그래밍될 수 있다.
몇몇 실시형태에서, 프로그래밍 이후, 여덟 개의 TLC 상태(ER 및 P1-P7)는 검증 프로세스 동안 하나 이상의 판독 기준 전압(VR1-VR7)을 사용하는 것에 의해 검증될 수 있다. 판독 기준 전압(VR1-VR7) 중 하나 이상을 목표 메모리 셀의 제어 게이트에 인가하는 것에 의해, 메모리 셀의 임계 전압(Vth)의 범위가 결정될 수 있다. 예를 들면, 메모리 셀이 상태(ER)에 있는지를 검증하기 위해, 판독 기준 전압(VR1)이 사용될 수 있다. 목표 메모리 셀이 상태(ER)에 있는 경우, 목표 메모리 셀의 임계 전압(Vth)은 판독 기준 전압(VR1)보다 더 낮다. 목표 메모리 셀은 온 상태로 전환될 수 있고 채널에서 전도성 경로를 형성할 수 있다. 목표 메모리 셀이 상태(P1-P7) 중 임의의 하나에 대응하는 경우, 목표 메모리 셀의 임계 전압(Vth)은 판독 기준 전압(VR1)보다 더 높다. 그에 의해, 목표 메모리 셀은 오프 상태로 전환된다. 페이지 버퍼/감지 증폭기(50)를 통해, 대응하는 비트 라인에서 목표 메모리 셀을 통과하는 전류를 측정 또는 감지하는 것에 의해, 임계 전압(Vth) 또는 목표 메모리 셀의 상태가 검증될 수 있다.
몇몇 실시형태에서, 상기에서 설명되는 바와 같이, SLC 모드에서 저장되는 두 개의 상태(ER 및 P1)를 결정하기 위해, 단지 판독 기준 전압(VR1)에만 의존하는 것이 충분하다. MLC 모드에서 네 개의 상태(ER 및 P1-P3)를 결정하기 위해, 판독 기준 전압(VR1, VR2 및 VR3)이 사용될 수 있다. TLC 모드에 대한 여덟 개의 상태(ER 및 P1-P7)를 결정하기 위해, 판독 기준 전압(VR1-VR7)이 사용될 수 있다. 예를 들면, TLC 모드에서, 상태(ER)의 임계 전압은 VR1 미만이고, 상태(P7)의 임계 전압은 VR7을 초과하는데, 여기서 상태(P1)의 임계 전압은 VR1과 VR2 사이에 있다. 상태(P2-P6)는 유사하게 결정될 수 있다.
도 7은, 몇몇 실시형태에 따른, 메모리 셀을 목표 로직 상태(예를 들면, 상태(P1))로 프로그래밍하기 위한 프로세스 플로우(700)를 예시한다. 프로세스 플로우(700)는 망라적이지 않다는 것 및 예시된 동작 단계 중 임의의 것 이전에, 이후에, 또는 그 사이에서 다른 동작 단계가 역시 수행될 수 있다는 것이 인식되어야 한다. 몇몇 실시형태에서, 프로세스 플로우(700)의 몇몇 동작 단계는 생략될 수 있거나 또는 다른 동작 단계가 포함될 수 있는데, 이들은 간략화를 위해 여기서는 설명되지 않는다. 몇몇 실시형태에서, 프로세스 플로우(700)의 동작 단계는 상이한 순서로 수행될 수 있고 및/또는 변경될 수 있다.
몇몇 실시형태에서, 동작 단계(S705)에서, 프로그램 루프 카운트(program loop count; PLC)는 재설정될 수 있는데, 예를 들면, PLC = 0일 수 있다. 동작 단계(S705)는, 메모리 컨트롤러(20)(도 1)가 메모리 다이(100) 상에 메모리 셀을 프로그래밍하기 위해 커맨드를 메모리 다이(100)로 전송할 때 시작될 수 있다.
동작 단계(S710)에서, 프로그래밍 전압(Vpgm)을 메모리 셀의 워드 라인에 인가하는 것에 의해 메모리 셀이 프로그래밍된다. 그리고 PLC는 동작 단계(S715)에서 1만큼 증가될 수 있다, 즉, PLC = PLC + 1이다. 프로그래밍 전압(Vpgm)은 메모리 셀의 목표 로직 상태에 따라 선택될 수 있는데, 여기서 목표 로직 상태는 메모리 컨트롤러(20)에 의해 전송되는 프로그래밍 데이터에 의존한다.
동작 단계(S720)에서, 메모리 셀의 워드 라인 상에서 제1 판독 기준 전압을 인가하는 것 및 대응하는 비트 라인에서 메모리 셀을 통해 흐르는 전류를 측정하는 것에 의해, 메모리 셀의 임계 전압(Vth)이 제1 판독 기준 전압(프로그램 검증 레벨로서 또한 지칭됨)과 비교될 수 있다. 예를 들면, 메모리 셀이 P1의 목표 로직 상태로 프로그래밍되어야 하는 경우, 제1 판독 기준 전압(VR1)이 사용될 수 있는데(도 6 참조), 그 이유는, 상태(P1)의 경우, 메모리 셀의 임계 전압이 판독 기준 전압(VR1과 VR2) 사이에 있어야 한다는 것이 통과 조건이기 때문이다.
동작 단계(S725)에서, 메모리 셀의 임계 전압(Vth)은, 그것이 제1 판독 기준 전압(VR1)보다 더 높은지 또는 더 낮은지의 여부에 대해 결정된다. 앞서 논의되는 바와 같이, 메모리 셀의 임계 전압(Vth)이 제1 판독 기준 전압(VR1)보다 더 낮은 경우, 메모리 셀은 온 상태로 전환되어, 채널에서 전도성 경로를 형성할 수 있다. 페이지 버퍼/감지 증폭기(50)(도 4)에 의해 대응하는 비트 라인에서 측정되는 전류는 상대적으로 더 높다. 메모리 셀의 임계 전압(Vth)이 제1 판독 기준 전압(VR1)보다 더 높은 경우, 메모리 셀은 오프 상태로 전환되고 페이지 버퍼/감지 증폭기(50)에 의해 대응하는 비트라인에서 측정되는 전류는 상대적으로 더 낮다.
메모리 셀의 임계 전압(Vth)이 제1 판독 기준 전압(VR1)보다 더 낮은 것으로 결정되는 경우, 프로세스 플로우(700)는 동작 단계(S730)로 진행하는데, 여기서 PLC는, 그것이 최대 값(PLCmax)보다 더 작은지에 대해 체크된다.
몇몇 실시형태에서, 최대 값(PLCmax)은 사전 결정된 값, 예를 들면, PLCmax = 25일 수 있다. 몇몇 실시형태에서, 최대 값(PLCmax)은 사전 스크리닝 프로그래밍 테스트 동안 상이한 메모리 다이에 걸쳐 선택되는 메모리 셀의 세트의 PLC로부터 결정될 수 있다.
PLC가 PLCmax보다 더 작은 경우, 동작 단계(S735)에서, 프로그래밍 전압(Vpgm) = Vpgm + ΔV가 되도록 프로그래밍 전압(Vpgm)은 ΔV의 양만큼 증가될 수 있다. 그리고 메모리 셀은 동작 단계(S710)에서 증가된 프로그래밍 전압(Vpgm)을 가지고 다시 프로그래밍될 수 있다.
동작 단계(S710-S735)는 메모리 셀에 대해 소망되는 목표 임계 전압(Vth)이 도달될 때까지 반복될 수 있다. 그러나, 동작 단계(S730)에서, PLCmax가 도달되었지만 그러나 메모리 셀이 목표 로직 상태로 여전히 프로그래밍되지 않은 경우, 프로그래밍 실패를 갖는 메모리 셀이 단계(S740)에서 식별될 수 있다.
동작 단계(S725)에서, 메모리 셀의 임계 전압(Vth)이 제1 판독 기준 전압(VR1)보다 더 높은 것으로 결정되는 경우, 동작 단계(S745)에서 제2 판독 기준 전압과 비교될 수 있다. 메모리 셀이 P1의 목표 로직 상태로 프로그래밍되는 경우, 제2 판독 기준 전압(VR2)이 사용될 수 있다(도 6 참조). 동작 단계(S750)에서 메모리 셀의 임계 전압(Vth)이 제2 판독 기준 전압(VR2)보다 더 낮은 것으로 결정되는 경우, 동작 단계(S755)에서 메모리 셀은 프로그래밍 통과(즉, 목표 로직 상태로 프로그램됨)로서 식별될 수 있다. 상태(ER 및 P1)만을 갖는 SLC 모드에서, 제2 기준 전압은 생략될 수 있다.
그러나, 동작 단계(S750)에서 메모리 셀의 임계 전압(Vth)이 제2 판독 기준 전압(VR2)보다 더 높은 것으로 결정되는 경우, 프로그래밍 실패를 갖는 메모리 셀이 단계(S740)에서 식별될 수 있는데, 그 이유는, 프로그래밍 동안 메모리 셀의 임계 전압이 자신의 제어 게이트(즉, 대응하는 워드 라인) 상에서 프로그래밍 전압(Vpgm)을 인가하는 것에 의해 증가될 수 있지만, 그러나 감소될 수 없기 때문이다. 3D NAND 메모리에서, 메모리 셀은, 메모리 셀이 소거되고 상태(ER)로 재설정된 이후, 더 낮은 임계 전압을 갖는 로직 상태로 재프로그래밍될 수 있다. 소거 동작은 메모리 블록의 모든 메모리 셀을 상태(ER)로 재설정하는데, 그 이유는, 동일한 메모리 블록의 메모리 셀이 동일한 어레이 공통 소스(430)를 공유하기 때문이다.
다시 도 4를 참조하면, 몇몇 실시형태에서, 메모리 블록(예를 들면, 메모리 블록(103))이 3D NAND 메모리에서 가장 작은 소거 가능한 단위이지만, 메모리 페이지(예를 들면, 메모리 페이지(432))는 판독 및 프로그램 동작을 위한 가장 작은 주소 지정 가능 단위이다. 판독 및 프로그램 동작 동안, 선택된 메모리 블록의 메모리 페이지에 있는 데이터(즉, 로직 상태)는, 제어 회로(70)에 의해 수신되는 주소(ADDR)에 포함되는 페이지 인덱스(PD) 및 블록 인덱스(BD)에 따라 판독 또는 프로그래밍될 수 있다. 목표 로직 상태(즉, 목표 임계 전압)에 도달한 메모리 셀은 대응하는 비트 라인(341) 상에서 금지 전압(Vinhibit)를 인가하는 것에 의해 추가적인 프로그래밍이 금지될 수 있다.
상기에서, 3D NAND 메모리의 구조물 및 그 기능에 관한 실시형태가 설명되었다. 몇몇 실시형태에서, 프로그래밍뿐만 아니라, 후속하는 소거 및 재프로그래밍을 위한 신뢰할 수 있는 메모리 셀을 제공하는 것이 바람직하다. 도 7을 참조하는 방법은 프로그래밍 동작 이후 메모리 셀을 검증하는 방법의 예를 도시하였다. 프로세스 플로우(700)의 끝에서, 메모리 셀은 검증 프로세스를 통과할 수 있거나 또는 실패할 수 있다. 기술 분야의 숙련된 자는, 일단 메모리 셀에 대한 프로그래밍 및 검증 동작이 종료되면(통과 또는 실패), 프로그래밍 및 검증 동작이 다음 번 메모리 셀로 계속 이동할 수 있다는 것을 인식할 것이다(즉, 프로세스 플로우(700)는 다음 번 메모리 셀에서 다시 시작될 수 있다). 몇몇 실시형태에서, 다음 번 메모리 셀로 계속 이동하는 것은, 프로세스 플로우(700)를 반복하는 알고리즘이 실수로 동일한 메모리 셀에 대해 반복되지 않도록, 완성된 메모리 셀을 "마스킹"하는 것을 포함할 수 있다. 메모리 셀을 마스킹하는 것(또는 메모리 비트를 마스킹하는 것)은, 일시적으로 또는 영구적으로, 메모리 셀을 마킹하는 것 또는 플래그를 지정하는 것으로 설명될 수 있고, 그 결과, 미래의 동작은 플래그에 기초하여 조정될 수 있다(예를 들면, 스킵될 수 있음). 하나의 예에서, 수정 가능하지 않은 결함이 발견되는 경우, 비트는 영구적으로 마스킹될 수 있다. NAND 컨트롤러는 결함이 있는 메모리 셀의 어떠한 추가적인 사용도 허용하지 않을 수 있다. 마스킹의 하나의 예는 도 4 및 대응하는 비트 라인(341) 상에서의 금지 전압(Vinhibit)의 사용을 참조하여 상기에서 설명되었다.
몇몇 실시형태에서, 프로세스 플로우(700)는 프로그래밍(즉, 메모리 셀의 상태를 ER로부터 더 높은 상태, 예컨대 P1로 변경하는 동작)을 수신할 메모리 셀에 대해 충분할 수 있다. 프로세스 플로우(700)에 따르면, S720에서 시작하는 검증 프로세스는 S710의 프로그래밍 단계를 따를 수 있다(예를 들면, 메모리 셀을 프로그래밍 전압으로 프로그래밍하고, 그 다음, 정확성을 검증함). 그러나, 상태(ER)로 남아 있을 메모리 셀은 어떠한가? 예시적인 시나리오에서, 8 비트 스트링이 메모리 페이지(432)(도 4) 중 하나에 기록되도록 모색된다. 8 비트 스트링은, 예를 들면, 전자 상태 {P1 ER ER P1 ER P1 ER ER}에 대응하는 비트를 포함할 수 있다. P1 상태를 수신하는 메모리 셀은 단계(S710)를 거칠 것이고, 후속하여, 단계(S720 및 그 이후의 것)에 의해 검증될 것이다는 것을 인식할 수 있다. 그러나, 상태(ER)를 유지하기 위한 셀은 단계(S710 및 S720)를 거치지 않을 것이다. 블록에 새로운 데이터를 기록하기 이전에 메모리의 블록을 지우는 것이 일반적인 관행이다(예를 들면, 통상적으로 블록 내의 모든 메모리 셀은 프로그래밍이 시작되기 이전에 ER 상태에서 시작한다). 따라서, 프로그래밍 데이터의 ER 상태를 메모리 셀에 기록하기 위해, NAND는 메모리 셀에 아무 것도 하지 않는다(즉, 메모리 셀이 이미 ER 상태에 있다는 가정에 의존하여, 메모리 셀은 스킵된다).
다시 말하면, 몇몇 실시형태에서, 페이지를 프로그래밍하는 것은 페이지 내의 모든 메모리 셀을 프로그래밍하는 것과 동일하지 않다. 몇몇 셀은 프로그래밍 동작을 받는 것을 스킵할 수 있다. 따라서, 페이지를 프로그래밍하는 것은, 단지, 페이지 내의 메모리 셀 중 하나 이상을 프로그래밍하는 것을 포함할 수 있다. 검증은 메모리 셀이 프로그래밍되는 경우에 수행되지만(예를 들면, ER → P1은 검증 동작을 트리거할 수 있음), 그러나 메모리 셀이 ER에 남아 있어야 하는 경우에는 수행되지 않는다(예를 들면, ER → ER 메모리 셀은 프로그래밍되지 않고, 따라서, 검증은 스킵될 수 있음). 거기에서, 검증을 스킵하는 것에 기인하여 문제가 발생할 수 있다. 이것은, 스킵된 메모리 셀의 현존하는 상태가 예상된 ER이 아닌 경우(예를 들면, 메모리 셀이 지속적인 P1 상태를 가짐) 문제가 될 수 있다. 이 시나리오에서, 기록 동작은 메모리 셀이 ER 상태가 아닌 경우에 그것이 ER 상태에 있다는 것을 가정할 것이다. 결과적으로, 메모리 컨트롤러는 (검증의 결여 때문에) "기록" 동작(ER → ER)이 성공적으로 수행되었다는 것을 가정할 것이지만, 그러나 실제로 발생한 것은 P1 상태가 지속된다는 것이다(P1 → P1). 미래에 이 메모리 셀로부터 데이터가 판독되는 경우, 데이터는 손상되었다는 것이 확인될 것이다. 따라서, 데이터 손실의 가능성이 최소화될 수 있도록 수정 불가능한 에러 정정 코드(uncorrectable error correction code; UECC)가 나타나기 이전에 데이터를 보호하기 위한 방법 및 시스템에 대한 필요성이 존재한다.
상기에서 설명되는 바와 같은 에러를 완화하기 위해, 프로세스 플로우(700)와 같은 프로세스를 더욱 강건하게 만드는 동작이 도입될 수 있다.
도 8은, 몇몇 실시형태에 따른, NAND 메모리에서의 데이터의 저장 및 데이터의 자체 검증을 위한 프로세스 플로우(800)를 예시한다. 몇몇 실시형태에서, 방법 단계에서 설명되는 기능은 NAND 메모리 디바이스 그 자체 상의 회로부(circuitry)(예를 들면, 하나 이상의 프로세서(22)(도 1), 메모리 칩(25)의 제어 회로(도 10, 또는 등등))에 의해 수행될 수 있다. 단계(S810)에서, NAND 메모리의 페이지에 데이터가 저장될 수 있다. 저장될 데이터는, 프로그래밍 데이터(예를 들면, 페이지에 프로그래밍될 데이터)로서 또한 지칭될 수 있는 일련의 비트(예를 들면, 이진 데이터)를 포함할 수 있다. NAND 메모리의 페이지는 메모리 셀(예를 들면, 페이지(432)(도 4))을 포함할 수 있다. 저장하는 것은 프로그래밍 데이터에 따라 NAND 메모리의 선택된 페이지를 프로그래밍하는 것을 포함할 수 있다. 선택된 페이지는 워드 라인에 대응하는 복수의 메모리 셀을 포함한다. 선택된 페이지의 프로그래밍은 복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작을 포함할 수 있다(단계(S810)). 선택된 페이지의 프로그래밍은 복수의 검증 동작을 또한 포함할 수 있다(단계(S820)). 복수의 검증 동작 중의 검증 동작은, 복수의 메모리 셀 중 프로그래밍된 메모리 셀이 프로그래밍 데이터에 따라 임계 전압 레벨을 갖는지의 여부를 결정하기 위해 복수의 프로그래밍 동작 중 대응하는 동작 이후에 수행될 수 있다. 단계(S820)에서, 프로그래밍이 올바르게 수행되었는지의 여부 또는 단계(S810)가 다시 수행되어야 하는지를 확인하기 위해 메모리 셀의 프로그래밍의 검증이 수행될 수 있다(예를 들면, 단계(S735)(도 7) 참조). 검증은 메모리 셀 중 프로그래밍된 메모리 셀의 워드 라인 상에서 기준 전압을 인가하는 것 및 대응하는 비트 라인에서 메모리 셀 중 프로그래밍된 메모리 셀을 통해 흐르는 전류를 측정하는 것을 포함할 수 있다(예를 들면, S720(도 7) 참조).
몇몇 실시형태에서, 단계(S860)에서, 메모리 셀 중 프로그래밍된 메모리 셀은, 단계(S820)의 검증 이후, 마스킹될 수 있다(예를 들면, 결과가 통과인 경우, 그러면 데이터 저장 프로세스의 나머지를 위해 메모리 셀을 마스킹하고; 결과가 실패인 경우, 그러면 S810에서 재시작함). 단계(S865)에서, 프로그래밍 데이터에 따라 목표로 하는 수의 비트가 페이지에 프로그래밍되었는지의 여부를 결정하기 위해 체크가 수행될 수 있다(예를 들면, 프로그래밍 데이터의 저장이 완료되었는지 또는 미완성인지를 확인하는 체킹). 다시 말하면, 프로그래밍 데이터에 따른 최종 비트가 페이지에 프로그래밍되었는지의 여부를 확인하기 위해 결정 단계가 수행된다(예를 들면, 최종 비트는 프로그래밍 데이터에 따라 페이지에 프로그래밍될 마지막 비 ER 상태일 수 있음). 저장이 아직 완료되지 않은 경우, 프로세스는 단계(S810)로 돌아가서 프로그래밍의 나머지를 저장하기 위해 후속하는 메모리 셀로 계속 이동할 수 있다. 프로세스 플로우(800)는 통과 결과를 반환하는 복수의 검증 동작 각각에 기초하여 선택된 페이지의 프로그래밍의 완료를 결정하는 것을 포함할 수 있다는 것이 인식되어야 한다. 프로그래밍의 완료를 결정하기 위한 다른 조건은, n 비트의 프로그래밍 데이터를 저장하기 위한 메모리 셀을 고려하는 것일 수 있는데, n은 1보다 더 큰 정수이다. 결정은 프로그래밍 데이터의 n 번째 비트를 페이지에 프로그래밍하는 것에 기초할 수 있다.
몇몇 실시형태에서, 단계(870)에서, 페이지에 대한 판독 동작을 수행하는 것 및 자체 검증 판독 동작으로부터 결정되는 데이터를 프로세스 플로우(800)를 개시하기 위해 사용되었던 프로그래밍 데이터에 비교하는 것에 의해, 다른 검증 동작이 수행될 수 있다. 도 8의 단계는 NAND 컨트롤러(예를 들면, 컨트롤러(20)(도 1))에서 펌웨어 방법으로서 구현될 수 있다.
몇몇 실시형태에서, 단계(S875)에서, NAND 페이지에 데이터를 저장하기 위한 프로세스 플로우(800)가 종료된다. 결론은 추가적인 검증 단계(S870)로부터의 통과 또는 실패 결정에 의해 마킹될 수 있다. 통과/실패 결정은 페이지에 대한 판독 동작에 의해 결정되는 바와 같은 저장된 데이터와 프로세스 플로우(800)를 개시하기 위해 사용되었던 프로그래밍 데이터 사이의 정확한 매치에 기초할 수 있다. 몇몇 실시형태에서, 통과/실패 결정은 실패 카운트 임계치에 기초할 수 있다. 예를 들면, NAND 펌웨어는 실패 비트 카운트가 주어진 임계치 미만인 경우 통과 결과를 결정할 수 있다. 용어 "임계치 미만"은 또한 "임계치 이하"의 범위를 포함하도록 또한 의도된다는 것이 인식되어야 하는데, 그 이유는, 두 용어 사이의 차이가 임계 값의 단순한 이동이기 때문이다(예를 들면, 10 미만은 9 이하와 동일함). 유사한 로직이 용어 "임계치 초과" 및 "임계치 이상"에 적용된다. 임계치는 NAND 메모리가 구현될 환경의 필요성 또는 선호도에 기초하여 조정될 수 있다. 예를 들면, 다수의 중복성 백업 메커니즘(redundancy backup mechanism)을 갖는 데이터 스토리지 센터는 퍼스널 컴퓨터 상의 사용자와는 상이한 임계 값을 사용할 수 있다.
몇몇 실시형태에서, 도 8에서 도시되는 타임라인은 지금까지 설명된 프로세스의 예를 도시한다. 예를 들면, NAND 메모리의 페이지에서 다수의 메모리 셀을 프로그래밍하고 검증하기 위한 단계(S810 및 S820)의 다수의 루프가 있을 수 있다(다른 단계는 명확화를 위해 타임라인 상에서 예시되지는 않지만, 그러나 존재하는 것으로 이해되어야 한다). 루프의 끝에서(즉, 프로그래밍 데이터가 페이지로 완전히 전송된 경우), NAND 메모리의 내부 판독 성능을 사용하여 저장된 데이터를 검증하기 위해 단계(S870)가 수행된다. 그 다음, NAND 메모리의 페이지의 프로그래밍은 단계(S875)에서 종료된다.
몇몇 실시형태에서, 프로세스 플로우(700)(도 7)가 실행되지 않는 상황에서, 예를 들면, 기록될 데이터가 ER 상태에 있지만, 그러나 대응하는 메모리 셀에서 존재하는 실제 상태가 P1이거나 또는 등등인 경우, NAND 메모리 강건성을 증가시키기 위해 프로세스 플로우(800)가 사용될 수 있다는 것이 이전에 언급되었다. 예를 들면, 제1 프로그램이 페이지 상에 데이터를 저장하지만, 그러나, 그 다음, 제2 프로그램이 자신의 데이터를 동일한 페이지에 저장하는 경우(예를 들면, 메모리 오버프로그래밍(overprogramming)), 그러한 경우가 발생할 수 있다. 오버프로그래밍 에러는 불량한 코딩에 의해 야기될 수 있다. 단계(S820)(또는 도 7의 단계(720))가 수행되든 또는 수행되지 않든 간에, 단계(870)에서의 자체 검증은 전체 페이지를 판독할 수 있고, 그에 의해, 실행되지 않은 단계(S820)가 놓칠 수 있는 임의의 에러를 검출할 수 있다. 이러한 방식으로 데이터 손상이 방지될 수 있다. 예를 들면, 단계(S875)에서 실패 결과가 발행되는 경우, 메모리 컨트롤러의 펌웨어는 프로그램 데이터를 저장할 상이한 페이지를 선택할 수 있다. NAND 메모리는, 단계(S870)의 판독 동작이 실패 결과(예를 들면, NAND 메모리의 영역을 마스킹함)를 반환하는 경우, NAND 메모리의 하나 이상의 결함이 있는 영역의 추가적인 사용을 또한 방지할 수 있다. 더구나, 단계(S870)는 데이터 저장 프로세스의 끝에서의 단일의 인스턴스일 수 있는데, 이것은, 예를 들면, 모든 루프 이후 판독 검증을 수행하는 것보다 훨씬 더 적은 시간 부담을 초래할 수 있다.
몇몇 실시형태에서, 단계(S870)의 NAND 펌웨어 구현은 추가적인 검증이 신속하게, 뿐만 아니라, 데이터 저장 동작의 초기 단계에서, 수행되는 것을 허용한다. 페이지의 판독이 NAND 메모리 그 자체의 하드웨어에 의해 수행되기 때문에, 판독 동작은 내부 판독, 또는 자체 검증으로서 또한 지칭될 수 있다. 대조적으로, 외부 호스트 컴퓨터가 단계(S870)를 수행해야 한다면, 결과적으로 나타나는 추가적인 시간 부담은 단계(S870)를 수행하는 것을 못하게 할 만큼 충분히 높을 수 있다.
몇몇 실시형태에서, 단계(S870)의 추가적인 검증은 소정의 결점을 수반할 수 있다. 예를 들면, 비록 내부 펌웨어 구현이 호스트 펌웨어 구현보다 더 빠르더라도, 검증 단계(S870)는 NAND 메모리의 소비자에게 바람직하지 않을 수 있을 정도로 판독 동작의 시간을 여전히 증가시킬 수 있다. 결국, 단계(S870)는 추가적인 판독 단계이며, 예를 들면, 데이터 저장 프로세스에 수십 마이크로초를 추가할 수 있다. 따라서, NAND 메모리 펌웨어는 NAND 펌웨어에 의해 단계(S870)가 실행되는 방법의 조정을 허용하기 위한 피쳐를 가지고 구현될 수 있다. 즉, 몇몇 실시형태에서, 방법은 페이지에 데이터의 저장을 검증하는 것을 조정하기 위한 입력을, NAND 메모리에서, 수신하는 것을 포함할 수 있다.
몇몇 실시형태에서, 입력은 단계(S870)의 판독 동작의 수행뿐만 아니라, NAND 메모리의 어떤 영역이 단계(S870)를 수신할지의 제한을 허용하는 것, 디스에이블하는 것, 시간적으로 시프트하는 것, 또는 등등을 허용할 수 있다. NAND 메모리의 몇몇 영역은 다른 영역보다 더 안정적일 수 있다. 따라서, 입력은 단계(S870)의 판독 동작을 수행하는 것을 허용할 또는 디스에이블할 NAND 메모리의 하나 이상의 영역을 명시하기 위해 사용될 수 있다. 하나 이상의 명시된 영역은, 몇몇 비제한적인 예를 거론하자면, 예를 들면, SLC를 위해 사용되는 영역, MLC를 위해 사용되는 영역, TLC를 위해 사용되는 영역, QLC를 위해 사용되는 영역, 페이지, 블록, 또는 평면 중 적어도 하나를 포함할 수 있다. 한 예로서, 입력은 제1 SLC 부분, 제1 및 제2 TLC 부분, 및 특정한 페이지에 대한 자체 검증을 수행하기 위한 명령어를 포함할 수 있다. 다른 예로서, 입력은 특정한 QLC 부분에 대한 자체 검증을 수행하기 위한 명령어를 포함할 수 있다. "엘리먼트 1, 엘리먼트 2 및 엘리먼트 3 중 적어도 하나" 또는 등등과 같은 용어는 다음과 같은 순열(permutation)을 포함할 수 있다: 엘리먼트 1 중 하나 이상; 엘리먼트 2 중 하나 이상; 엘리먼트 1 중 하나 이상 및 엘리먼트 2 중 하나 이상; 엘리먼트 1 중 하나 이상 및 엘리먼트 3 중 하나 이상; 엘리먼트 2 중 하나 이상 및 엘리먼트 3 중 하나 이상; 또는 엘리먼트 1 중 하나 이상, 엘리먼트 2 중 하나 이상, 및 엘리먼트 3 중 하나 이상. 대응하는 순열은 더 적은 또는 더 많은 엘리먼트를 갖는 그룹에 대해서도 구상된다.
몇몇 실시형태에서, 입력은 데이터 저장 동작을 실행하기 위한 사용자 제공 커맨드의 프리픽스로서 구현될 수 있다. SLC/MLC/TLC/QLC 모드를 명시하기 위한 1 또는 2 비트가 있을 수 있다. 예를 들면, TLC 페이지의 상위, 중간, 또는 하위 페이지 중 임의의 것을 명시하기 위한 3 비트가 있을 수 있다.
몇몇 실시형태에서, NAND 펌웨어는 (사용자 입력을 필요로 하지 않으면서) 자동화된 방식으로 자체 검증을 언제 어디서 구현할지를 결정할 수 있다. 예를 들면, NAND 메모리는 어떤 메모리 셀 또는 메모리 셀의 그룹이 결함이 있는지 또는 다르게는 위험한지의 기록을 구현할 수 있다. 기록에 기초하여, NAND 펌웨어는 관련된 위험이 갖는 것으로서 공지되어 있는 메모리 셀에 데이터를 저장할 때 자체 검증을 구현할 수 있다.
몇몇 실시형태에서, 입력은 데이터 저장 프로세스 동안 소정의 데이터가 핸들링되는 방법(예를 들면, 캐싱된 데이터의 지연 퍼징)을 또한 조정할 수 있다.
도 9는, 몇몇 실시형태에 따른, NAND 펌웨어를 사용하여 수행되는 조정을 비교하기 위한 타임라인(900 및 902)을 도시한다. 몇몇 실시형태에서, NAND 메모리 제품은 캐시 시스템 구현예를 가질 수 있다. 캐싱 시스템은 NAND 펌웨어 자체 검증 피쳐(예를 들면, 도 8의 단계(S870)의 판독 동작)과 충돌할 수 있다. 따라서, NAND 펌웨어는 NAND 메모리에서 캐싱이 구현되는지의 여부에 따라 동작을 조정할 수 있다는 것이 구상된다. NAND 동작에 대한 조정은 사용자 입력에 의해 또는 NAND 펌웨어에서의 자동 프로세스에 의해 제어될 수 있다.
몇몇 실시형태에서, 타임라인(900)은 NAND 메모리의 캐시 영역에서 캐시 데이터 전송 A(904)의 생성을 도시한다. 그 다음, 캐시 데이터 전송 A는 프로그램 A에 의해 사용되는데, 프로그램 A는 타임라인(900)에서 프로그램 사용 중(program busy) A(906)로서 표현된다. 프로그램 사용 중 A(906)는, 예를 들면, (예를 들면, 프로세스 플로우(800)(도 8)에 따라) NAND 메모리에서 페이지의 메모리 셀을 프로그래밍하기 위한 동작일 수 있다. 프로그램 사용 중 A(906) 동안, 다른 캐시 데이터 전송(908)은, 타임라인(900)에서 프로그램 사용 중 B(910)로서 표현되는 프로그램 B의 미래의 실행을 위해 준비될 수 있다. 캐시 데이터 전송 B(908)의 준비는 프로그램 사용 중 A(906)가 종료되면 프로그램 B의 즉각적인 실행을 허용한다. 문제는 캐시 데이터 전송 B(908)의 생성이 현존하는 캐시 데이터 전송 A(904)를 덮어쓸(overwrite) 수 있다는 것이다. 결국, 캐시 스토리지는 빠르고 일시적인 스토리지를 위해 작게 설계된다. 그러면, 프로그램 사용 중 A(906)가 자체 검증 단계(S870)(도 8)을 실행하려고 시도하지만, 그러나 프로그램 B에 대해 캐시가 요구되었다는 것을 발견하는 것이 있을 수 있다. 캐싱된 데이터는 단계(S870)(도 8)에서 페이지 판독을 수행할 때 비교를 위한 기준으로서 사용될 수 있다는 것을 유의한다.
따라서, 몇몇 실시형태에서, NAND 펌웨어는 NAND 메모리가 캐시를 활용할 때 타임라인(902)에서 도시되는 바와 같이 동작하도록 동작을 조정할 수 있다. 타임라인(900 및 902)은 실행되는 프로세스의 관점에서 유사하지만, 그러나, 타임라인(902)은 캐시 데이터 전송 B(908)의 생성을 프로그램 사용 중 A(906) 이후인 타이밍으로 이동시킨다. 이것은, 캐싱의 시간 절약이 NAND 펌웨어 자체 검증의 사용을 허용하는 것을 위해 상실되는 트레이드오프이다는 것을 유의한다. 이러한 방식으로 캐시 데이터 전송 B(908)의 타이밍을 배열하는 것에 의해, 프로그램 사용 중(906)은 덮어쓰기된 캐시를 찾는 위험 없이 단계(S870)(도 8)를 자유롭게 포함할 수 있다. 몇몇 실시형태에서, NAND 펌웨어는 타이밍을 조정할 수 있다. 예를 들면, NAND 펌웨어는 캐싱의 사용을 검출하도록, 그리고 그 다음, 검출에 기초하여 캐시 데이터 전송 B(908)의 생성의 지연을 수행하도록 구성될 수 있다.
몇몇 실시형태에서, 단계(S870)(도 8)의 NAND 펌웨어 구현은 데이터 저장 동작의 초기 단계에서 자체 검증이 신속하게 수행되는 것을 허용한다는 것이 앞서 언급되었다. 이 성능은 디버깅 프로세스를 향상시키기 위해, 예를 들면, 이중 프로그래밍에 관련되는 이슈를 수정하기 위해 사용될 수 있다.
도 10은, 몇몇 실시형태에 따른, NAND 메모리의 페이지를 프로그래밍하기 위한 프로세스 플로우(1000)를 예시한다. 구체적으로, 도 10은 이중 프로그램 이벤트가 발생하는 NAND 메모리의 일부의 세 가지 스냅샷을 예시한다. 도 10의 예시적인 시나리오는 비제한적인 것으로 이해되어야 한다(예를 들면, 프로그램은 NAND 메모리의 6 페이지보다 더 많은 또는 더 적은 페이지에 기록될 수 있고, 이중 프로그램 에러에 도달하는 다른 방식이 있을 수 있고, 등등일 수 있음). 단계(S1002)에서, 명령어의 제1 세트는 하나 이상의 컴퓨팅 디바이스(예를 들면, 호스트 컴퓨터(15)(도 1))에 의해 실행될 수 있다. 명령어의 제1 세트는 제1 프로그래밍 데이터에 따라 NAND 메모리의 페이지에 데이터를 저장하기 위한 명령어를 포함할 수 있다. 도 10에서 예시되는 예에서, 명령어의 제1 세트는 제1 프로그래밍 데이터(Pg0 프로그램-Pg6 프로그램으로서 표기됨)에 따라 Pg0-Pg6에 데이터를 저장하도록 메모리 컨트롤러(20)(도 1)에 영향을 끼쳤다. 또한, 다음 번 저장 이벤트가 시작될 주소가 단계(S1002)에서 도시되어 있다. 그것은 Pg7을 가리키는 다음 번 프로그램 포인터(1008)에 의해 나타내어진다(Pg7 및 그 이후는, 프로그래밍 데이터를 수신할 준비가 된 소거 상태("ers")에 있음).
몇몇 실시형태에서, 단계(S1004)에서, 명령어의 제2 세트가 하나 이상의 컴퓨팅 디바이스에 의해 실행될 수 있다. 명령어의 제2 세트는 제2 프로그래밍 데이터에 따라 NAND 메모리의 페이지에 데이터를 저장하기 위한 명령어를 포함할 수 있다. 그러나, 데이터 저장 동작을 코딩함에 있어서의 에러에 기인하여, 프로그램 포인터는, 제1 프로그래밍 데이터에 대응하는 데이터를 저장한 Pg4로 잘못 주소 지정된다. 이 이벤트는 이중 프로그래밍 이벤트로서 지칭될 수 있다. 잘못된 주소 지정은 잘못된 프로그램 포인터(1008')에 의해 표기되고, 대응하는 덮어쓰기된 페이지는 Pg4 이중 프로그램(1010)으로서 표기된다.
몇몇 실시형태에서, Pg4에 저장되는 데이터는 나중의 시간(예를 들면, 몇 분 이후, 며칠 이후, 또는 등등)까지 하나 이상의 컴퓨팅 디바이스에 의해 사용되지 않는다. 단계(S1006)에서, 하나 이상의 컴퓨팅 디바이스는 NAND 메모리의 Pg4로부터 데이터를 재판독하는(read back) 동작을 실행한다. Pg4에 존재하는 수정 불가능한 에러 정정 코드에 기인하여 판독은 실패한다. Pg4의 데이터가 이 시점을 기준으로 손상되어, 제1 또는 제2 프로그래밍 데이터 중 어느 것도 나타내지 않을 가능성이 높다. 이것은, 상기에서 설명되는 바와 같이, ER 상태를 수신하는 메모리 셀이 스킵되기 때문에 발생할 수 있다. 예를 들면, 제2 프로그래밍 데이터 {P1 ER P1 ER}로 부적절하게 덮어쓰기되는 상태 {ER P1 ER P1}를 갖는 메모리 셀은, 메모리 셀이 실제로 {P1 P1 P1 P1}을 저장하 것으로 귀결될 수 있다. ER 상태의 스킵은 제1 및 제2 프로그래밍 데이터의 P1 상태로 하여금 결합되게 하여, 저장된 데이터의 손상을 초래한다(제1 또는 제2 프로그래밍 데이터 중 어느 것도 나타내지 않는 쓸모없는 데이터).
몇몇 실시형태에서, 도 10을 참조하여 설명되는 것들과 같은 잘못된 주소 지정 에러를 수정하기 위해, 개발자는 에러의 원인을 결정하기 위한 디버깅 조치를 구현할 수 있다. 일단 에러의 원인이 결정되면, 명령어 코드에 대해 적절한 수정이 이루어질 수 있다. Pg4에 저장되는 데이터는, 아마도, 며칠 뒤까지 판독되지 않을 수 있다는 것이 다시 강조된다. 잘못된 주소 지정의 발견이 훨씬 나중에 발생할 수 있기 때문에, 이것은 디버깅 노력에 큰 장애를 제시할 수 있다. 이중 프로그래밍 이벤트와 후속하는 판독 실패 사이의 시간에 수많은 동작이 발생할 수 있다. 개발자가 회고의 이점을 가지지 않기 때문에, 개발자는 모든 동작을 어쩌면 잘못된 것으로 의심하는 것 외에는 많은 선택지를 가지지 않는다. 그 다음, 개발자는 명목상 작동하고 있는 동작을 배제하기 위해 각각의 동작에 대한 테스트를 셋업할 수 있다. 수행할 테스트의 수가 수백 또는 수천 개인 경우 이것은 성가신 프로세스일 수 있다는 것이 인식되어야 한다. 이러한 부담을 감소시키기 위해, 본원에서 개시되는 NAND 자체 검증 실시형태를 구현하는 것에 의해 디버깅 프로세스는 향상될 수 있다.
도 11은, 몇몇 실시형태에 따른, 이중 프로그래밍 이벤트를 포함하는 프로세스 플로우(1100, 1102, 및 1104)를 예시한다. 각각의 프로세스 플로우에서의 차이점을 비교하는 것에 의해, 본원의 실시형태의 NAND 자체 검증 방법은 에러가 발생한 직후 에러를 검출하는 것에 의해 디버깅 프로세스를 크게 향상시킬 수 있다는 것이 명백할 것이다. 몇몇 실시형태에서, 하나 이상의 컴퓨팅 디바이스에 의해 실행되고 있는 프로그램이 UECC 메모리와 조우한다. 에러의 소스는 알 수 없다 ― 예를 들면, 그것은 실행된 프로그램의 NAND로부터 데이터를 판독할 때의 코드에서의 결함, 하나 이상의 컴퓨팅 디바이스의 로직에서의 결함, NAND 메모리에서의 에러, NAND 펌웨어 코드에서의 결함, 또는 등등일 수 있다. UECC의 원인을 확인하기 위해, 개발자는 테스트 사례(예를 들면, 시뮬레이션)를 준비할 수 있다. 테스트 사례는 UECC와 조우한, 그러나 개발자에 의해 부과되는 특정한 제약(예를 들면, 테스트 사례 파라미터) 하에 있는 프로그램의 실행을 포함할 수 있다.
몇몇 실시형태에서, 플로우 프로세스(1100)는 단계(S1106, S1108, S1112, 및 S1114)를 포함할 수 있다. 단계(1106)에서, 테스트 사례가 실행된다. 단계(S1108)에서, 테스트 사례는, 예를 들면, 프로세스 플로우(700)(도 7)를 사용하여 NAND 메모리에 데이터를 저장하기 위해 최종 사용자 펌웨어(예를 들면, 소비자 사용을 위해 의도되는 펌웨어)와 상호 작용할 수 있다. 최종 사용자 펌웨어는, 예를 들면, 호스트(15)의 펌웨어(도 1) 및/또는 NAND 메모리의 펌웨어를 포함할 수 있다. 프로세스 플로우(1100)의 맥락에서, NAND 펌웨어는 NAND 자체 검증을 구현하지 않는다는 것이 인식되어야 한다(예를 들면, 그것은 디스에이블되거나 또는 존재하지 않음). 단계(S1112)에서, NAND 메모리의 페이지에서 이중 프로그램 기록이 발생한다(예를 들면, Pg4 이중 프로그램(1010)(도 10)). 단계(S1114) ― 이것은 몇 분 이후, 며칠 이후, 또는 그 이상에 있을 수 있음 ― 에서, UECC 판독은 이중 프로그래밍의 결과로서 조우된다. 이 시나리오에서, 프로그램의 개발자는, 테스트 제약이 단계(S1114)에서 UECC 판독을 생성할 수 있다는 것을 알게 되는 것 외에는, UECC가 어떻게 발생하고 있는지에 관한 추가적인 정보를 거의 얻지 못하였다. 에러에 대한 가능한 용의자는 단계(S1106 내지 S1114) 사이의 시간에서 프로그램 및 펌웨어(들)에 의해 실행되는 동작 중 임의의 것일 수 있다. 단계(S1112)에서의 이중 프로그래밍 이벤트는 개발자에게 공지되지 않으며 이 연습의 목표는 그것을 발견하는 것이다.
몇몇 실시형태에서, 개발자는 프로세스 플로우(1100)에 대해 약간의 개선을 갖는 프로세스 플로우(1102)를 구현할 수 있다. 프로세스 플로우(1102)는 단계(S1106, S1110, S1112, 및 S1116)를 포함할 수 있다. 단계(1106)는 앞서 설명되는 바와 같을 수 있다. 이제, 차이점은, 단계(1110)에서, 테스트 사례가 (예를 들면, 개발자에 의해 제공되는) 디버그 펌웨어와 상호 작용하도록 허용된다는 것이다. 디버그 펌웨어는 UECC 판독을 야기하고 있는 것이 무엇이든 그것에 더 가깝게 컴퓨터 동작을 중지하려고 시도하기 위한 미봉책이다. 디버그 펌웨어는, 예를 들면, 테스트 사례에서 프로세스의 소정의 출력을 판독하고, 그 다음, 출력 중 하나에서 이상이 발견되는 경우 테스트 사례의 실행을 중지하기 위한 명령어를 포함할 수 있다. 그러나, 단계(S1112)에서, 이중 프로그램 에러가 발생하지만, 그러나, 기록된 데이터의 검증은 잠시 더 수행되지 않는다. 단계(S1116)에서, 디버그 프로세스는 이상을 검출하고 실패 결과를 반환하여, 테스트 사례를 중지한다. 이 시나리오에서, 개발자에 의해 구현되는 디버그 프로세스는 프로세스 플로우(1100)의 단계(S1114)에서 UECC 판독 이벤트보다 더 빨리 이상을 검출하는 것에 의해 가능한 에러 원인을 배제하도록 더 잘 설계된다. 그러나 디버깅 프로세스는, 프로세스 플로우(1104)에서와 같이, 본원에서 개시되는 NAND 자체 검증 실시형태를 구현하는 것에 의해 더욱 향상될 수 있다.
몇몇 실시형태에서, 디버그 펌웨어를 사용함에 있어서의 여전히 다른 이슈는, 그것이 상당한 런타임 및 오버헤드를 추가할 수 있다는 것이다. 예를 들면, 디버그 펌웨어는 다음 번 프로그램 포인터(1008)(도 10)를 추적하기 위한 중복하는 다음 번 프로그램 포인터를 도입하도록 셋업될 수 있다. 중복 프로그램 포인터는 더미 레이어 또는 심층 레이어에 대한 셋업 포인트일 수 있다. 중복 프로그램 포인터 및 다음 번 프로그램 포인터(1008)는 비교되어 매치 또는 데이터 손상이 발생했는지를 결정할 수 있다. 이 프로세스는 실패 포인트에 도달하는 데 많은 시간 및 상당한 양의 디버그 코드를 추가할 수 있다. NAND 시퀀스가 결함이 있는지를 확인하기 위해 로직을 체크하기 위한 더 많은 펌웨어 코드가 있기 때문에, 이것은 높은 오버헤드로 이어진다. 이 솔루션은 펌웨어 중 많은 것을 잠재적으로 변경할 수 있다. 펌웨어는 파이프라인으로서 간주될 수 있다. 중복 프로그램 포인터의 비교가 실행될 때마다, 파이프라인은 중지되는데, 이것은 상당한 양의 시간을 추가할 수 있다.
몇몇 실시형태에서, 프로세스 플로우(1104)는 단계(S1106, S1110, S1112', 및 S1116)를 포함할 수 있다. 단계(1106 및 S1110)는 앞서 설명되는 바와 같을 수 있다. 프로세스 플로우(1104)에서의 차이점은, NAND 펌웨어를 통한 자체 검증이 인에이블된다는 것이다(예를 들면, S870(도 8)의 판독 단계가 인에이블됨). 몇몇 실시형태에서, 단계(S870)(도 8)는 시스템 성능을 향상시키기 위해 디스에이블된 상태에 있을 수 있지만, 그러나 필요로 되는 경우 인에이블될 수 있다. 예를 들면, 디버그 펌웨어는 NAND 자체 검증 피쳐를 턴온하기 위한 NAND 펌웨어에 대한 명령어를 포함할 수 있다. 단계(S1112')에서, 이중 프로그램 에러가 발생한다. 이전에 제시된 프로세스 플로우와는 대조적으로, 프로세스 플로우(1104)는 재판독 단계에서 이중 프로그래밍된 페이지를 검출할 수 있다. 재판독(read back)이 실패하고 NAND 자체 검증 프로세스가 실패 표시(fail indication)를 발행한다 ― NAND 메모리의 특정한 페이지에 있는 데이터는 에러를 갖는다. 이 표시는 이중 프로그램 이벤트에 가까운 시점에서 테스트 시나리오 및 디버그 프로세스를 중지하기 위해 사용될 수 있다. 이 정보는 이중 프로그래밍 에러를 코드의 어떤 부분이 담당하는지를 빠르게 식별하는 데 유용하다. 즉, 잇달아 일어나는 디버깅은 프로그램의 중지의 타이밍에 기초할 수 있다. 더구나, 상기에서 설명되는 중복 프로그램 포인터 시나리오(이것은 상당한 시간 및 오버헤드를 추가함)와는 달리, 단계(S870)(도 8)를 사용하는 것은 펌웨어 동작의 광범위한 변경을 구현하지 않으며 타이밍 영향이 덜 심각하다. 단계(S870)는 NAND 메모리의 내부 성능을 사용하는 신속한 페이지 판독이다.
이중 프로그래밍 이벤트 및 후속하는 검출 방법은 다음과 같은 방식으로 설명될 수 있다. 몇몇 실시형태에서, NAND 플래시 메모리 디바이스의 선택된 페이지는 제1 프로그래밍 데이터에 따라 프로그래밍될 수 있다. 그 다음, 선택된 페이지는 제2 프로그래밍 데이터에 따라 프로그래밍될 수 있다. 선택된 페이지는 워드 라인에 대응하는 메모리 셀(예를 들면, 페이지(432)(도 4))을 포함할 수 있다. 선택된 페이지의 프로그래밍은 복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작(예를 들면, 단계(S710)(도 7) 또는 단계(S810)(도 8))을 포함할 수 있다. 선택된 페이지의 프로그래밍은 복수의 검증 동작을 또한 포함할 수 있다. 복수의 검증 동작 중의 검증 동작은, 복수의 메모리 셀 중 프로그래밍된 메모리 셀이 제1 또는 제2 프로그래밍 데이터에 따라 임계 전압 레벨을 갖는지의 여부를 결정하기 위해 복수의 프로그래밍 동작 중 대응하는 동작 이후에 수행될 수 있다(예를 들면, 단계(S720)(도 7) 또는 단계(S820)(도 8)).
그 다음, 몇몇 실시형태에서, 저장된 제1 데이터가 덮어쓰기되었는지의 여부(또는 명령어가 상이한 순서로 실행되는 경우 제2 데이터가 덮어쓰기되었는지)를 결정하기 위해 NAND 메모리와 관련되는 펌웨어를 사용하여 선택된 페이지에 대한 자체 검증이 수행될 수 있다. 방법은 선택된 페이지에 저장되는 데이터가 덮어쓰기되었다는 것의 결정시 실패 표시를 발행하는 것을 포함할 수 있다. 자체 검증은 선택된 페이지에 저장되는 데이터를 결정하기 위해, NAND 플래시 메모리 디바이스에 의해, 선택된 페이지에 대한 내부 판독 동작(예를 들면, 단계(S870)(도 8))을 수행하는 것을 포함할 수 있다.
몇몇 실시형태에서, 도 11을 참조하여 설명되는 기능은 다른 도면을 참조하여 설명되는 피쳐를 또한 통합할 수 있다는 것이 인식되어야 한다. 예를 들면, 디버그 펌웨어 및/또는 NAND 펌웨어에 관해 판독 동작의 수행을 조정하기 위한 입력(예를 들면, 인에이블 단계(S870)(도 8))이 제공될 수 있다. 다른 예로서, NAND 메모리가 캐싱 시스템을 구비하는 경우, 그러면, NAND 자체 검증은 도 9를 참조하여 앞서 설명되는 바와 같이 캐싱 피쳐와 상호 작용하도록 구성될 수 있다. 여전히 다른 예에서, 입력은, 도 8을 참조하여 설명되는 바와 같이, NAND 자체 검증이 사용될 NAND 메모리의 영역을 제한하기 위해 또한 사용될 수 있다.
도 12는, 몇몇 실시형태에 따른, 이중 프로그래밍 이벤트를 디버깅하는 타임라인(1200)을 예시한다. 몇몇 실시형태에서, 타임라인(1200)의 상위 측은 디버그 펌웨어에 관련이 있는 이벤트를 나타낸다. 타임라인(1200)의 하위 측은 프로그램의 테스트 사례에 관련이 있는 이벤트를 나타낸다. 디버그 펌웨어 및 테스트 사례는 도 11을 참조하여 앞서 설명되는 피쳐 중 하나 이상을 구현할 수 있다.
몇몇 실시형태에서, 디버그 펌웨어는 시간(1202)에서 개시된다. 시간(1204)에서, 디버그 펌웨어는 도 8, 도 9, 및/또는 도 11을 참조하여 앞서 설명되는 바와 같이 NAND 자체 검증을 인에이블하기 위한 입력을 NAND 메모리의 펌웨어로 전송한다. 시간(1206)에서, 프로그램의 테스트 사례가 실행 중일 수 있다. 테스트 사례의 요건에 기초하여, 테스트 사례는 이전에 개시되어 시간(1206)에서 계속 실행되거나 또는 테스트 사례는 이 시점에서 개시된다는 것이 구상된다. 시간(1208)에서, NAND 자체 검증 피쳐는 이중 프로그램 이벤트에 기인하여 실패를 결정한다. 시간(1210)에서, 디버그 펌웨어 및/또는 NAND 펌웨어는 정지하도록 지시받는다. 시간(1212)에서, 테스트 사례는 중지된다. 시간(1214)에서, 디버그가 시작된다. 이중 프로그램 이벤트 직후 테스트 사례 및 펌웨어가 중지되었기 때문에, 이중 프로그래밍 이벤트를 야기한 코드의 조각을 식별하는 것이 더 쉬울 것이기 때문에 디버깅 단계는 크게 단순화될 수 있다.
몇몇 실시형태에서, 디버깅은 하나 이상의 컴퓨팅 디바이스(예를 들면, 호스트(15)(도 1))에 의해 실행될 수 있다.
몇몇 실시형태에서, 본원에서 개시되는 NAND 자체 검증 피쳐는 데이터 손상으로부터 보호하기 위한 데이터 백업을 수반하는 방법에서 구현될 수 있다. 데이터 백업 방식(data backup scheme)의 하나의 예는 스토리지 드라이브의 RAID 배열(예를 들면, 물리적 드라이브, 논리적 드라이브, 또는 이들의 조합 사용함)을 포함할 수 있다. 스토리지 드라이브는 하나 이상의 NAND 메모리 디바이스를 포함할 수 있다. RAID 배열은, 보호가 추구되는 각각의 블록의 끝에 있는 소위 패리티 비트에 의존할 수 있다. 통상적으로, RAID 배열은, 링크된 스토리지 드라이브에게 중복 배열에서 동작할 것을 지시하기 위해 컨트롤러 하드웨어 지원에 의존한다. 추가적인 컨트롤러 하드웨어 지원은 추가적인 RAM 및 다이 사이즈 비용을 초래할 수 있다. 더구나, 패리티 그룹마다 제공되는 보호의 양은 제한될 수 있다(예를 들면, 패리티 그룹당 하나의 데이터 에러).
몇몇 실시형태에서, NAND 메모리에서 데이터를 보호하기 위한 RAID 배열에 대한 대안은 소위 SLC 백업을 구현하는 것일 수 있다.
도 13은, 몇몇 실시형태에 따른, SLC 백업을 수행하기 위한 프로세스 플로우(1300)를 예시한다. 몇몇 실시형태에서, 표준 MLC, TLC, 또는 QLC 프로그램은 NAND 메모리 상에서 실행될 것이다. NAND 메모리의 일부에서, MLC, TLC, 또는 QLC 프로그래밍을 위해 사용되는 소정의 메모리 셀은 내재하는 관련된 위험을 갖는 것으로 의심된다(예를 들면, 하나 이상의 메모리 셀이 프로그래밍을 올바르게 수신하지 않을 수 있는 가능성이 있음). SLC 프로그래밍이 MLC, TLC, 또는 QLC 프로그래밍보다 더 안정적일 수 있기 때문에, 중복 SLC 프로그래밍이 원래의 MLC, TLC, 또는 QLC 프로그래밍과 함께 실행되어야 한다.
몇몇 실시형태에서, 프로그래밍 데이터는 NAND 메모리에서의 저장을 위해 제공된다. 단계(S1302)에서, NAND 메모리의 페이지는 프로그래밍 데이터에 따라 MLC, TLC, 또는 QLC 프로그래밍을 사용하여(예를 들면, 프로세스 플로우(700)(도 7)의 단계를 사용하여) 프로그래밍된다. 단계(S1304)에서, MLC, TLC, 또는 QLC 프로그래밍된 페이지는 하나 이상의 컴퓨팅 디바이스(예를 들면, 호스트 컴퓨터(15)(도 1))를 사용하여 NAND 메모리로부터 재판독된다. 호스트 펌웨어는, NAND 메모리의 펌웨어(21)(도 1)로부터 페이지 판독 명령어를 발생시키는 것과는 대조적으로, NAND 메모리로부터 판독할 명령어를 발행할 수 있다는 것을 유의한다. 단계(S1306)에서, MLC, TLC, 또는 QLC 프로그래밍은 NAND 메모리에서의 적절한 수의 SLC 페이지에서 또한 프로그래밍될 수 있다(예를 들면, TLC 프로그래밍 데이터는 세 개의 SLC 페이지에 기록될 수 있음). NAND 메모리의 SLC 영역에 저장되는 프로그래밍 데이터는 NAND 메모리의 덜 안정적인 MLC, TLC, 또는 QLC 영역의 데이터에 대한 안정적인 백업을 제공할 수 있다. 그러나, 프로세스 플로우(1300)와 관련되는 시간 부담, 특히 호스트 펌웨어를 사용하여 재판독을 수행하는 데 걸리는 시간은 바람직하지 않을 수 있다.
본원에서 개시되는 NAND 자체 검증 방법은 SLC 백업 방식을 수정하고 데이터 백업을 수행하는 것의 시간을 단축하기 위해 사용될 수 있고, 그에 의해, NAND 메모리 시스템에서 데이터 보호 방법의 성능을 향상시킬 수 있다. 그러나, NAND 자체 검증 방법을 사용하는 백업 동작을 설명하기 이전에, 먼저, NAND 메모리에서 신뢰할 수 없는 영역을 식별하기 위한 방법을 설명하는 것이 유익하다.
도 14는, 몇몇 실시형태에 따른, NAND 메모리에서 신뢰할 수 없는 영역을 식별하기 위한 프로세스 플로우(1400)를 예시한다. 몇몇 실시형태에서, 신뢰할 수 없는 영역은 데이터를 올바르게 프로그래밍하는 데 실패할 위험이 있는 NAND 메모리의 영역(들)을 지칭할 수 있다는 것이 이해되어야 한다(예를 들면, 신뢰할 수 없는 영역은 데이터를 프로그래밍하는 데 실패할 관련된 확률을 가짐). 하나의 비제한적인 예에서, 위험은 임계 확률로서 정량화될 수 있다. 실패의 낮은 확률(예를 들면, 임계치 미만)이 신뢰 가능한 것으로 간주될 수 있거나, 또는 그 반대도 마찬가지이다. 임계 확률은, 예를 들면, 사용자 또는 NAND 펌웨어의 개발자의 요구에 기초하여 결정될 수 있다.
몇몇 실시형태에서, 단계(S1402)에서, NAND 메모리에 대한 데이터 저장 테스트가 수행될 수 있다. 데이터 저장 테스트는, 예를 들면, (예를 들면, 프로세스 플로우(700)(도 7)를 사용하여) NAND 메모리의 페이지에 데이터를 저장하는 것을 포함할 수 있다. 데이터 저장 테스트는 NAND 메모리의 페이지로부터 저장된 데이터를 재판독하는 것을 또한 포함할 수 있다. 단계(S1404)에서, 단계(S1402)에서 재판독된 데이터에 대한 분석이 수행될 수 있다. 분석은 NAND 메모리에서 판독 실패 영역을 결정하는 것을 포함할 수 있다. 분석은 신뢰할 수 있는 및/또는 신뢰할 수 없는 하나 이상의 영역의 목록을 생성하는 것을 포함할 수 있다. 신뢰성 및/또는 비신뢰성은 (예를 들면, 실패 확률에 기초하여) 상기에서 설명되는 바와 같이 정량화될 수 있다. 단계(S1406)에서, 신뢰성/비신뢰성의 결정된 영역은 후속하는 SLC 백업 프로세스를 통지하기 위해 NAND 펌웨어에 저장될 수 있거나 및/또는 그것으로 전송될 수 있다.
도 15는, 몇몇 실시형태에 따른, SLC 백업 프로세스에서 NAND 자체 검증을 구현하기 위한 프로세스 플로우(1500)를 예시한다. 몇몇 실시형태에서, MLC, TLC, 또는 QLC 프로그래밍을 사용하여 NAND 메모리에 저장하기 위한 프로그래밍 데이터가 제공된다. 그러나, 프로세스 플로우(1300)(도 13)와는 대조적으로, 신뢰할 수 없는 것으로 식별되는 NAND 메모리의 영역은 프로세스 플로우(1500)를 따를 수 있다. 신뢰할 수 없는 영역은, 예를 들면, 프로세스 플로우(1400)(도 14)를 사용하여 결정될 수 있다. 제공된 데이터는 프로그래밍 데이터에 따라 NAND 메모리의 페이지에 저장된다.
몇몇 실시형태에서, 단계(S1502)에서, NAND 메모리의 제1 페이지의 메모리 셀은 (예를 들면, 단계(S710)(도 7) 또는 단계(S810)(도 8)를 사용하여) 프로그래밍 데이터에 따라 프로그래밍될 수 있다. NAND 메모리의 제1 페이지의 메모리 셀의 프로그래밍은 MLC, TLC, 또는 QLC 프로그래밍보다 더욱 안정적일 수 있는 SLC 프로그래밍을 사용하여 수행될 수 있다.
몇몇 실시형태에서, 단계(S1504)에서, 제1 페이지의 메모리 셀의 프로그래밍이 올바르게 수행되었는지의 여부를 결정하기 위해 (예를 들면, 단계(S720)(도 7) 또는 단계(S820)(도 8)를 사용하여) 검증이 수행될 수 있다. 프로그래밍 데이터는 원래는 MLC, TLC, 또는 QLC 프로그래밍을 위해 제공되었다는 것을 유의한다. 따라서, 상기에서 설명된 데이터 저장 동작은 SLC 프로그래밍을 사용하여 적절한 수의 추가적인 페이지에 대해 수행될 수 있다(예를 들면, QLC 프로그래밍 데이터는 네 개의 SLC 페이지에 기록될 수 있음).
몇몇 실시형태에서, 단계(S1506)에서, NAND 메모리의 제2 페이지의 메모리 셀은 (예를 들면, 단계(S710)(도 7) 또는 단계(S810)(도 8)를 사용하여) 프로그래밍 데이터에 따라 프로그래밍될 수 있다. NAND 메모리의 제2 페이지의 메모리 셀의 프로그래밍은 MLC, TLC, 또는 QLC 프로그래밍을 사용하여 수행될 수 있다. NAND 메모리의 MLC, TLC, 또는 QLC 영역에 저장되는 데이터는, 단계(S1502)에서, NAND 메모리의 SLC 영역에 저장되었던 데이터와 매치한다.
몇몇 실시형태에서, 단계(S1508)에서, 제2 페이지의 메모리 셀의 프로그래밍이 올바르게 수행되었는지의 여부를 결정하기 위해 (예를 들면, 단계(S720)(도 7) 또는 단계(S820)(도 8)를 사용하여) 검증이 수행될 수 있다.
몇몇 실시형태에서, 단계(S1510)에서, 제2 페이지에서의 데이터의 저장을 검증하기 위해(예를 들면, 단계(S870)(도 8)와 유사한 NAND 자체 검증) NAND 메모리와 관련되는 펌웨어를 사용하여 제2 페이지에 대한 판독 동작이 수행될 수 있다. 프로그래밍된 제2 페이지(즉, MLC, TLC, 또는 QLC 페이지(들))를 검증하기 위해 NAND 내부 펌웨어를 사용하면, (단계(S1304)(도 13)에서 수행되었던 바와 같이) 호스트 펌웨어를 사용하여 검증을 수행하는 것보다 훨씬 더 빠르게 프로그래밍의 검증이 수행될 수 있다. 즉, 플로우 프로세스(1500)는 SLC 백업 방법을 실행하도록 구성되는 하나 이상의 호스트 컴퓨팅 디바이스와 관련되는 펌웨어를 사용하여 제2 페이지에 대한 판독 동작을 수행하지 않는 것을 포함하는 SLC 백업 방법의 일부인데, 하나 이상의 호스트 컴퓨팅 디바이스는 NAND 메모리에 대한 호스트이다. 다시 말하면, NAND 메모리와 관련되는 펌웨어를 사용하여 제2 페이지에 대한 판독 동작의 수행은, 하나 이상의 호스트 컴퓨팅 디바이스와 관련되는 펌웨어를 사용하여 제2 페이지에 대한 판독 동작을 수행하는 것과 비교하여, 백업 방법의 완료의 시간을 감소시키는 것을 더 포함한다. 몇몇 예에서, 완료의 속도는, 하나 이상의 호스트 컴퓨팅 디바이스와 관련되는 펌웨어를 사용하여 제2 페이지에 대한 판독 동작을 수행하는 것과 비교하여, 5 % 이상, 10 % 이상, 또는 15 % 이상만큼 향상될 수 있다.
몇몇 실시형태에서, 단계(S1512)에서, 새로운 데이터를 수신하기 위한 준비에서 제1 페이지(SLC 영역)가 해제될 수 있다(즉, 제1 페이지의 저장된 데이터는 무효화될 수 있고 및/또는 소거될 수 있다).
몇몇 실시형태에서, NAND 펌웨어(21)(도 1)를 사용하는 판독 동작의 수행을 조정하기 위해 입력이 사용될 수 있다는 것이 도 8을 참조하여 설명되었다. 더구나, 신뢰성/비신뢰성의 하나 이상의 영역이 후속하는 SLC 백업 프로세스를 통지하기 위해 결정, 저장 및/또는 NAND 펌웨어로 전송될 수 있다는 것이 도 14를 참조하여 설명되었다. 도 16은 도 8 및 도 14의 이들 양태에 관련이 있는 추가적인 세부 사항을 예시한다 ― 예는 비제한적인 용량에서 제공된다. 즉, 도 8, 도 14, 또는 도 16에 명시적으로 도시되지 않는 추가적인 피쳐가, 그럼에도 불구하고, 다른 도면을 참조하여 설명되는 실시형태에 기초하여 구상된다는 것이 인식되어야 한다.
도 16은, 몇몇 실시형태에 따른, SLC 백업 프로세스에서 NAND 자체 검증을 구현하기 위한 프로세스 플로우(1600)를 예시한다. 몇몇 실시형태에서, 단계(S1602)에서, 하나 이상의 펌웨어가 개시될 수 있다. 하나 이상의 펌웨어는, 예를 들면, 스토리지 시스템(10)(예를 들면, NAND 메모리)의 펌웨어(21)(도 1) 및/또는 NAND 메모리와 하나 이상의 호스트 컴퓨팅 디바이스 사이의 통신을 가능하게 하는 하나 이상의 컴퓨팅 디바이스의 펌웨어를 포함할 수 있다. 개시시, 단계(S1604)에서, NAND 펌웨어의 NAND 자체 검증 피쳐가 인에이블되고 구성될 수 있다(예를 들면, 단계(S870)(도 8)의 수행을 가능하게 할 수 있음). NAND 자체 검증 피쳐의 인에이블링(enabling)은 (예를 들면, 시간(1204)(도 12)를 참조하여 설명되는 바와 같이) 입력을 사용하여 달성될 수 있다. 입력은 (예를 들면, 도 14를 참조하여 설명되는 바와 같이) NAND 메모리의 신뢰할 수 없는 영역의 정보를 또한 포함할 수 있다.
몇몇 실시형태에서, NAND 메모리와 관련되는 펌웨어를 사용하는 판독 동작의 인에이블링과 함께, NAND 메모리의 하나 이상의 영역이 선택될 수 있다. 선택된 하나 이상의 영역에 대해 NAND 자체 검증이 수행될 수 있다. 하나 이상의 선택된 영역은 입력을 사용하여 명시될 수 있다(예를 들면, 신뢰할 수 없는 영역). 이것은 (예를 들면, 도 14를 참조하여 설명되는 바와 같이) 신뢰할 수 있는 것으로 결정되는 영역에 대해 NAND 자체 검증을 수행하지 않는 것에 의해 SLC 백업 프로세스의 속도를 크게 향상시킬 수 있다.
몇몇 실시형태에서, 입력은 데이터 저장 동작을 실행하기 위한 사용자 제공 커맨드의 프리픽스로서 구현될 수 있다는 것이 앞서 설명되었다. 단계(S1604)에서, NAND 자체 검증 피쳐의 인에이블링과 함께 다수의 구성이 발생할 수 있다. 예를 들면, 단계(S1604)는 (워드라인 또는 페이지를 선택하기 위해) 워드라인 비트맵을 구성하는 것, (스트링을 선택하기 위해) 스트링 비트맵을 구성하는 것, (특정한 페이지, 예를 들면, 상위 페이지, 중간 페이지, 하위 페이지를 선택하기 위해) 페이지 타입 비트맵을 구성하는 것, 및 (MLC, TLC, 또는 QLC를 선택하기 위해) 메모리 레벨 타입을 구성하는 것을 포함할 수 있다. NAND 메모리에서 특정한 위치를 선택하는 것은 도 8을 참조하여 앞서 설명되었다.
몇몇 실시형태에서, 단계(S1606)에서, SLC 백업 프로세스는 단계(S1604)에서 명시되었던 NAND 메모리의 선택된 영역에 대해 실행될 수 있다. 단계(S1606)는 프로세스 플로우(1500)(도 5)를 실행하는 것에 의해 달성될 수 있다. NAND 메모리의 SLC 영역에 대한 기록은 단계(S1502 및 S1504)(도 15)를 사용하여 달성될 수 있다. NAND 메모리의 MLC, TLC, 또는 QLC 영역에 대한 기록은 단계(S1506 및 S1508)(도 15)를 사용하여 달성될 수 있다. NAND 자체 검증을 수행하는 것은 단계(S1510)(도 15) 또는 단계(S870)(도 8)를 사용하여 달성될 수 있다. 불필요한 SLC 영역의 무효화는 단계(S1512)를 사용하여 달성될 수 있다.
본원에서 개시되는 실시형태에서의 방법 단계는 임의의 고려 가능한 순서로 수행될 수 있으며 모든 단계가 수행되어야 한다는 것이 규정되지는 않는다.
요약하면, 본 개시는 NAND 자체 검증을 사용하는 중복 백업 방법을 제공한다. 방법은 제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 NAND 플래시 메모리 디바이스의 제1 및 제2 페이지를 프로그래밍하는 것을 포함할 수 있다. 제1 및 제2 페이지 각각은 제1 또는 제2 워드 라인에 대응하는 복수의 메모리 셀을 포함한다. 제1 및 제2 페이지의 프로그래밍은 복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작 및 복수의 검증 동작을 포함할 수 있다. 복수의 검증 동작 중의 동작은, 프로그래밍 데이터에 따라 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위해, 복수의 프로그래밍 동작 중 대응하는 동작 이후 수행될 수 있다. 방법은 통과 결과를 반환하는 복수의 검증 동작 각각에 기초하여 제1 및 제2 페이지의 프로그래밍의 완료를 결정하는 것을 또한 포함할 수 있다. 방법은, 결정 이후, 프로그래밍 데이터에 따라 제2 페이지에 저장되는 데이터를 자체 검증하기 위해, NAND 플래시 메모리 디바이스에 의해 제2 페이지에 대한 판독 동작을 수행하는 것을 또한 포함할 수 있다.
본 개시는 NAND 자체 검증을 사용하는 중복 데이터 백업을 제공할 수 있는 NAND 플래시 메모리 디바이스를 또한 제공한다. NAND 플래시 메모리 디바이스는 메모리 어레이를 포함할 수 있다. 메모리 어레이는 제1 또는 제2 워드 라인에 대응하는 복수의 메모리 셀을 각각 포함하는 제1 및 제2 페이지를 포함할 수 있다. NAND 플래시 메모리 디바이스는 제1 및 제2 워드 라인을 통해 제1 및 제2 페이지에 커플링되는 주변 회로를 또한 포함할 수 있다. 주변 회로는 제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 제1 및 제2 페이지를 프로그래밍할 수 있다. 제1 및 제2 페이지의 프로그래밍은 복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작 및 복수의 검증 동작을 포함할 수 있다. 복수의 검증 동작 중의 동작은, 프로그래밍 데이터에 따라 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위해, 복수의 프로그래밍 동작 중 대응하는 동작 이후 수행될 수 있다. 주변 회로는 통과 결과를 반환하는 복수의 검증 동작 각각에 기초하여 제1 및 제2 페이지의 프로그래밍의 완료를 또한 결정할 수 있다. 주변 회로는, 결정 이후, 프로그래밍 데이터에 따라 제2 페이지에서 데이터의 저장을 자체 검증하기 위해 NAND 플래시 메모리 디바이스에 의해 제2 페이지에 대한 판독 동작을 또한 수행할 수 있다.
본 개시는 NAND 자체 검증을 사용하는 중복 백업 방법을 위한 메모리 시스템을 추가로 제공한다. 시스템은 데이터를 저장할 수 있는 NAND 플래시 메모리 디바이스를 포함할 수 있는 메모리 시스템을 포함할 수 있다. NAND 플래시 메모리 디바이스는 메모리 어레이를 포함할 수 있다. 메모리 어레이는 제1 또는 제2 워드 라인에 대응하는 복수의 메모리 셀을 각각 포함하는 제1 및 제2 페이지를 포함할 수 있다. NAND 플래시 메모리 디바이스는 제1 및 제2 워드 라인을 통해 제1 및 제2 페이지에 커플링되는 주변 회로를 또한 포함할 수 있다. 주변 회로는 제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 제1 및 제2 페이지를 프로그래밍할 수 있다. 제1 및 제2 페이지의 프로그래밍은 복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작 및 복수의 검증 동작을 포함할 수 있다. 복수의 검증 동작 중의 동작은, 프로그래밍 데이터에 따라 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위해, 복수의 프로그래밍 동작 중 대응하는 동작 이후 수행될 수 있다. 주변 회로는 통과 결과를 반환하는 복수의 검증 동작 각각에 기초하여 제1 및 제2 페이지의 프로그래밍의 완료를 또한 결정할 수 있다. 주변 회로는, 결정 이후, 프로그래밍 데이터에 따라 제2 페이지에서 데이터의 저장을 자체 검증하기 위해 NAND 플래시 메모리 디바이스에 의해 제2 페이지에 대한 판독 동작을 또한 수행할 수 있다.
특정한 실시형태의 전술한 설명은, 따라서, 본 개시의 일반적인 개념으로부터 벗어나지 않으면서, 그리고 과도한 실험 없이, 본 기술 분야의 기술 내의 지식을 적용하는 것에 의해, 다양한 애플리케이션을 위해 타인이 그러한 특정한 실시형태를 쉽게 수정 및/또는 적응시킬 수 있다는 본 개시의 일반적인 성질을 완전히 드러낼 것이다. 따라서, 그러한 적응 및 수정은, 본원에서 제시되는 개시 및 지침에 기초하여, 개시된 실시형태의 등가물의 의미 및 범위 내에 있도록 의도된다. 본원에서의 문체(phraseology) 또는 전문 용어는 제한의 목적이 아니라 설명의 목적을 위한 것이며, 그 결과, 본 명세서의 전문 용어 또는 문체는 본 개시 및 지침을 고려하여 숙련된 기술자에 의해 해석되어야 한다는 것이 이해되어야 한다.
본 개시의 실시형태는, 명시된 기능 및 그들의 관계의 구현을 예시하는 기능적 빌딩 블록(functional building block)의 도움으로 상기에서 설명되었다. 이들 기능적 빌딩 블록의 경계는 설명의 편의성을 위해 본원에서 임의적으로 정의되었다. 명시된 기능 및 그들의 관계가 적절하게 수행되는 한, 대안적인 경계가 정의될 수 있다.
발명의 내용(Summary) 및 요약서 섹션은, 본 발명자(들)에 의해 고려되는 바와 같은 본 개시의 하나 이상의, 그러나 모두는 아닌 실시형태를 기술할 수 있으며, 따라서, 본 개시 및 첨부된 청구범위를 어떤 식으로든 제한하도록 의도되지는 않는다.
본 개시의 폭 및 범위는, 상기에서 설명된 예시적인 실시형태 중 어느 것에 의해 제한되어서는 안되며, 오히려, 오로지 이하의 청구범위 및 그들의 균등물에 따라 정의되어야 한다.

Claims (27)

  1. NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법으로서,
    제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 상기 NAND 플래시 메모리 디바이스의 상기 제1 및 제2 페이지를 프로그래밍하는 단계 ― 상기 제1 및 제2 페이지 각각은 제1 또는 제2 워드 라인에 대응하는 복수의 메모리 셀을 포함하고, 상기 제1 및 제2 페이지의 상기 프로그래밍은:
    복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작; 및
    복수의 검증 동작 ― 상기 복수의 검증 동작 중의 동작은, 상기 프로그래밍 데이터에 따라 상기 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위해, 상기 복수의 프로그래밍 동작 중 대응하는 동작 이후 수행됨 ― 을 포함함 ― ;
    통과 결과(pass result)를 반환하는 상기 복수의 검증 동작 각각에 기초하여 상기 제1 및 제2 페이지의 상기 프로그래밍의 완료를 결정하는 단계; 및
    상기 결정하는 단계 이후, 상기 프로그래밍 데이터에 따라 상기 제2 페이지에 저장된 상기 데이터를 자체 검증하기 위해, 상기 NAND 플래시 메모리 디바이스에 의해 상기 제2 페이지에 대한 판독 동작을 수행하는 단계를 포함하는,
    NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법.
  2. 제1항에 있어서,
    상기 제1 페이지는 단일 레벨 셀(single-level cell; SLC) 프로그래밍을 위해 구성되고; 그리고
    상기 제2 페이지는 다중 레벨 셀(multi-level cell; MLC), 트리플 레벨 셀(triple-level cell; TLC), 또는 쿼드 레벨 셀(quad-level cell; QLC) 프로그래밍을 위해 구성되는,
    NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법.
  3. 제1항에 있어서,
    상기 판독 동작의 상기 수행은, 상기 프로그래밍 데이터에 따라 상기 제2 페이지에 저장된 상기 데이터를 외부적으로 검증하기 위해 하나 이상의 호스트 컴퓨팅 디바이스에 의해 상기 판독 동작을 수행하는 것과 비교하여, 상기 프로그래밍 방법의 완료의 시간을 감소시키는 것을 포함하는,
    NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법.
  4. 제1항에 있어서,
    저장을 위한 새로운 데이터를 수신하기 위해 상기 제1 페이지를 해제하는(releasing) 단계를 더 포함하는,
    NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법.
  5. 제1항에 있어서,
    상기 판독 동작의 상기 수행은:
    상기 판독 동작으로부터 결정되는 상기 저장된 데이터 및 상기 프로그래밍 데이터를 비교하는 것; 및
    실패 비트 카운트가 임계치 미만인 경우 통과 결과를 결정하거나 또는 상기 실패 비트 카운트가 임계치를 초과하는 경우 실패 결과(fail result)를 결정하는 것을 포함하는,
    NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법.
  6. 제1항에 있어서,
    상기 NAND 플래시 메모리 디바이스에 의해, 상기 판독 동작의 상기 수행을 조정하기 위한 입력을 수신하는 단계를 더 포함하는,
    NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법.
  7. 제6항에 있어서,
    상기 판독 동작의 상기 수행을, 상기 입력에 의해 명시되는 상기 NAND 플래시 메모리 디바이스의 하나 이상의 영역으로 제한하는 단계를 더 포함하되, 상기 하나 이상의 명시된 영역은:
    단일 레벨 셀(SLC)을 위해 사용되는 영역;
    다중 레벨 셀(MLC)을 위해 사용되는 영역;
    트리플 레벨 셀(TLC)을 위해 사용되는 영역;
    쿼드 레벨 셀(QLC)을 위해 사용되는 영역;
    페이지;
    블록; 및
    평면
    중 적어도 하나를 포함하는,
    NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법.
  8. 제1항에 있어서,
    상기 판독 동작의 상기 수행 이후까지 미래의 프로그래밍 데이터의 캐싱을 지연시키는 단계를 더 포함하는,
    NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법.
  9. 제8항에 있어서,
    상기 캐싱의 사용을 검출하는 것을 더 포함하되, 상기 지연은 상기 캐싱의 사용의 상기 검출에 기초하는,
    NAND 플래시 메모리 디바이스에 대한 프로그래밍 방법.
  10. NAND 플래시 메모리 디바이스로서,
    각각이 제1 또는 제2 워드 라인에 대응하는 복수의 메모리 셀을 포함하는 제1 및 제2 페이지를 포함하는 메모리 어레이; 및
    상기 제1 및 제2 워드 라인을 통해 상기 제1 및 제2 페이지에 커플링된 주변 회로(peripheral circuit)를 포함하되,
    상기 주변 회로는:
    제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 상기 제1 및 제2 페이지를 프로그래밍하고 ― 상기 제1 및 제2 페이지의 상기 프로그래밍은:
    복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작; 및
    복수의 검증 동작 ― 상기 복수의 검증 동작 중의 동작은, 상기 프로그래밍 데이터에 따라 상기 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위해, 상기 복수의 프로그래밍 동작 중 대응하는 동작 이후 수행됨 ― 을 포함함 ― ;
    통과 결과를 반환하는 상기 복수의 검증 동작 각각에 기초하여 상기 제1 및 제2 페이지의 상기 프로그래밍의 완료를 결정하며; 그리고
    상기 결정 이후, 상기 프로그래밍 데이터에 따라 상기 제2 페이지에서 상기 데이터의 상기 저장을 자체 검증하기 위해 상기 NAND 플래시 메모리 디바이스에 의해 상기 제2 페이지에 대한 판독 동작을 수행하도록 구성되는,
    NAND 플래시 메모리 디바이스.
  11. 제10항에 있어서,
    상기 제1 페이지는 단일 레벨 셀(SLC) 프로그래밍을 위해 구성되고; 그리고
    상기 제2 페이지는 다중 레벨 셀(MLC), 트리플 레벨 셀(TLC), 또는 쿼드 레벨 셀(QLC) 프로그래밍을 위해 구성되는,
    NAND 플래시 메모리 디바이스.
  12. 제10항에 있어서,
    상기 판독 동작의 상기 수행은, 상기 프로그래밍 데이터에 따라 상기 제2 페이지에 저장된 데이터를 외부적으로 검증하기 위해 하나 이상의 호스트 컴퓨팅 디바이스에 의해 상기 판독 동작을 수행하는 것과 비교하여, 상기 제1 및 제2 페이지의 상기 프로그래밍을 포함하는 중복 데이터 저장 프로세스의 완료의 시간을 감소시키는 것을 포함하는,
    NAND 플래시 메모리 디바이스.
  13. 제10항에 있어서,
    상기 NAND 플래시 메모리 디바이스는 저장을 위한 새로운 데이터를 수신하기 위해 상기 제1 페이지를 해제하도록 구성되는,
    NAND 플래시 메모리 디바이스.
  14. 제10항에 있어서,
    상기 판독 동작의 상기 수행은:
    상기 판독 동작으로부터 결정되는 상기 저장된 데이터 및 상기 프로그래밍 데이터를 비교하는 것; 및
    실패 비트 카운트가 임계치 미만인 경우 통과 결과를 결정하거나 또는 상기 실패 비트 카운트가 임계치를 초과하는 경우 실패 결과를 결정하는 것을 포함하는,
    NAND 플래시 메모리 디바이스.
  15. 제10항에 있어서,
    상기 NAND 플래시 메모리 디바이스는 상기 판독 동작의 상기 수행을 조정하기 위한 입력을 수신하도록 구성되는,
    NAND 플래시 메모리 디바이스.
  16. 제15항에 있어서,
    상기 NAND 플래시 메모리 디바이스는, 상기 판독 동작의 상기 수행을, 상기 입력에 의해 명시되는 상기 NAND 플래시 메모리 디바이스의 하나 이상의 영역으로 제한하도록 또한 구성되고, 상기 하나 이상의 명시된 영역은:
    단일 레벨 셀(SLC)을 위해 사용되는 영역;
    다중 레벨 셀(MLC)을 위해 사용되는 영역;
    트리플 레벨 셀(TLC)을 위해 사용되는 영역;
    쿼드 레벨 셀(QLC)을 위해 사용되는 영역;
    페이지;
    블록; 및
    평면
    중 적어도 하나를 포함하는,
    NAND 플래시 메모리 디바이스.
  17. 제10항에 있어서,
    상기 NAND 플래시 메모리 디바이스는 상기 판독 동작의 상기 수행 이후까지 미래의 프로그래밍 데이터의 캐싱을 지연시키도록 구성되는,
    NAND 플래시 메모리 디바이스.
  18. 제17항에 있어서,
    상기 NAND 플래시 메모리 디바이스는 상기 캐싱의 사용을 검출하도록 또한 구성되되, 상기 지연은 상기 캐싱의 사용의 상기 검출에 기초하는,
    NAND 플래시 메모리 디바이스.
  19. 메모리 시스템으로서,
    데이터를 저장하도록 구성되는 NAND 플래시 메모리 디바이스를 포함하되,
    상기 NAND 플래시 메모리 디바이스는:
    각각이 제1 또는 제2 워드 라인에 대응하는 복수의 메모리 셀을 포함하는 제1 및 제2 페이지를 포함하는 메모리 어레이; 및
    상기 제1 및 제2 워드 라인을 통해 상기 제1 및 제2 페이지에 커플링된 주변 회로를 포함하고,
    상기 주변 회로는:
    제1 및 제2 페이지에 저장되는 데이터가 중복되도록 프로그래밍 데이터에 따라 상기 NAND 플래시 메모리 디바이스의 상기 제1 및 제2 페이지를 프로그래밍하고 ― 상기 제1 및 제2 페이지의 상기 프로그래밍은:
    복수의 프로그래밍 전압을 사용하는 복수의 프로그래밍 동작; 및
    복수의 검증 동작 ― 상기 복수의 검증 동작 중의 동작은, 상기 프로그래밍 데이터에 따라 상기 제1 페이지의 프로그래밍된 메모리 셀이 임계 전압 레벨을 갖는지의 여부를 결정하기 위해, 상기 복수의 프로그래밍 동작 중 대응하는 동작 이후 수행됨 ― 을 포함함 ― ;
    통과 결과를 반환하는 상기 복수의 검증 동작 각각에 기초하여 상기 제1 및 제2 페이지의 상기 프로그래밍의 완료를 결정하며; 그리고
    상기 결정 이후, 상기 프로그래밍 데이터에 따라 상기 제2 페이지에서 상기 데이터의 상기 저장을 자체 검증하기 위해 상기 NAND 플래시 메모리 디바이스에 의해 상기 제2 페이지에 대한 판독 동작을 수행하도록 구성된
    메모리 시스템.
  20. 제19항에 있어서,
    상기 제1 페이지는 단일 레벨 셀(SLC) 프로그래밍을 위해 구성되고;
    상기 제2 페이지는 다중 레벨 셀(MLC), 트리플 레벨 셀(TLC), 또는 쿼드 레벨 셀(QLC) 프로그래밍을 위해 구성되는,
    메모리 시스템.
  21. 제19항에 있어서,
    상기 판독 동작의 상기 수행은, 상기 프로그래밍 데이터에 따라 상기 제2 페이지에 저장된 데이터를 외부적으로 검증하기 위해 하나 이상의 호스트 컴퓨팅 디바이스에 의해 상기 판독 동작을 수행하는 것과 비교하여, 상기 제1 및 제2 페이지의 상기 프로그래밍을 포함하는 중복 데이터 저장 프로세스의 완료의 시간을 감소시키는 것을 포함하는,
    메모리 시스템.
  22. 제19항에 있어서,
    상기 NAND 플래시 메모리 디바이스는 저장을 위한 새로운 데이터를 수신하기 위해 상기 제1 페이지를 해제하도록 또한 구성되는,
    메모리 시스템.
  23. 제19항에 있어서,
    상기 판독 동작의 상기 수행은:
    상기 판독 동작으로부터 결정되는 상기 저장된 데이터 및 상기 프로그래밍 데이터를 비교하는 것; 및
    실패 비트 카운트가 임계치 미만인 경우 통과 결과를 결정하거나 또는 상기 실패 비트 카운트가 임계치를 초과하는 경우 실패 결과를 결정하는 것을 포함하는,
    메모리 시스템.
  24. 제19항에 있어서,
    상기 NAND 플래시 메모리 디바이스는 상기 판독 동작의 상기 수행을 조정하기 위한 입력을 수신하도록 또한 구성되는,
    메모리 시스템.
  25. 제24항에 있어서,
    상기 NAND 플래시 메모리 디바이스는, 상기 판독 동작을 수행하는 것을, 상기 입력에 의해 명시되는 상기 NAND 플래시 메모리 디바이스의 하나 이상의 영역으로 제한하도록 또한 구성되고, 상기 하나 이상의 명시된 영역은:
    단일 레벨 셀(SLC)을 위해 사용되는 영역;
    다중 레벨 셀(MLC)을 위해 사용되는 영역;
    트리플 레벨 셀(TLC)을 위해 사용되는 영역;
    쿼드 레벨 셀(QLC)을 위해 사용되는 영역;
    페이지;
    블록; 및
    평면
    중 적어도 하나를 포함하는,
    메모리 시스템.
  26. 제19항에 있어서,
    상기 NAND 플래시 메모리 디바이스는 상기 판독 동작의 상기 수행 이후까지 미래의 프로그래밍 데이터의 캐싱을 지연시키도록 또한 구성되는,
    메모리 시스템.
  27. 제26항에 있어서,
    상기 NAND 플래시 메모리 디바이스는 상기 캐싱의 사용을 검출하도록 또한 구성되되, 상기 지연은 상기 캐싱의 사용의 상기 검출에 기초하는,
    메모리 시스템.
KR1020227044654A 2022-01-17 2022-01-17 내부 펌웨어에 의한 자체 검증을 사용한 nand 메모리에 대한 중복 데이터 보호 KR20230111585A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/072284 WO2023133877A1 (en) 2022-01-17 2022-01-17 Redundant data protection for nand memory using self-verification by internal firmware

Publications (1)

Publication Number Publication Date
KR20230111585A true KR20230111585A (ko) 2023-07-25

Family

ID=81554996

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227044654A KR20230111585A (ko) 2022-01-17 2022-01-17 내부 펌웨어에 의한 자체 검증을 사용한 nand 메모리에 대한 중복 데이터 보호

Country Status (5)

Country Link
US (1) US20230229318A1 (ko)
KR (1) KR20230111585A (ko)
CN (1) CN114514581A (ko)
TW (1) TW202331728A (ko)
WO (1) WO2023133877A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11974422B2 (en) * 2021-11-04 2024-04-30 Taiwan Semiconductor Manufacturing Company, Ltd. Semiconductor device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100851853B1 (ko) * 2006-11-22 2008-08-13 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 및 프로그램 검증방법
KR102292217B1 (ko) * 2015-02-06 2021-08-24 삼성전자주식회사 내부적으로 데이터 읽기 검증을 수행할 수 있는 메모리 장치, 이의 작동 방법, 및 이를 포함하는 메모리 시스템
KR20170065969A (ko) * 2015-12-04 2017-06-14 에스케이하이닉스 주식회사 메모리 장치 및 그의 동작방법
KR20190073943A (ko) * 2017-12-19 2019-06-27 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10762967B2 (en) * 2018-06-28 2020-09-01 Apple Inc. Recovering from failure in programming a nonvolatile memory
JP2020154759A (ja) * 2019-03-20 2020-09-24 キオクシア株式会社 メモリシステム
KR20210092860A (ko) * 2020-01-16 2021-07-27 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치
KR20220118236A (ko) * 2021-02-18 2022-08-25 에스케이하이닉스 주식회사 메모리 장치
JP2023095156A (ja) * 2021-12-24 2023-07-06 キオクシア株式会社 メモリデバイス

Also Published As

Publication number Publication date
TW202331728A (zh) 2023-08-01
WO2023133877A1 (en) 2023-07-20
US20230229318A1 (en) 2023-07-20
CN114514581A (zh) 2022-05-17

Similar Documents

Publication Publication Date Title
US10116336B2 (en) Error correcting code adjustment for a data storage device
US9213598B2 (en) Nonvolatile memory device and method of operating the same
US9905314B2 (en) Storage module and method for datapath bypass
US8942028B1 (en) Data reprogramming for a data storage device
WO2019221810A1 (en) On-chip copy with data folding in the three-dimensional non-volatile memory array
US10409683B2 (en) Data storage system configured to perform data rebuild operation via reduced read requests
US10127103B2 (en) System and method for detecting and correcting mapping table errors in a non-volatile memory system
US20170322843A1 (en) Multi-die data storage device with in-memory parity circuitry
KR20190117117A (ko) 데이터 저장 장치 및 그것의 동작 방법
WO2023272548A1 (en) Data protection for three-dimensional nand memory
US11348643B2 (en) Identifying failure type in NVM programmed in SLC mode using a single programming pulse with no verification
KR20230111585A (ko) 내부 펌웨어에 의한 자체 검증을 사용한 nand 메모리에 대한 중복 데이터 보호
US9847136B2 (en) Operating method for host device and memory system including host device and storage device
WO2023137576A1 (en) Double program debug method for nand memory using self-verification by internal firmware
KR20230113692A (ko) 자체 검증을 수행하기 위해 내부 펌웨어를 사용하는 nand 메모리에서의 데이터 보호
US20240061606A1 (en) Read retry method for enhancing read performance and stability of 3d nand memory
US11966625B2 (en) Memory device and operating method for setting and repairing data errors
US20240046980A1 (en) Systems, methods and media of optimization of temporary read errors in 3d nand memory devices
US20230176759A1 (en) Memory controller with improved data reliability and memory system including the same
US10579611B2 (en) Selective event logging
TW202410048A (zh) 記憶體系統及其操作方法