KR102220093B1 - 소수의 프로그래밍된 페이지들을 갖는 블록 소거하기 - Google Patents

소수의 프로그래밍된 페이지들을 갖는 블록 소거하기 Download PDF

Info

Publication number
KR102220093B1
KR102220093B1 KR1020190076558A KR20190076558A KR102220093B1 KR 102220093 B1 KR102220093 B1 KR 102220093B1 KR 1020190076558 A KR1020190076558 A KR 1020190076558A KR 20190076558 A KR20190076558 A KR 20190076558A KR 102220093 B1 KR102220093 B1 KR 102220093B1
Authority
KR
South Korea
Prior art keywords
erase
block
programmed
voltage
pages
Prior art date
Application number
KR1020190076558A
Other languages
English (en)
Other versions
KR20200130630A (ko
Inventor
리 야-주이
첸 쿠안-푸
Original Assignee
매크로닉스 인터내셔널 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 매크로닉스 인터내셔널 컴퍼니 리미티드 filed Critical 매크로닉스 인터내셔널 컴퍼니 리미티드
Publication of KR20200130630A publication Critical patent/KR20200130630A/ko
Application granted granted Critical
Publication of KR102220093B1 publication Critical patent/KR102220093B1/ko

Links

Images

Classifications

    • 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/061Improving I/O performance
    • 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/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/564Miscellaneous aspects
    • G11C2211/5646Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/18Flash erasure of all the cells in an array, sector or block simultaneously

Landscapes

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

Abstract

소수의 프로그래밍된 페이지를 갖는 블록을 효과적으로 소거하기 위한 방법, 시스템 및 장치가 제공된다. 일 양태에서, 시스템은 메모리 및 메모리에 결합된 제어기를 포함한다. 메모리는 블록들을 포함하고, 각각의 블록은 페이지들을 갖는다. 제어기는 메모리의 블록 내의 특정 페이지 수를 갖는 임계 페이지가 프로그래밍되었는지 여부를 결정하여, 임계 페이지가 프로그래밍되었다는 결정에 응답하여 정상 소거 동작에 따라 블록을 소거하고, 임계 페이지가 프로그래밍되지 않았다는 결정에 응답하여 정상 소거 동작 보다 더 깊게 블록을 소거하도록 구성된 특정 소거 동작에 따라 블록을 소거하도록 구성된다. 특정 소거 동작은 블록을 소거하기 전에 블록을 사전 프로그래밍하는 단계, 블록을 소거하기 전에 소거 검증 전압을 감소시키는 단계, 또는 새로운 소거 전압을 갖는 하나 이상의 소거 펄스들을 추가하는 단계를 포함할 수 있다.

Description

소수의 프로그래밍된 페이지들을 갖는 블록 소거하기{ERASING BLOCKS WITH FEW PROGRAMMED PAGES}
NAND 플래시 메모리와 같은 메모리 디바이스 또는 시스템은 현대 생활에서 폭넓게 사용된다. 기술 스케일링에 의해 실현된 높은 저장 용량과 저렴한 비용으로 인해, 메모리 디바이스 또는 시스템은 디지털 스틸 카메라, 범용 직렬 버스 (USB) 메모리, 메모리 카드, 미디어 플레이어, 스마트 폰을 포함한 휴대폰, 넷북 등에 적용되었다. 일부 경우들에서는, 메모리 디바이스 또는 시스템의 매우 작은 면적을 차지하는 짧은 문장을 빈번하게 기록하고 소거할 수 있고, 이는 메모리 블록을 소거하는데 문제가 발생할 수 있다.
본 발명은 소수의 프로그래밍된 페이지를 갖는 블록을 효과적으로 소거하기 위한 시스템들 및 기술들을 설명한다.
본 개시의 일 양태는 이하의 시스템을 특징으로 하고, 상기 시스템은 : 블록들을 포함하는 메모리로서, 각각의 블록은 복수의 페이지들을 갖는, 상기 메모리; 및 상기 메모리에 결합된 제어기로서,상기 메모리의 블록내의 특정 페이지 수를 갖는 임계 페이지가 프로그래밍된지 여부를 결정하고;임계 페이지가 프로그래밍되었다고 결정한 것에 응답하여, 정상 소거 동작에 따라 상기 블록을 소거하고; 및 상기 임계 페이지가 프로그래밍되지 않았다고 결정한 것에 응답하여, 상기 블록을 상기 정상 소거 동작보다 더 깊게(deeper) 소거하도록 구성된 특정 소거 동작에 따라 상기 블록을 소거하도록 구성된, 상기 제어기를 포함한다. 상기 특정 페이지 수는 경험적 결과들에 의해 미리 결정될 수 있다.
상기 제어기는 상기 임계 페이지의 플래그(flag)가 설정된 값과 같은지 여부를 결정함으로써 상기 임계 페이지가 프로그래밍된지 여부를 결정하도록 구성될 수 있다. 일부 경우들에서, 상기 제어기는 : 상기 임계 페이지의 플래그가 설정된 값과 같지 않은 경우 상기 임계 페이지가 프로그래밍된 것으로 결정하고; 및 상기 임계 페이지의 플래그가 설정된 값과 같은 경우 상기 임계 페이지가 프로그래밍되지 않은 것으로 결정하도록 구성된다. 일부 경우들에서, 상기 제어기는 상기 메모리로부터 상기 임계 페이지의 플래그를 판독하도록 구성된다.
일부 경우들에서, 상기 제어기는 : 상기 블록상에 정상 소거 전압을 갖는 소거 펄스를 인가하는 것을 포함하는 제 1 소거 검증 사이클을 수행함으로써 상기 정상 소거 동작에 상기 블록을 소거하고, 상기 정상 소거 검증 전압 보다 작지 않은 임계 전압을 갖는 메모리 셀들의 수가 임계 수(threshold number) 보다 작은 지의 여부를 검증함으로써 소거 검증 테스트를 수행하고; 상기 메모리 셀들의 수가 상기 임계 수 보다 작은 것으로 결정한 것에 응답하여, 상기 블록이 상기 소거 검증 테스트를 통과하고 더 이상의 추가 소거를 수행하지 않는 것으로 결정하고; 및 상기 메모리 셀들의 수가 상기 임계 수 보다 작지 않은 것으로 결정한 것에 응답하여, 상기 블록이 상기 소거 검증 테스트를 통과할 때까지 하나 이상의 소거 검증 사이클을 수행하고, 상기 정상 소거 전압은 사이클 당 스텝 전압(step voltage) 만큼 증가됨으로써 상기 정상 소거 동작에 따라 상기 블록을 소거하도록 구성된다. 스텝 전압(step voltage)은 사이클 당 고정될 수 있다.
일부 경우들에서, 상기 제어기는 정상 소거 동작에 따라 블록을 소거하고, 상기 블록에 잉여 소거를 수행함으로써 특정 소거 동작에 따라 상기 블록을 소거하도록 구성된다. 상기 제어기는 상기 블록 상에 특정 소거 전압을 갖는 잉여 소거 펄스를 인가함으로써 상기 잉여 소거를 수행하도록 구성되고, 상기 특정 소거 전압은 잉여 전압만큼 상기 블록 상에 인가된 선행 소거 전압 보다 더 높다. 상기 잉여 전압은 상기 임계 페이지의 특정 페이지 수와 관련될 수 있다. 상기 잉여 전압은 경험적 결과들에 따라 미리 결정될 수 있다. 상기 잉여 전압은 스텝 전압과 다를 수 있다.
일부 경우들에서, 상기 제어기는 상기 블록 상에 하나 이상의 소거 펄스를 인가함으로써 상기 블록에 대한 잉여 소거를 수행하도록 구성되고, 상기 소거 펄스들 각각의 소거 전압은 상기 스텝 전압 만큼 상기 블록 상에 인가된 선행 소거 전압 보다 더 높다. 하나 이상의 소거 샷(erase shot)들의 수는 임계 페이지의 특정 페이지 수와 관련될 수 있다. 하나 이상의 소거 샷의 수는 경험적 결과들에 의해 미리 결정될 수 있다.
일부 경우들에서, 상기 제어기는 정상 소거 검증 전압을 잉여 소거 검증 전압 만큼 새로운 소거 검증 전압으로 감소시키고, 상기 새로운 소거 검증 전압을 사용하여 상기 블록에 대해 소거 검증 사이클을 수행함으로써 특정 소거 동작에 따라 블록을 소거하도록 구성된다. 잉여 검증 전압은 임계 페이지의 특정 페이지 수와 관련될 수 있고, 경험적 결과들에 기초하여 미리 결정될 수 있다.
일부 경우들에서, 상기 제어기는 상기 블록을 사전 프로그래밍 한 다음 상기 정상 소거 동작에 따라 상기 블록 상에 소거 검증 사이클을 수행함으로써 특정 소거 동작에 따라 상기 블록을 소거하도록 구성된다. 상기 제어기는 상기 정상 소거 전압, 상기 스텝 전압 및 상기 정상 소거 검증 전압을 사용함으로써 상기 블록상에서 상기 소거 검증 사이클을 수행하도록 구성될 수 있다.
상기 제어기는 상기 블록의 페이지에 프로그래밍 전압을 인가함으로써 상기 블록을 사전 프로그래밍하여 상기 블록내 프로그램밍된 페이지의 수가 특정 페이지 수보다 더 크도록 구성될 수 있다. 상기 제어기는 상기 블록의 모든 페이지를 사전 프로그래밍함으로써 블록을 사전 프로그래밍하도록 구성할 수 있다. 상기 프로그래밍 전압은 경험적 결과들에 기초하여 미리 결정될 수 있다. 상기 제어기는 상기 블록 내의 메모리 셀들의 프로그래밍된 상태들에 대한 검증없이 상기 블록을 사전 프로그래밍하도록 구성될 수 있다.
일부 구현예들에서, 상기 제어기는 : 상기 블록을 소거한 후에, 상기 블록을 프로그래밍하고, 상기 프로그래밍된 블록내의 메모리 셀의 임계 전압의 분포를 결정하기 위해 상기 블록을 판독하고, 및 상기 프로그래밍된 블록의 메모리 셀들의 임계 전압의 결정된 분포의 결과에 기초하여 상기 블록이 얕은 소거(shallow erase)의 효과를 나타내는지 여부를 결정하도록 구성된다.
일부 구현예들에서, 상기 제어기는 : 상기 블록 내의 제 1 페이지 수를 갖는 제 1 임계 페이지가 프로그래밍된지 여부를 결정하고; 제 1 임계 페이지가 프로그래밍되었다고 결정한 것에 응답하여, 상기 정상 소거 동작에 따라 상기 블록을 소거하고; 상기 제 1 임계 페이지가 프로그래밍되지 않았다고 결정한 것에 응답하여, 상기 블록 내의 제 2 페이지 수를 갖는 제 2 임계 페이지가 프로그래밍되었는지 여부를 결정하고, 상기 제 2 페이지 수가 상기 제 1 페이지 수 보다 작은 지 여부를 결정하고; 상기 제 2 임계 페이지가 프로그래밍되었다고 결정한 것에 응답하여, 상기 정상 소거 동작 보다 더 깊게 상기 블록을 소거하도록 구성된 제 1 소거 동작에 따라 상기 블록을 소거하고; 및 상기 제 2 임계 페이지가 프로그래밍되지 않았다고 결정한 것에 응답하여, 상기 제 1 소거 동작 보다 더 깊게 상기 블록을 소거하도록 구성된 제 2 소거 동작에 따라 상기 블록을 소거하도록 구성된다.
본 개시의 다른 양태는 메모리 내의 블록들을 소거하는 방법을 특징으로 한다. 상기 방법은 : 상기 메모리의 특정 블록내의 특정 페이지 수를 갖는 임계 페이지가 프로그래밍된지 여부를 결정하는 단계 및 상기 임계 페이지가 프로그래밍되지 않았다고 결정한 것에 응답하여, 상기 블록을 상기 정상 소거 동작보다 더 깊게 소거하도록 구성된 특정 소거 동작에 따라 상기 블록을 소거하는 단계를 포함한다. 상기 정상 소거 동작은 복수의 프로그래밍된 페이지를 갖는 블록에 대하여 적용되고, 상기 복수의 프로그래밍된 페이지의 수는 상기 특정 페이지 수 보다 크다.
특정 소거 동작은 블록을 소거하기 전에 블록을 사전 프로그래밍하는 단계, 블록을 소거하기 전에 소거 검증 전압을 감소시키는 단계, 또는 새로운 소거 전압을 갖는 하나 이상의 소거 펄스를 추가하는 단계 중 적어도 하나를 포함할 수 있다.
본 개시에서 구현되는 기술은 다양한 메모리 유형들 예컨대, SLC(single-level cell) 디바이스, 2 레벨 셀 디바이스, TLC(triple-level cell) 디바이스 또는 QLC(quad-level cell) 디바이스와 같은 MLC(multi-level cell) 디바이스들에 적용될 수 있다. 본 기술은 2 차원(2D) 메모리 시스템 또는 3 차원(3D) 메모리 시스템 과 같은 메모리 시스템의 다양한 차원에 적용될 수 있다. 본 기술은 그 중에서도 NAND 플래시 메모리, NOR 플래시 메모리 등의 비 휘발성 메모리 시스템들의 다양한 유형들에 적용될 수 있다. 추가적으로 또는 대안으로, 본 기술은 그 중에서도 보안 디지털(SD) 카드, 임베디드 멀티미디어 카드(eMMC), 또는 고체 상태 드라이브(SSD), 임베디드 시스템, 미디어 플레이어, 모바일 디바이스 등과 같은 다양한 유형의 디바이스 및 시스템에 적용될 수 있다.
하나 이상의 개시된 구현예들의 세부 사항이 이하의 상세한 설명 및 첨부된 도면에 개시된다. 다른 특징, 양태 및 이점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1a는 하나 이상의 구현예에 따른 메모리 디바이스를 포함하는 시스템의 예를 예시한다.
도 1b는 하나 이상의 구현예에 따른 메모리 블록을 포함하는 메모리의 예를 예시한다.
도 1c는 하나 이상의 구현예에 따른 2 차원 (2D) 메모리의 예시적인 블록을 예시한다.
도 1d는 하나 이상의 구현예에 따른 3 차원(3D) 메모리의 예시적인 블록을 예시한다.
도 2a는 하나 이상의 구현에 따른 정상 소거(normal erase) 및 얕은 소거(shallow erase) 후에 프로그래밍된 메모리 셀의 임계 전압 분포의 예를 예시한다.
도 2b는 하나 이상의 구현예에 따른 정상 소거 및 얕은 소거 메모리 셀의 임계 전압 분포의 예를 예시한다.
도 3a는 하나 이상의 구현에 따른 사전 판독 및 추가 소거 동작을 사용하여 프로그래밍된 페이지를 갖는 블록을 효율적으로 소거하는 프로세스의 흐름도이다.
도 3b는 하나 이상의 구현예에 따른 사전 판독 및 변화하는 소거 검증 깊이(erase verify depth action) 동작을 사용하여 프로그래밍된 페이지를 갖는 블록을 효율적으로 소거하는 프로세스의 흐름도이다.
도 3c는 하나 이상의 구현예에 따른 사전 판독 및 사전 프로그래밍 동작을 사용하여 프로그래밍된 페이지를 갖는 블록을 효율적으로 소거하는 프로세스의 흐름도이다.
특정 환경에서, 사용자는 메모리 블록에 소수 페이지를 프로그래밍 한 다음 전체 블록을 소거할 수 있다. 그러나, 블록의 소수 페이지의 비트의 낮은 양 때문에, 블록이 소거 검증 테스트를 통과하는 것이 매우 쉬울 수 있다. 이는 블록 내의 메모리 셀이 정상적인 소거 상태로 되기에 충분하게 소거되지 않는 얕은 소거 문제(shallow erase problem)를 야기할 수 있다.
본 개시의 구현은 소수의 프로그래밍된 페이지를 갖는 블록에서의 얕은 소거 문제를 처리하는 시스템 및 기술을 제공한다. 특별히, 새로운 소거 프로세스가 사용될 수 있고 소거 전에 블록에 특정 페이지 수를 갖는 임계 페이지(threshold page)가 프로그래밍되었는지 여부를 결정하는 단계를 포함할 수 있다. 예를 들어, 플래그(flag)는 예를 들어, 임계 페이지의 소거 플래그는 미리 판독될 수 있다. 만약 플래그가 설정된 값, 예를 들어 0이면 임계 페이지가 프로그래밍되었으며, 블록은 프로그래밍된 페이지를 충분히 가지고 있고, 얕은 소거 문제를 겪지 않을 수 있으며 소거 검증을 포함하여 정상 블록 소거 동작 (또는 작동)을 수행할 수 있음을 나타낸다. 임계 페이지의 플래그가 설정된 값이 아니면, 예를 들어, 상이한 값 예컨대, 1이면, 임계 페이지가 프로그래밍되지 않았고, 블록이 소수 프로그래밍된 페이지를 갖고 정상 블록 소거 동작이 수행되면 얕은 소거 문제를 겪을 수 있다는 것을 나타낸다. 따라서, 새로운 소거 동작이 블록에서 더 깊게 소거하도록 블록상에서 수행될 수 있다.
일부 구현예에서, 새로운 소거 동작은 정상 블록 소거 동작 이후에 특정 소거 전압을 갖는 하나 이상의 잉여 소거 펄스(extra erase pulse)를 포함한다. 특정 소거 전압은 정상 블록 소거 동작을 위한 스텝 전압(step voltage)과는 다른, 특정 증가된 스텝 전압을 가질 수 있다. 특정 소거 전압은 예를 들어 경험적 결과들에 기초하여 미리 결정될 수 있다. 특정 소거 전압은 임계 페이지의 페이지 수에 따라 변화할 수 있다. 일부 구현예에서, 새로운 소거 동작은 정상 블록 소거 동작 이후에 다수의 잉여 소거 펄스를 포함한다. 잉여 소거 펄스는 정상 스텝 전압만큼 증가된 소거 전압을 갖는다.
일부 구현예에서, 새로운 소거 동작은 소거 검증(erase verify)으로 정상 블록 소거를 수행하기 전에 깊은 소거(deep erase)를 위한 소거 전압 설정을 변경하는 단계를 포함한다. 예를 들어, 새로운 소거 동작의 소거 검증 전압은 정상 소거 검증 전압 보다 낮은 전압으로 설정될 수 있다. 새로운 소거 검증 전압은 경험적 결과들에 기초하여 결정될 수 있다. 새로운 소거 검증 전압은 임계 페이지 수에 따라 변화할 수 있다. 일부 구현예에서, 새로운 소거 동작은 정상 블록 소거 동작 이전에 블록을 사전 프로그래밍 (예를 들어, 블록의 모든 페이지)하는 단계를 포함하여, 소거될 비트 카운트의 양이 얕은 소거 문제를 극복하기에 충분히 크게 한다. 이러한 방식으로, 블록의 소거 깊이는 정상 소거 검증 전압으로 정상 소거에 의해 제어될 수 있다. 사전 프로그래밍 전압은 메모리 셀이 소거 상태의 임계 전압 보다 높은 임계 전압을 갖도록 프로그래밍되도록 선택될 수 있다. 메모리 셀이 특정 프로그래밍 상태에 있는지를 검증하기 위해 어떠한 프로그래밍 검증도 필요하지 않는다.
이 기술을 이용한, 새 소거 동작은 규칙적인 경우가 아니라 블록이 예를 들어, 임계 페이지의 플래그를 확인하여 소수의 프로그래밍된 페이지를 갖는 것으로 결정된 경우에만 실행되기 때문에 어떠한 잉여 내구성 손실도 없을 수 있다. 게다가, 새로운 소거 동작은 잉여 소거 펄스 또는 낮은 소거 검증 전압을 사용하여 소수의 프로그래밍된 메모리 셀이 과대 소거되지 않고 정상 소거 깊이가 되도록 소거되게 수행된다. 따라서, 어떠한 잉여 소거 손상이나 소거 성능 손실도 없다.
도 1a는 데이터를 소거 및/또는 프로그래밍하기 위한 시스템(100)의 예를 예시한다. 시스템(100)은 디바이스(110) 및 호스트 디바이스(120)를 포함한다. 디바이스(110)는 디바이스 제어기(112) 및 메모리(116)를 포함한다. 디바이스 제어기(112)는 프로세서(113) 및 내부 메모리(114)를 포함한다.
일부 구현예에서, 디바이스(110)는 저장 디바이스(storage device)이다. 예를 들어, 디바이스(110)는 임베디드(embedded) 멀티미디어 카드 (eMMC), 보안 디지털 (SD) 카드, SSD (solid-state drive), 또는 일부 다른 적절한 저장 디바이스일 수 있다. 일부 구현예에서, 디바이스(110)는 스마트 워치, 디지털 카메라 또는 미디어 플레이어이다. 일부 구현예에서, 디바이스(110)는 호스트 디바이스(120)에 결합된 클라이언트 디바이스이다. 예를 들어, 디바이스(110)는 호스트 디바이스(120)인 디지털 카메라 또는 미디어 플레이어 내의 SD 카드이다.
디바이스 제어기(112)는 범용 마이크로 프로세서, 또는 애플리케이션 전용 마이크로 컨트롤러이다. 일부 구현예에서, 디바이스 제어기(112)는 디바이스(110)를 위한 메모리 제어기이다. 이하의 섹션에서 디바이스 제어기(112)가 메모리 제어기인 구현예들에 기초하여 다양한 기술들을 설명한다. 그러나, 이하의 섹션들에서 설명된 기술들은 디바이스 제어기(112)가 메모리 제어기와 상이한 다른 유형의 제어기인 구현예들에도 또한 적용가능하다.
프로세서(113)는 명령들을 실행하고 데이터를 프로세싱하도록 구성된다. 명령들은 보조 메모리에 펌웨어 코드 및/또는 다른 프로그램 코드로서 개별적으로 저장되는 펌웨어 명령 및/또는 다른 프로그램 명령을 포함한다. 데이터는 다른 적절한 데이터 중에서 프로세서에 의해 실행되는 펌웨어 및/또는 다른 프로그램에 대응하는 프로그램 데이터를 포함한다. 일부 구현예에서, 프로세서(113)는 범용 마이크로 프로세서, 또는 애플리케이션 전용 마이크로 컨트롤러이다. 프로세서(113)는 또한 중앙 프로세싱 유닛 (CPU)로 지칭된다.
프로세서(113)는 내부 메모리(114)로부터 명령들 및 데이터를 액세스한다. 일부 구현예에서, 내부 메모리 (114)는 정적 램 (SRAM) 또는 동적 랜덤 액세스 메모리 (DRAM)이다. 예를 들어, 일부 구현예에서, 디바이스(110)가 eMMC, SD 카드 또는 스마트 워치일 때, 내부 메모리(114)는 SRAM이다. 일부 구현예에서, 디바이스(110)가 디지털 카메라 또는 미디어 플레이어인 경우, 내부 메모리(114)는 DRAM이다.
일부 구현예에서, 내부 메모리는 도 1a에 도시된 바와 같이 디바이스 제어기(112)에 포함된 캐시 메모리이다. 내부 메모리(114)는 프로세서(113)에 의해 실행되는 명령 및/또는 런타임 동안에 프로세서(113)에 의해 요청되는 데이터에 해당하는 명령 코드들을 저장한다.
디바이스 제어기(112)는 메모리(116)로부터 내부 메모리(114)로의 명령 코드 및/또는 데이터를 전송한다. 일부 구현예에서, 예를 들어, 메모리(116)는 명령 및/또는 데이터를 장기간 저장하도록 구성된 비 휘발성 메모리이고, 예를 들어, NAND 플래시 메모리 디바이스이거나, 또는 다른 적절한 비 휘발성 메모리 디바이스이다. 메모리(116)가 NAND 플래시 메모리인 구현예들에서, 디바이스(110)는 플래시 메모리 디바이스, 예를 들어, 플래시 메모리 카드이고, 디바이스 제어기(112)는 NAND 플래시 제어기이다. 예를 들어, 일부 구현예들에서, 디바이스(110)가 eMMC 또는 SD 카드일 때, 메모리(116)는 NAND 플래시이고; 일부 구현예들에서, 디바이스(110)가 디지털 카메라일 때, 메모리(116)는 SD 카드이고; 일부 구현예들에서, 디바이스(110)가 미디어 플레이어일 때, 메모리(116)는 하드 디스크이다. 단지 예시의 목적으로, 이하의 설명은 메모리(116)의 일 예로서 NAND 플래시 메모리를 사용한다.
도 1b는 복수의 블록(118)을 포함하는 메모리(116)의 예제 구성을 예시한다. 메모리(116)는 2 차원 (2D) 메모리 또는 3 차원 (3D) 메모리일 수 있다.
도 1c는 메모리(116)가 2D 메모리일 때의 2 차원 (2D) 메모리 블록(140)의 예시적인 구성을 예시한다. 블록(140)은 블록(118)일 수 있다. 블록 (140)은 다수의 셀 스트링(144)을 형성하기 위한 컬럼 비트 라인들 BL0, BL1, ... , BLn-1 및 BLn, 다수의 셀 페이지들(142)을 형성하기 위한 로우 워드 라인 WL0, WL1, ... , WLn-1, 및 WLn에 직렬로 결합된 메모리 셀들(141)을 포함한다. 셀 스트링(144)은 다수의 메모리 셀(141)들, 스트링 선택 트랜지스터(SST : string select transistor) (143) 및 접지 선택 트랜지스터(GST : ground select transistor)(145)를 포함할 수 있고, 이들은 전부 직렬로 연결된다. SST(143)의 게이트(gate)는 스트링 선택 라인(SSL)(146)에 연결된다. 상이한 스트링들에 SST들의 게이트들은 또한 동일한 SSL에 연결된다. 메모리 셀(141)의 게이트는 워드 라인 WL0, WL1, ..., WLn-1, WLn에 각각 연결된다. 메모리 셀(141)은 GST(145)를 통해 공통 소스 라인(CSL : common source line)(149)에 연결된다. GST(145)의 게이트는 접지 선택 라인(GSL)(148)에 연결된다. 상이한 스트링들 내의 GST들의 게이트들은 또한 동일한 GSL에 연결된다. 셀 페이지(cell page)(142)는 다수의 메모리 셀(141)을 포함할 수 있다. 셀 페이지(142) 내의 메모리 셀(141)의 게이트는 각각의 워드 라인(WL)에 직렬로 결합된다. 입력 전압이 워드 라인에 인가될 때, 입력 전압은 셀 페이지(142) 내의 메모리 셀(141)의 게이트에도 또한 인가된다. 판독 동작에서 블록(140)내의 특정 셀 페이지(152)를 판독하기 위해, 특정 셀 페이지(152)에 대응하는 워드 라인 상에 더 낮은 전압이 인가된다. 한편, 블록(140)의 다른 셀 페이지들에 더 높은 전압이 인가된다.
디바이스(110)는 판독, 기록, 및 소거 동작을 관리하기 위한 플래시 변환 계층(FTL : Flash Translation Layer)를 포함할 수 있다. FTL은 예를 들어, 내부 메모리(114)내, 디바이스 제어기(112)에 저장될 수 있다. FTL은 로직상의 블록내 로직 페이지들로부터 물리적 블록내 물리적 페이지로 매핑(mapping)을 저장하는 로직-투-물리(L2P : logical-to-physical) 어드레스 매핑 테이블을 사용한다.
도 1d는 메모리(116)가 3D 메모리인 예시적인 3D 메모리 블록(150)을 예시한다. 메모리 블록(150)은 블록(118)일 수 있다. 메모리 셀들(157)은 예를 들어 XYZ 좌표계에서 3차원으로 배열되고, 다수의 셀 페이지(152)를 형성하기 위해 다수의 워드 라인들에 그리고 다수의 셀 스트링(154)을 형성하기 위해 다수의 비트 라인들에 결합된다. 셀 스트링(154)은 직렬로 연결된 다수의 메모리 셀(157)들을 포함하고, 여기서, 메모리 셀(160)은 스트링 선택 라인(SSL)(156)에 결합된 SST로 구성될 수 있고, 메모리 셀(160)은 접지 선택 라인(GSL)(158)에 결합된 GST로 구성될 수 있다. 메모리 셀(157)은 GST들을 통해 공통 소스 라인(CSL)(159)에 연결된다.
메모리 블록(150)은 예를 들어, Z 방향을 따라서 수직으로 함께 적층된 다수의 메모리 층(160)들을 포함할 수 있다. 각각의 메모리 층(160)은 다수의 셀 페이지(152)을 포함하는 예를 들어, X-Y 평면내의 2 차원 평면 층일 수 있다. 각 셀 페이지(152)는 개별적으로 판독 및/또는 프로그래밍될 수 있다. 판독 동작에서 메모리 층(160)의 특정 셀 페이지(152)를 판독하기 위해, 특정 셀 페이지(152)에 대응하는 워드 라인 상에 더 낮은 전압이 인가된다. 더 낮은 전압은 또한 메모리 층들(160) 내의 다른 셀 페이지들(152)상에도 또한 인가된다. 한편, 블록(140)내의 다른 셀 페이지들 상에 더 높은 전압이 인가된다.
메모리 셀은 프로그래밍된 상태 또는 소거된 상태에 있을 수 있다. 예를 들어, 메모리 셀이 SLC인 경우, 해당 메모리 셀은 프로그래밍된 상태 "0"으로 프로그래밍될 수 있고, 소거 상태 "1"로 소거될 수 있다. 만약 메모리 셀이 MLC인 경우 그것은 2 비트 데이터를 저장할 수 있다. 메모리 셀은 프로그래밍 상태(0,1),(0, 0) 및(1, 0) 중 어느 하나로 프로그래밍되거나 소거 상태(1, 1)로 소거될 수 있다. 단지 예시를 위해서, SLC가 메모리 셀로 사용된다.
일단 프로그래밍되거나 소거되면, 메모리 셀은 대응하는 임계 전압을 갖는다. 임계 전압(threshold voltage)은 메모리 셀의 특성이다. 임계 전압 이상의 판독 전압이 메모리 셀의 게이트에 인가되면, 메모리 셀은 턴온(turn on)될 수 있다. 임계 전압 보다 낮은 판독 전압이 메모리 셀의 게이트에 인가되면, 메모리 셀은 턴 오프(turn off)될 수 있다. 판독 동작은 프로그래밍되거나 소거된 동작이 아니며 메모리 셀의 상태를 변경하도록 의도되지 않는다.
동일한 상태, 예를 들어 소거된 상태 또는 프로그래밍된 상태에 대응하는 블록 내의 다수의 메모리 셀의 임계 전압은 분포, 예를 들어 하한 전압(lower limit voltage)과 상한 전압(higher limit voltage) 사이의 범위를 가질 수 있다. 상기 범위 내의 임계 전압을 갖는 메모리 셀은 대응하는 상태에 있는 것으로 간주된다. 다시 말해서, 임의 상태에 있는 메모리 셀은 해당 범위 내의 임계 전압을 갖는다. 예를 들어, 도 2a에 도시된 바와 같이, 만약 메모리 셀이 Vl0과 Vh0 사이의 임계 전압을 갖는다면, 메모리 셀은 소거 상태 E에 있고; 만약 메모리 셀이 Vl1과 Vh1 사이의 임계 전압을 갖는다면, 메모리 셀은 프로그래밍된 상태 P에 있다. 커브(202, 204)은 개별적으로 메모리 셀들의 개별 상태 E, 및 P의 임계 전압 분포를 나타낸다.
정상 프로그램 동작 동안, 메모리 셀은 소거된 상태, 예를 들어 소거된 상태 E로부터 셀이 프로그래밍 전압을 메모리 셀에 인가하고 프로그래밍된 메모리 셀이 프로그래밍된 상태에 있는지를 검증함으로써, 프로그래밍된 상태 예를 들어, 프로그래밍된 상태 P로 프로그래밍된다. 검증 동작(verifying action)은 메모리 셀이 프로그래밍된 상태로 프로그래밍되어 있는지 여부를 검증하기 위해, 검증 전압 예를 들어, 프로그래밍된 상태의 임계 전압 예를 들어, 프로그래밍된 상태 P에 대한 Vl1을 사용할 수 있다. 프로그램/검증 사이클은 메모리 셀이 프로그래밍되고 프로그램된 상태에 있는 것으로 검증될 때까지 여러 번 반복될 수 있다.
정상 판독 동작 동안, 선택된 메모리 셀이 턴온 또는 턴 오프 상태인지 여부를 결정하기 위해 메모리 셀의 게이트에 결합된 워드 라인에 판독 전압이 인가될 수 있다. 프로그래밍된 상태(P)의 임계 전압 보다 더 작지만 소거된 상태 E의 임계 전압 보다 더 큰 판독 전압 VRd가 인가되는 경우, 메모리 셀은 그것이 소거된 상태를 갖는 경우 턴 온되고, 그것이 프로그래밍된 상태를 갖는 경우 턴 오프된다.
정상 소거 동작 동안, 예를 들어, 블록 또는 다른 유닛들 내의 메모리 셀들은 소거된다. 일부 실시예에서, 메모리 셀들은 메모리 셀들의 p-우물 영역을 시간 기간동안 소거 전압으로 상승시키고 선택된 블록 또는 유닛의 워드 라인들(메모리 셀들의 게이트들에 연결된 것들)은 접지 시킴으로써 정상 소거 동작에서 소거되고, 한편 소스 및 비트 라인들은 플로팅(floating)된다. 소거 전압은 메모리 셀에 대한 임계 전압보다 더 높을 수 있다. 소거되도록 선택되지 않은 블록 또는 유닛들에서, 워드 라인들은 플로팅된다. 용량성 커플링(capacitive coupling)으로 인해, 선택되지 않은 워드 라인, 비트 라인, 선택 라인 및 공통 소스 라인은 또한 소거 전압의 상당한 부분까지 상승되어 소거되도록 선택되지 않은 블록들상의 소거를 방해한다. 소거되도록 선택된 블록에서, 강한 전기장이 선택된 메모리 셀들의 터널 산화물 층에 인가되고 플로팅 게이트의 전자가 예를 들어 파울러-노르드하임(Fowler-Nordheim) 터널링 메커니즘에 의해 기판 측에 방출될 때 선택된 메모리 셀은 소거된다. 전자가 플로팅 플로팅 게이트로부터 p-우물 영역으로 전송될 때, 선택된 셀의 임계 전압은 더 낮아진다.
소거 전압이 메모리 셀들을 소거하기 위해 인가된 후에, 블록 또는 유닛의 메모리 셀은 소거된 상태 또는 여전히 프로그래밍된 상태에 있을 수 있다. 메모리 셀의 임계 전압은 도 2b의 커브(252 또는 254)에 의해 예시된 분포를 가질 수 있다. 제어기, 예를 들어, 도 1a의 디바이스 제어기(112)는 그런 다음 소거 검증 전압 VE를 인가함으로써, 소거된 메모리 셀이 소거된 상태에 있는지의 여부를 검증하기 위해 소거 검증 동작을 실행할 수 있다. 주어진 메모리 셀의 임계 전압이 VE미만 이면, 제어기는 메모리 셀이 소거 상태가 되도록 적절하게 소거되었다고 결정할 수 있다. 만약 제어기가 VE 보다 더 큰 임계 전압을 갖는 메모리 셀들의 수(또는 비트의 카운트(count) 또는 스트링의 카운트)가 임계 수(예를 들어, 3, 4 또는 5) 보다 낮다고 결정하면, 제어기는 블록은 소거 검증 테스트를 통과하고 더 이상 소거가 블록에 필요하지 않다고 결정한다.
만약 제어기가 VE 보다 더 큰 임계 전압을 갖는 메모리 셀들의 수가 임계 수 이상이라고 결정하면, 제어기는 블록이 소거 검증 테스트를 통과하지 못했고, 더 많은 소거가 필요하다고 결정한다. 정상 소거 동작에서, 제어기는 스텝 전압으로 소거 전압을 증가시키고, 메모리 셀을 소거하고 다시 검증하기 위해 증가된 소거 전압을 인가할 수 있다. 스텝 전압은 고정되고, 예를 들어, 1볼트(V)일 수 있다. 정상 소거 동작에서, 소거 검증 사이클은 VE 보다 더 높은 임계 전압을 갖는 메모리 셀의 수가 임계 수보다 작게 될 때까지 여러 번 (예를 들어, 3, 4 또는 5 회) 반복될 수 있다.
도 2b의 커브(252)는 정상 소거 동작 후의 블록 내의 메모리 셀의 임계 전압 분포를 나타낸다. 블록은 VE 보다 더 높은 임계 전압을 갖는 메모리 셀들의 수가 임계 수 미만 이도록 프로그래밍된 페이지의 충분한 수를 갖고 블록은 소거 검증을 통과하고, 메모리 셀은 V0에서 임계 전압 분포 중심을 갖는 정상 소거된 상태로 소거된다.
도 2b의 커브(254)는 정상 소거 동작 후의 소수의 프로그래밍된 페이지들(예를 들어, 5페이지 보다 작은)을 갖는 블록내의 메모리 셀의 임계 전압 분포를 나타낸다. 충분히 프로그래밍된 페이지들을 갖는 블록내 메모리 셀들보다 더 적은 수의 메모리 셀이 블록내에 프로그래밍되어 있기 때문에, 블록이 임계 수 미만의 VE 보다 더 높은 임계 전압을 갖는 블록내 메모리 셀들의 수를 갖고 소거 검증을 통과할 확률이 더 높다. 그러나, 커브(254)의 중앙 임계 전압 V1은 커브(252)의 중앙 임계 전압 V0 보다 더 크고, 커브(254)의 임계 전압의 분포는 커브(252)의 임계 전압의 분포 보다 상위 레벨로 시프트(shift)된다. 즉, 블록의 메모리 셀은 얕은 소거를 경험하고, 정상 소거 상태에 있지 않다. 블록이 재-프로그래밍되고 재-판독될 때, 얕게 소거된 메모리 셀은 도 2a의 커브(202') 및 커브(204)에 의해 도시된 임계 전압 분포를 가질 수 있다. 얕은 소거 상태에 메모리 셀들은 Vl0'로 시프트된 더 낮은 임계 전압 및 Vh0'로 시프트된 더 높은 임계 전압을 가질 수 있다.
일부 경우들에서, 제어기는 소거하기 전에 블록을 사전 프로그래밍 할 수 있다. 그러나, 블록은 충분한 프로그래밍된 페이지를 가질 수 있으며, 얕은 소거 문제를 피하기 위해 블록을 사전 프로그래밍할 필요가 없다. 따라서, 사전 프로그래밍은 블록의 내구성을 불필요하게 저하시킬 수 있다.
일부 경우들에서, 제어기는 임의의 블록을 소거하기 위해 소거 검증 전압을 더 낮은 레벨로 변경할 수 있다. 그러나, 충분한 프로그래밍된 페이지를 갖는 블록에 대하여, 블록은 더 깊은 소거를 경험할 수 있다. 따라서, 소거 검증 전압을 변화시키는 것은 또한 사이클 동안 잉여 스트레스(extra stress)로 인해 블록의 내구성을 저하시킬 수 있다.
블록이 프로그래밍될 때, 블록의 페이지는 순차적으로 프로그래밍된다. 예를 들어, 블록은 N 페이지를 갖는다. 데이터는 페이지 0, 페이지 1, 페이지 2, ... 및 페이지 X에 순차적으로 프로그래밍될 수 있고, 여기서 X는 정수이고 0 <= X <= N-1이다. 페이지가 프로그래밍되면 페이지가 프로그래밍되었음을 나타내는 플래그가 페이지에 프로그래밍된 데이터와 함께 메모리에 기록될 수 있다. 예를 들어, 플래그는 페이지의 이중화 영역 또는 메모리에 저장될 수 있다. 플래그는 소거 플래그일 수 있다. 소거 플래그가 제 1 값 예를 들어, 0을 가지면, 페이지가 프로그래밍되었음을 나타내고; 소거 플래그가 제 1 값과 다른 제 2 값, 예를 들어, 1을 가지면, 페이지가 프로그래밍되지 않았거나 페이지가 프로그래밍될 준비가 되어 있다는 것을 나타낸다.
본 구현예들은 블록이 소수의 프로그램밍된 페이지를 갖고, 블록내 특정 페이지 수 X를 갖는 미리 결정된 임계 페이지가 프로그래밍되어 있는지 여부를 확인함으로써 얕은 소거 문제를 경험할 수 있는 지 여부를 결정할 수 있다. 예를 들어, 제어기는 미리 결정된 임계 페이지의 소거 플래그를 확인할 수 있다. 만약 소거 플래그가 0이면, 임계 페이지가 프로그래밍되었으며, 프로그래밍된 적어도 X+1 페이지가 있다는 것을 나타낸다. 제어기는 블록이 충분한 프로그래밍된 페이지를 갖고, 만약 블록이 정상 소거 동작으로 소거되면 얕은 소거 문제를 피할 수 있다고 결정할 수 있다. 만약 소거 플래그가 1이면, 임계 페이지가 프로그래밍되지 않았으며 프로그래밍된 것이 많아야 X 페이지가 있다는 것을 나타낸다. 제어기는 블록이 소수의 프로그래밍된 페이지를 갖고, 만약 블록이 정상 소거 동작으로 소거되면 얕은 소거 문제를 경험할 수 있다고 결정할 수 있다. 따라서, 제어기는 새로운 소거 동작을 수행하여 블록을 소거할 수 있다. 새로운 소거 동작은 정상 소거 동작 보다 더 깊게 블록을 소거하도록 구성되어 블록이 얕은 소거 문제를 갖지 않도록 한다.
도면들 3a-3c는 하나 이상의 구현예에 따른 프로그래밍된 페이지를 블록을 소거하기 위한 소거 동작의 예를 예시한다. 소거 동작은 제어기, 예를 들어 도 1a의 디바이스 제어기(112) 또는 도 1a의 호스트 디바이스(120)내 제어기에 의해 수행될 수 있다. 제어기는 블록에 대한 포괄적인(generic) 소거 명령을 수신할 수 있다. 제어기는 블록이 소수의 프로그래밍된 페이지를 갖는지 여부를 결정함으로써 블록상에 정상 소거 동작 또는 블록상에 새로운 소거 동작을 사용할지를 결정한다. 블록이 충분한 프로그래밍된 페이지를 갖는다고 결정되면, 제어기는 블록이 정상 소거 동작으로 소거된다고 결정할 수 있다. 블록이 소수의 프로그래밍된 페이지를 갖는다고 결정되면, 제어기는 블록이 새로운 소거 동작으로 소거된다고 결정할 수 있다.
도 3a는 하나 이상의 구현에 따른 사전 판독 및 잉여 소거 동작을 사용하여 프로그래밍된 페이지를 갖는 블록을 효율적으로 소거하는 프로세스(300)의 흐름도이다.
블록 내의 페이지가 프로그래밍된다(302). 각각의 페이지는 블록내 개별 페이지 수를 갖는다. 데이터는 블록의 페이지에 순차적으로 프로그래밍된다. 상기에서 언급한 바와 같이, 블록이 0 내지 63의 페이지 수를 갖는 64 개의 페이지를 갖는 경우, 데이터는 페이지 0, 페이지 1, 페이지 2, ..., 및 페이지 P로 순차적으로 프로그래밍되고, 여기서 0 <= P <= 63이다.
임계 페이지의 소거 플래그는 사전 판독된다(304). 임계 페이지는 페이지 수 X를 갖는다. 예를 들어, 경험적 결과에 기초하여, 페이지 수 X가 미리 결정될 수 있다. 예를 들어, X 프로그래밍된 페이지 (0 내지 X-1 페이지 수)를 갖는 블록이 정상 소거 동작으로 소거된 후에, 블록은 예를 들어, 도 2a의 커브(202')에 의해 예시된 바와 같이, 얕은 소거 효과를 나타낸다. 그에 반해서, X+1 프로그래밍된 페이지(페이지 수 0 내지 X)를 갖는 블록은 정상 소거 동작 후에 얕은 소거 효과를 나타내지 않는다. 따라서, 페이지 수 X가 임계 수인 것으로 결정될 수 있고, 페이지 수 X를 갖는 페이지는 블록내 임계 페이지이다.
제어기는 소거 플래그가 1과 동일한 지 여부를 결정한다(306). 전술한 바와 같이, 소거 플래그가 1과 같지 않으면, 즉, 0과 같으면, 임계 페이지가 프로그래밍되었음을 나타낸다. 따라서, 제어기는 블록이 얕은 소거 문제의 위험성이 낮은 정상 소거 동작으로 소거될 블록에 대해 충분한 프로그래밍된 페이지를 갖는다고 결정한다.
소거 플래그가 1과 동일하지 않는다고 결정한 것에 응답하여, 제어기는 소거 검증(308)을 포함하는 정상 소거 동작으로 블록을 소거하도록 진행된다. 전술한 바와 같이, 정상 소거 동작에서, 각각이 정상 소거 전압 EV 이상인 임계 전압을 갖는 다수의 메모리 셀(또는 비트들의 카운트)이 미리 결정된 수보다 작을 때까지 소거 및 검증 사이클을 반복함으로써 블록이 소거된다. 다수의 사이클에서, 소거 펄스(또는 샷(shot))의 소거 전압은 고정된 스텝 전압, 예를 들어, 사이클 당 1V로 증가되고, 소거 검증 전압 EV는 고정된다.
만약 소거 플래그가 1과 같으면 임계 페이지가 프로그래밍되지 않았으며 블록내 프로그래밍된 것이 많아야 X 페이지가 있다는 것을 나타낸다. 즉, 제어기는 블록이 소수의 프로그래밍된 페이지를 갖고, 만약 블록이 정상 소거 동작으로 소거된다면 얕은 소거 문제의 위험이 있다고 결정한다. 따라서, 제어기는 새로운 소거 동작(310)을 수행할 것을 결정할 수 있다.
새로운 소거 동작(310)에서, 제어기는 소거 검증을 포함하는 정상 소거 동작으로 블록을 먼저 소거한다(320). 단계(320)은 단계(308)과 같다. 단계(320)후에, 제어기는 새로운 소거 전압(322)을 갖는 잉여 소거 펄스를 추가할 수 있다. 새로운 소거 전압 Vnew는 정상 소거 동작에서의 마지막 소거 전압 Vlast 보다 잉여 전압 ΔV만큼 더 클 수 있고, 즉 Vnew = Vlast + ΔV이다. 잉여 전압 ΔV는 정상 소거 동작에서의 고정된 스텝 전압과 동일하거나 상이할 수 있다. 잉여 전압 ΔV는 임계 페이지의 페이지 수 X와 관련될 수 있다. 잉여 전압 ΔV는 경험적 결과에 기초하여 결정될 수 있다. 예를 들어, X 개의 프로그래밍된 페이지를 갖는 다수의 블록들의 각각은 정상 소거 동작으로 먼저 소거되고 그런 다음 새로운 소거 전압 Vnew로 소거된다. 잉여 전압 ΔV는 블록이 얕은 소거 문제를 나타내지 않을 때까지 조정될 수 있다. 일부 경우들에서, 제어기는 가변되는 잉여 전압 ΔV를 갖는 2 개 이상의 잉여 소거 펄스를 추가할 수 있다.
대안으로, 단계(320) 이후에, 제어기는 잉여의 다수의 샷(322a)을 추가할 수 있다. 일부 경우들에서, 각각의 잉여 샷(또는 펄스)은 정상 소거 동작, 즉 1 V에 고정 소거 전압만큼 선행 소거 전압으로부터 증가된 소거 전압을 갖는다. 즉, 잉여 샷은 정상 소거 동작을 사이클 당 고정 스텝 전압을 포함하는 동일한 소거 설정으로 계속한다. 다수의 샷의 수는 임계 페이지의 페이지 수 X와 관련되며 경험적 결과에 기초하여 결정될 수 있다. 예를 들어, X 개의 프로그래밍된 페이지를 갖는 블록은 정상 소거 동작으로 먼저 소거되고, 그런 다음 잉여 샷으로 소거된다. 블록이 어떠한 얕은 소거 문제를 나타내지 않을 때까지 잉여 샷의 수는 조정될 수 있다.
단계(320)에서, 정상 소거 동작 후에, 블록은 소거 검증을 통과한다는 것에 유의한다. 단계 (322) 또는 단계 (322a)에서, 수행될 어떠한 소거 검증도 없다. 블록이 추가로 소거되고 소거 검증 전압 VE 보다 더 큰 임계 전압을 갖는 메모리 셀의 수가 또한 축소되었기 때문에 소거 검증 테스트를 수행하는 것이 또한 불필요하다. 블록은 단계(322) 또는 단계(322a)에서 잉여 소거 후에 소거 검증 테스트를 확실히 통과할 수 있다.
단계(308) 또는 단계(310) 후에, 프로세스(300)는 정상 프로그래밍 동작에 따라 블록이 프로그래밍되는 단계(312)로 진행한다. 그런 다음, 블록은 정상 판독 동작(314)에 따라 판독된다. 일부 경우들에서, 판독 동작으로부터, 블록 내의 메모리 셀(또는 비트)의 임계 전압의 분포가, 예를 들어 도 2a에 예시된 바와 같이 획득될 수 있다. 블록 내의 메모리 셀의 획득된 임계 전압의 분포에 기초하여, 블록이 얕은 효과 문제를 나타내는지의 여부가 결정될 수 있다.
도 3b는 하나 이상의 구현들에 따른 사전 판독 및 변화하는 소거 검증 깊이 동작들을 사용하여 프로그래밍된 페이지들을 갖는 블록을 효율적으로 소거하는 다른 프로세스(330)의 흐름도이다. 프로세스(330) 내의 단계들은 단계(332)를 제외하고는 도 3a의 프로세스(300)의 단계들과 유사하다.
임계 페이지의 소거 플래그가 1과 같은 것으로 결정한 것에 응답하여, 소거 단계(308)를 수행하기 전에, 제어기는 소거 검증 동작을 위한 소거 검증 전압을 미리 결정된 전압으로부터 수정된, 예를 들어 더 낮은 전압으로 변경한다. 예를 들어, 만약 소거 검증 전압 VE가 더 낮은(또는 더 깊은) 레벨로 예를 들어, 0.3V로부터 0.2V로 시프트되면, 더 높은 소거 검증 전압 예를 들어, 0.3 V을 갖는 소거 검증을 통과하는 블록은 더 낮은 소거 검증 전압 예를 들어, 0.2 V를 갖는 소거 검증을 통고할 수 없다. 따라서, 단계(308)에서, 블록이 더 낮은 소거 검증 전압을 갖는 소거 검증을 통과할 수 있을 때까지 블록은 한번 이상 소거되어야 한다. 이러한 방식으로, 블록상에서 잉여 소거가 수행되어 얕은 소거 문제가 배제된다. 그에 반해서, 만약 단계(332)가 수행되지 않으면, 단계(308)에서 미리 결정된 전압이 소거 검증 전압으로 사용된다.
변경된 소거 검증 전압은 임계 페이지의 페이지 수 X와 관련될 수 있다. 변경된 소거 검증 전압은 경험적 결과에 기초하여 결정될 수 있다. 예를 들어, X 개의 프로그래밍된 페이지를 갖는 블록은 변경된 소거 검증 전압을 갖는 정상 소거 동작에서 소거된다. 소거 검증 전압의 수는 블록이 더 이상 얕은 소거 문제를 나타내지 않을 때까지 조정될 수 있다.
도 3c는 하나 이상의 구현예에 따른 사전 판독 및 사전 프로그래밍 동작을 사용하여 프로그래밍된 페이지를 갖는 블록을 효율적으로 소거하는 추가 프로세스(350)의 흐름도이다. 프로세스(350) 내의 단계들은 단계(352)를 제외하고는 도 3a의 프로세스(300)의 단계들과 유사하다.
임계 페이지의 소거 플래그가 1 과 같다는 결정에 응답하여, 제어기는 소거 단계(308)를 수행하기 전에 블록상에 사전 프로그래밍을 수행한다. 예를 들어, 블록은 프로그래밍 전압을 갖는 프로그래밍 펄스를 인가함으로써 사전 프로그래밍될 수 있다. 블록 내의 모든 페이지는 단계(352)에서 사전 프로그래밍되어, 블록이 소거 전에 충분히 프로그래밍된 페이지 또는 프로그래밍된 비트를 갖도록 할 수 있다. 단계(352)는 메모리 셀들이 특정 프로그래밍된 상태로 프로그래밍되는지 여부를 검증하는 것을 포함하지 않는다. 대신에, 단지 프로그래밍 펄스만이 블록에 인가된다. 프로그래밍 전압이 임계 전압의 페이지 수 X에 관련될 수 있다. 프로그래밍 전압은 경험적 결과에 기초하여 결정될 수 있다.
일부 구현예들에서, 2 개 이상의 미리 결정된 임계 페이지가 블록에 대해 사전 결정된다. 예를 들어, 블록은 64 페이지를 가지며, 페이지 5와 페이지10이 임계 페이지로 결정될 수 있다. 제어기는 더 큰 페이지 수, 예를 들어 페이지 10을 갖는 제 1 임계 페이지의 소거 플래그를 먼저 미리 판독할 수 있다. 만약 제 1 임계 페이지의 소거 플래그가 1이 아닌 경우, 제어기는 충분한 프로그래밍된 페이지를 갖는 블록은 정상 소거 동작으로 소거된다고 결정할 수 있다. 만약 제 1 임계 페이지의 소거 플래그가 1이면, 제어기는 더 작은 페이지 수, 예를 들어, 페이지 5를 갖는 제 2 임계 페이지의 소거 플래그를 사전 판독하는 것을 계속할 수 있다.
만약 제 2 임계 페이지의 소거 플래그가 1이 아닌 경우, 제어기는 블록이 더 작은 페이지 수와 더 큰 페이지 수, 예를 들어, 6 내지 10 프로그래밍된 페이지들 사이의 다수의 프로그래밍된 페이지를 갖는 것으로 결정한다. 블록은 정상 소거 동작과는 상이한 제 1 소거 동작으로 소거될 수 있다. 도면들 3a-3c에 도시된 바와 같이, 제 1 소거 동작은 가변되는 잉여 전압 또는 잉여의 다수의 샷을 갖는 잉여 펄스를 추가하거나, 소거 검증 전압을 변경하거나, 블록을 사전 프로그래밍하는 것을 포함할 수 있다. 제 1 소거 동작은 경험적 결과에 따라 예를 들어, 상기에서 언급한 방법과 같이 결정될 수 있다.
만약 제 2 임계 페이지의 소거 플래그가 1이면, 제어기는 블록이 소수의 프로그래밍된 페이지를, 예를 들어, 많아야 5 개의 프로그래밍된 페이지를 갖는다고 결정한다. 블록은 제 1 소거 동작 및 정상 소거 동작과 상이한 제 2 소거 동작으로 소거될 수 있다. 도면들 3a-3c에 도시된 바와 같이, 제 1 소거 동작은 가변되는 잉여 전압 또는 잉여의 다수의 샷을 갖는 잉여 펄스를 추가하거나, 소거 검증 전압을 변경하거나, 블록을 사전 프로그래밍하는 것을 포함할 수 있다. 제 2 소거 동작은 경험적 결과에 따라 예를 들어, 상기에서 언급한 방법과 같이 결정될 수 있다. 제 2 소거 동작은 프로그래밍된 페이지 수가 더 적기 때문에 제 1 소거 동작 보다 더 깊게 블록을 소거한다.
개시된 실시예 및 다른 실시예는 하나 이상의 컴퓨터 프로그램 제품, 예를 들어, 데이터 프로세싱 장치의 동작에 의해 실행되거나 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 판독 가능한 매체 상에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능한 매체는 기계 판독 가능한 저장 디바이스, 기계 판독 가능한 저장 기판, 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다. "데이터 프로세싱 장치(data processing apparatus)"라는 용어는 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 또는 복수의 프로세서 또는 컴퓨터를 포함하여 데이터를 프로세싱하기 위한 모든 장치, 디바이스 및 기계를 아우른다. 장치는 하드웨어에 추가하여, 문제의 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들의 하나 이상의 조합을 구성하는 코드에 대한 실행 환경을 생성하는 코드를 포함할 수 있다.
시스템은 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 프로세싱하기 위한 모든 장치, 디바이스 및 기계를 아우를 수 있다. 시스템은 하드웨어에 추가하여, 문제의 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들의 하나 이상의 조합을 구성하는 코드에 대한 실행 환경을 생성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(또한, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로서 알려진)은 컴파일된 언어 또는 기계 번역 언어를 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있으며, 그것은 컴퓨팅 환경에서 사용하기에 적합한 독립형 프로그램로서 또는 모듈로서, 컴포넌트, 서브 루틴 또는 다른 유닛으로서 배치될 수 있다. 컴퓨터 프로그램은 반드시 파일 시스템의 파일에 대응하지는 않는다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 부분, 문제의 프로그램에 전용인 단일 파일 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되거나 통신 네트워크로 상호 연결된 다수의 사이트들에 걸쳐 분산된 다수의 컴퓨터들상에서의 실행을 위해 배치될 수 있다.
본 문서에 설명된 프로세스들 및 로직 플로우는 본 출원에 설명된 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 플로우는 또한 예를 들어, FPGA(필드 프로그램 가능한 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)와 같은 특수 용도의 로직 회로부에 의해 수행될 수 있으며, 그리고 장치는 또한 특수 용도의 로직 회로부로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서는 예로서, 범용 및 특수 용도 마이크로 프로세서와 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 컴포넌트는 명령을 수행하기 위한 프로세서 및 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스를 포함할 수 있다. 일반적으로, 컴퓨터는 예를 들어, 자기, 광 자기 디스크 또는 광 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스를 포함할 수 있거나 또는 대용량 저장 디바이스로부터 데이터를 수신하거나 대용량 저장 디바이스로 데이터를 전송하거나 또는 둘 모두를 위해 동작 가능하게 결합될 수 있다. 그러나, 컴퓨터는 이러한 디바이스를 반드시 가질 필요는 없다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적절한 컴퓨터 판독 가능한 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 자기 디스크를 포함하는 모든 형태의 비 휘발성 메모리, 매체 및 메모리 디바이스를 포함할 수 있다. 프로세서 및 메모리는 특수 용도 로직 회로부에 의해 보충되거나 또는 그 안에 통합될 수 있다.
본 문서는 많은 세부 사항을 설명할 수 있지만, 이들은 청구된 발명의 범위 또는 청구될 수 있는 것의 범위를 제한하는 것으로 해석되어서는 안되며, 오히려 특정 실시예에 특정한 특징의 설명으로 해석되어야 한다. 개별적인 실시예들의 문맥에서 본 문서에 설명된 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥에서 설명된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적절한 서브 조합으로 구현될 수 있다. 게다가, 특징은 어떤 조합으로 동작하는 것으로, 심지어 처음에 청구된 것과 같이 상기에서 설명될 수 있지만, 일부 경우에 있어서, 청구된 조합으로부터 하나 이상의 특징은 조합으로부터 절개될 수 있고, 그리고 청구된 조합은 서브 조합 또는 서브 조합의 변형에 관한 것일 수 있다. 유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이것은 바람직한 결과를 달성하기 위해, 이런 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 예시된 모든 동작들이 수행될 필요가 있는 것으로 이해되어서는 안 된다.
단지 소수의 예들 및 구현예들이 개시된다. 설명된 예들 및 구현예 및 다른 구현예들에 대한 변형, 수정 및 개선이 개시된 것에 기초하여 행해질 수 있다.

Claims (20)

  1. 시스템으로서,
    블록들을 포함하는 메모리로서, 각각의 블록은 복수의 페이지들을 갖는, 상기 메모리; 및
    상기 메모리에 결합된 제어기로서,
    각각의 블록의 프로그래밍된 페이지들의 수를 결정하기 위해서 상기 메모리의 블록내의 특정 페이지 수를 갖는 임계 페이지(threshold page)가 프로그래밍된지 여부를 결정하고;
    상기 임계 페이지가 프로그래밍되었다고 결정한 것에 응답하여, 정상 소거 동작(normal erase action)에 따라 상기 블록을 소거하고; 및
    상기 임계 페이지가 프로그래밍되지 않았다고 결정한 것에 응답하여, 상기 블록을 상기 정상 소거 동작보다 더 깊게(deeper) 소거하도록 구성된 특정 소거 동작에 따라 상기 블록을 소거하도록 구성된, 상기 제어기를 포함하는, 시스템.
  2. 제 1 항에 있어서, 플래그(flag)가 상기 임계 페이지가 프로그래밍된지 여부를 표시하기 위해 사용되고, 상기 제어기는 상기 임계 페이지의 상기 플래그가 설정된 값과 같은지 여부를 결정함으로써 상기 임계 페이지가 프로그래밍된지 여부를 결정하도록 구성된, 시스템.
  3. 제 2 항에 있어서, 상기 제어기는
    상기 메모리로부터 상기 임계 페이지의 상기 플래그를 판독하도록 구성된, 시스템.
  4. 제 1 항에 있어서, 상기 특정 페이지 수는 경험적 결과들에 의해 미리 결정되는, 시스템.
  5. 제 1 항에 있어서, 상기 제어기는
    제 1 소거 검증 사이클(erase-verify cycle)을 수행하는 것으로서,
    상기 블록 상에 정상 소거 전압을 갖는 소거 펄스를 인가하는 것; 및
    정상 소거 검증 전압 보다 작지 않은 임계 전압을 갖는 메모리 셀들의 수가 임계 수(threshold number) 보다 작은 지의 여부를 검증함으로써 소거 검증 테스트를 수행하는 것을 포함하는, 상기 제 1 소거 검증 사이클(erase-verify cycle)을 수행하고;
    상기 메모리 셀들의 수가 상기 임계 수 보다 작은 것으로 결정한 것에 응답하여, 상기 블록이 상기 소거 검증 테스트를 통과하고 더 이상의 추가 소거를 수행하지 않는 것으로 결정하고; 및
    상기 메모리 셀들의 수가 상기 임계 수 보다 작지 않은 것으로 결정한 것에 응답하여, 상기 블록이 상기 소거 검증 테스트를 통과할 때까지 하나 이상의 제 2 소거 검증 사이클을 수행하고, 상기 정상 소거 전압은 사이클 당 스텝 전압(step voltage) 만큼 증가됨으로써 상기 정상 소거 동작에 따라 상기 블록을 소거하도록 구성된, 시스템.
  6. 제 5 항에 있어서, 상기 제어기는
    상기 정상 소거 동작에 따라 상기 블록을 소거하고, 그런 다음
    상기 블록 상에 잉여 소거(extra erase)를 수행함으로써 특정 소거 동작에 따라 상기 블록을 소거하도록 구성된, 시스템.
  7. 제 6 항에 있어서, 상기 제어기는
    상기 블록 상에 특정 소거 전압을 갖는 잉여 소거 펄스를 인가함으로써 상기 블록 상에 상기 잉여 소거를 수행하도록 구성되고, 상기 특정 소거 전압은 잉여 전압만큼 상기 블록 상에 인가된 선행 소거 전압 보다 더 높은, 시스템.
  8. 제 7 항에 있어서, 상기 잉여 전압은 상기 임계 페이지의 특정 페이지 수와 관련된, 시스템.
  9. 제 7 항에 있어서, 상기 잉여 전압은 경험적 결과(empirical result)들에 기초하여 미리 결정되는, 시스템.
  10. 제 6 항에 있어서, 상기 제어기는 상기 블록 상에 하나 이상의 잉여 소거 펄스를 인가함으로써 상기 블록 상에서 잉여 소거를 수행하도록 구성되고, 및
    상기 소거 펄스들의 각각에서 소거 전압은 상기 스텝 전압 만큼 상기 블록 상에 인가된 선행 소거 전압 보다 더 높은, 시스템.
  11. 제 10 항에 있어서, 상기 하나 이상의 소거 펄스들의 수는 특정 임계 페이지의 페이지 수와 관련된, 시스템.
  12. 제 10 항에 있어서, 상기 하나 이상의 소거 펄스들의 수는 경험적 결과들에 의해 미리 결정되는, 시스템.
  13. 제 5 항에 있어서, 상기 제어기는
    잉여 검증 전압 만큼 상기 정상 소거 검증 전압을 새로운 소거 검증 전압으로 감소시키고, 및
    상기 새로운 소거 검증 전압을 사용하여 상기 블록 상에 소거 검증 사이클을 수행함으로써 상기 특정 소거 동작에 따라 상기 블록을 소거하도록 구성된, 시스템.
  14. 제 13 항에 있어서, 상기 잉여 검증 전압은 상기 임계 페이지의 특정 페이지 수와 관련되고 및 경험적 결과들에 기초하여 미리 결정되는, 시스템.
  15. 제 5 항에 있어서, 상기 제어기는
    상기 블록을 사전 프로그래밍하고, 그런 다음
    상기 정상 소거 동작에 따라 상기 블록 상에서 소거-검증 사이클을 수행함으로써 상기 특정 소거 동작에 따라 상기 블록을 소거하도록 구성된, 시스템.
  16. 제 15 항에 있어서, 상기 제어기는 상기 블록의 페이지들에 프로그래밍 전압을 인가함으로써 상기 블록을 사전 프로그래밍하여 상기 블록내 프로그래밍된 페이지의 수가 특정 페이지 수보다 더 크도록 구성되는, 시스템.
  17. 제 1 항에 있어서, 상기 제어기는
    상기 블록을 소거 한 후, 상기 블록을 프로그래밍하고,
    상기 프로그래밍된 블록내의 메모리 셀들의 임계 전압들의 분포를 결정하기 위해 상기 블록을 판독하고, 및
    상기 프로그래밍된 블록의 메모리 셀들의 임계 전압들의 결정된 분포의 결과에 기초하여 상기 블록이 얕은 소거(shallow erase)의 효과를 나타내는지 여부를 결정하도록 구성된, 시스템.
  18. 제 1 항에 있어서, 상기 제어기는
    상기 블록 내의 제 1 페이지 수를 갖는 제 1 임계 페이지가 프로그래밍된지 여부를 결정하고;
    상기 제 1 임계 페이지가 프로그래밍된 것으로 결정한 것에 응답하여, 상기 정상 소거 동작에 따라 상기 블록을 소거하고;
    상기 제 1 임계 페이지가 프로그래밍되지 않았다고 결정한 것에 응답하여, 상기 블록 내의 제 2 페이지 수를 갖는 제 2 임계 페이지가 프로그래밍되었는지 여부를 결정하고, 상기 제 2 페이지 수가 상기 제 1 페이지 수 보다 작은 지 여부를 결정하고;
    상기 제 2 임계 페이지가 프로그래밍되었다고 결정한 것에 응답하여, 상기 정상 소거 동작 보다 더 깊게 상기 블록을 소거하도록 구성된 제 1 소거 동작에 따라 상기 블록을 소거하고; 및
    상기 제 2 임계 페이지가 프로그래밍되지 않았다고 결정한 것에 응답하여, 상기 제 1 소거 동작 보다 더 깊게 상기 블록을 소거하도록 구성된 제 2 소거 동작에 따라 상기 블록을 소거하도록 구성된, 시스템.
  19. 메모리내 블록을 소거하는 방법에 있어서,
    각각의 블록의 프로그래밍된 페이지들의 수를 결정하기 위해서 상기 메모리의 특정 블록내의 특정 페이지 수를 갖는 임계 페이지가 프로그래밍된지 여부를 결정하는 단계; 및
    상기 임계 페이지가 프로그래밍되지 않았다고 결정한 것에 응답하여, 상기 블록을 정상 소거 동작보다 더 깊게 소거하도록 구성된 특정 소거 동작에 따라 상기 블록을 소거하는 단계를 포함하고,
    상기 정상 소거 동작은 복수의 프로그래밍된 페이지들을 갖는 블록에 대하여 적용되고, 상기 복수의 프로그래밍된 페이지의 수는 상기 특정 페이지 수 보다 더 큰, 방법.
  20. 제 19 항에 있어서, 상기 특정 소거 동작은
    상기 블록을 소거하기 전에 상기 블록을 사전 프로그래밍하는 단계,
    상기 블록을 소거하기 전에 소거 검증 전압을 감소시키는 단계, 또는
    새로운 소거 전압을 갖는 하나 이상의 소거 펄스를 추가하는 단계 중 적어도 하나를 포함하는, 방법.
KR1020190076558A 2019-05-10 2019-06-26 소수의 프로그래밍된 페이지들을 갖는 블록 소거하기 KR102220093B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/409,470 2019-05-10
US16/409,470 US10665303B1 (en) 2019-05-10 2019-05-10 Erasing blocks with few programmed pages

Publications (2)

Publication Number Publication Date
KR20200130630A KR20200130630A (ko) 2020-11-19
KR102220093B1 true KR102220093B1 (ko) 2021-02-26

Family

ID=66690262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190076558A KR102220093B1 (ko) 2019-05-10 2019-06-26 소수의 프로그래밍된 페이지들을 갖는 블록 소거하기

Country Status (6)

Country Link
US (1) US10665303B1 (ko)
EP (1) EP3736814B1 (ko)
JP (1) JP6771621B1 (ko)
KR (1) KR102220093B1 (ko)
CN (1) CN111916130B (ko)
TW (1) TWI718640B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210000409A (ko) * 2019-06-25 2021-01-05 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
CN111191613A (zh) * 2020-01-02 2020-05-22 京东方科技集团股份有限公司 指纹识别结构、指纹识别显示基板及其制作方法
CN113821156A (zh) * 2020-06-18 2021-12-21 桑迪士克科技有限责任公司 前瞻识别潜在不可校正的误差校正存储器单元和现场对策
CN112786097B (zh) * 2021-01-29 2024-04-09 山东华芯半导体有限公司 一种基于擦除时间判断NAND Flash对浅擦除处理的方法
US20240112742A1 (en) * 2022-09-22 2024-04-04 Yangtze Memory Technologies Co., Ltd. Erasing and erasing verification for three-dimensional nand memory
CN115509468B (zh) * 2022-11-23 2023-03-24 四川省华存智谷科技有限责任公司 一种提高ssd生命周期的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140104950A1 (en) 2012-10-12 2014-04-17 Winbond Electronics Corp. Non-volatile semiconductor memory

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1229550B1 (en) * 2001-02-05 2009-09-30 STMicroelectronics S.r.l. Method of erasing a flash memory
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
KR100673170B1 (ko) * 2005-03-10 2007-01-22 주식회사 하이닉스반도체 향상된 소거 기능을 가지는 플래쉬 메모리 장치 및 그 소거동작 제어 방법
KR100781041B1 (ko) * 2006-11-06 2007-11-30 주식회사 하이닉스반도체 플래시 메모리 장치 및 그 소거 동작 제어 방법
US20090109755A1 (en) * 2007-10-24 2009-04-30 Mori Edan Neighbor block refresh for non-volatile memory
US7995392B2 (en) 2007-12-13 2011-08-09 Kabushiki Kaisha Toshiba Semiconductor memory device capable of shortening erase time
US7907449B2 (en) * 2009-04-09 2011-03-15 Sandisk Corporation Two pass erase for non-volatile storage
US8130551B2 (en) * 2010-03-31 2012-03-06 Sandisk Technologies Inc. Extra dummy erase pulses after shallow erase-verify to avoid sensing deep erased threshold voltage
KR20120092911A (ko) * 2011-02-14 2012-08-22 에스케이하이닉스 주식회사 반도체 메모리 장치 및 데이터 소거 방법
WO2014137928A2 (en) * 2013-03-04 2014-09-12 Sandisk Technologies Inc. Dynamic erase depth for improved endurance of non-volatile memory
US20140297921A1 (en) * 2013-03-26 2014-10-02 Skymedi Corporation Method of Partitioning Physical Block and Memory System Thereof
US9361989B1 (en) * 2014-12-16 2016-06-07 Macronix International Co., Ltd. Memory device and data erasing method thereof
KR102327076B1 (ko) * 2014-12-18 2021-11-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20160108659A (ko) * 2015-03-04 2016-09-20 에스케이하이닉스 주식회사 반도체 메모리 장치의 동작 방법 및 반도체 메모리 장치를 포함하는 메모리 시스템
US9679658B2 (en) * 2015-06-26 2017-06-13 Intel Corporation Method and apparatus for reducing read latency for a block erasable non-volatile memory
JP2017045288A (ja) * 2015-08-27 2017-03-02 株式会社東芝 メモリシステム
US9830963B1 (en) * 2016-05-24 2017-11-28 Sandisk Technologies Llc Word line-dependent and temperature-dependent erase depth
US10403369B2 (en) * 2016-10-17 2019-09-03 SK Hynix Inc. Memory system with file level secure erase and operating method thereof
US20180232154A1 (en) * 2017-02-15 2018-08-16 Microsoft Technology Licensing, Llc Append Only Streams For Storing Data On A Solid State Device
KR20190016633A (ko) * 2017-08-08 2019-02-19 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
JP2019053805A (ja) * 2017-09-15 2019-04-04 東芝メモリ株式会社 メモリシステム
US10998064B2 (en) * 2018-03-05 2021-05-04 Crossbar, Inc. Resistive random access memory program and erase techniques and apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140104950A1 (en) 2012-10-12 2014-04-17 Winbond Electronics Corp. Non-volatile semiconductor memory

Also Published As

Publication number Publication date
EP3736814A1 (en) 2020-11-11
CN111916130B (zh) 2022-09-02
TW202042239A (zh) 2020-11-16
KR20200130630A (ko) 2020-11-19
JP2020187816A (ja) 2020-11-19
US10665303B1 (en) 2020-05-26
CN111916130A (zh) 2020-11-10
TWI718640B (zh) 2021-02-11
EP3736814B1 (en) 2021-03-24
JP6771621B1 (ja) 2020-10-21

Similar Documents

Publication Publication Date Title
KR102220093B1 (ko) 소수의 프로그래밍된 페이지들을 갖는 블록 소거하기
KR102175039B1 (ko) 불휘발성 메모리 장치의 데이터 기입 방법
KR102083547B1 (ko) 플래시 메모리와 메모리 컨트롤러를 포함하는 데이터 저장 장치 및 그것의 배드 페이지 관리 방법
CN109427400B (zh) 存储器装置及其操作方法
CN110780802B (zh) 存储器控制器及其操作方法
US9818477B2 (en) Methods of programming memory cells in non-volatile memory devices
CN108694977B (zh) 储存装置及其操作方法
TWI746844B (zh) 記憶體裝置及其操作方法
US20160293259A1 (en) Semiconductor apparatus and operating method thereof
KR101731408B1 (ko) 플래시 메모리에 데이터를 기록하는 방법 및 관련 메모리 장치 및 플래시 메모리
CN106558330B (zh) 半导体器件、其操作方法和包括其的数据储存设备
CN111798904A (zh) 非易失性存储器装置、其操作方法和存储器系统
US10916310B2 (en) Memory system, memory controller, and memory control method
CN116580731A (zh) 存储器装置和操作该存储器装置的方法
CN115798552A (zh) 存储器装置及该存储器装置的操作方法
CN112037837B (zh) 存储器系统、存储器控制器和存储器设备
KR102513691B1 (ko) 저장 장치 및 그 동작 방법
KR20210069257A (ko) 메모리 장치 및 그것의 동작 방법
US20230041949A1 (en) Programming memory devices
US20230326537A1 (en) Memory device, memory system, and method of operating the same
CN117953948A (zh) 存储器装置及其操作方法
CN114639420A (zh) 在存储器子系统中的编程操作期间的增强梯度播种方案
CN116343876A (zh) 存储器子系统中的存储器单元的多阶段擦除操作
CN116631480A (zh) 存储器设备和操作该存储器设备的方法

Legal Events

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