CN107924700A - 自适应多阶段擦除 - Google Patents

自适应多阶段擦除 Download PDF

Info

Publication number
CN107924700A
CN107924700A CN201680047839.8A CN201680047839A CN107924700A CN 107924700 A CN107924700 A CN 107924700A CN 201680047839 A CN201680047839 A CN 201680047839A CN 107924700 A CN107924700 A CN 107924700A
Authority
CN
China
Prior art keywords
erasing
stage
voltage
wiped
stages operating
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201680047839.8A
Other languages
English (en)
Other versions
CN107924700B (zh
Inventor
N.N.杨
A.鲍谢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN107924700A publication Critical patent/CN107924700A/zh
Application granted granted Critical
Publication of CN107924700B publication Critical patent/CN107924700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • 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
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/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
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本文所描述的各种实施方式包括用于在储存器设备中使能自适应多阶段擦除的系统、方法和/或设备。该方法包括:通过执行擦除阶段操作的序列直到满足擦除操作停止条件,来对一个或多个非易失性存储器设备的部分执行擦除操作。每个擦除阶段操作包括:使用擦除电压对非易失性存储器设备的部分执行擦除阶段,并且确定擦除阶段的擦除阶段统计。对于除了第一擦除阶段操作之外的擦除阶段操作的序列中的每个擦除阶段操作,在执行擦除阶段操作时所使用的擦除电压等于在执行擦除阶段操作的序列中的前一个擦除阶段操作时所使用的擦除电压加上基于前一个擦除阶段操作的擦除阶段统计的擦除电压增量。

Description

自适应多阶段擦除
技术领域
本公开一般涉及存储器系统,并且具体地涉及储存器设备中的多阶段擦除(例如,包括一个或多个闪速存储器设备)。
背景技术
包括闪速存储器的半导体存储器设备,典型地利用存储器单元将数据存储为诸如电荷或电压的电值。例如,闪速存储器包括具有被用来存储代表数据值的电荷的浮置栅极的单个晶体管。闪速存储器是可以被电擦除和重新编程的非易失性数据储存器设备。更一般地,与要求电力来维持所存储的信息的易失性存储器相反,即使没有电力,非易失性存储器(例如,闪速存储器以及使用各种各样技术中的任何一个技术实施的其它类型的非易失性存储器)也保持存储的信息。
向包括闪速存储器的一些类型的非易失性存储器写数据要求在向存储器的一个或多个部分写数据之前擦除存储器的那些部分。随着存储器(例如,闪速存储器单元)经受重复的写入和擦除的循环,重复的高电压擦除操作的应用使其损坏。因此,期望具有减小对存储器的一个或多个部分的损害的擦除操作。
发明内容
在所附权利要求的范围内的系统、方法和设备的各种实施例各自具有若干方面,其中没有单一的方面单独负责本文所描述的属性。在没有限制所附权利要求的范围的情况下,在考虑此公开之后,并且具体地在考虑题为“具体实施方式”的章节之后,本领域普通技术人员将理解,各种实施例的方面怎样被用来使能存储器设备中的自适应多阶段擦除。
附图说明
为使本公开被更详细地理解,可以通过参考各种实施例的特征可以进行更具体的描述,其中该实施例中的一些在附图中示出。然而,附图仅仅示出了本公开的更相关的特征并且因此不被认为是限制性的,因为该描述可以承认其它有效的特征。
图1A是示出根据一些实施例的数据储存器系统的实施方式的框图。
图1B是示出根据一些实施例的数据储存器系统的实施方式的框图。
图2是示出根据一些实施例的非易失性存储器控制器的存储器管理模块的框图。
图3A是根据一些实施例的,随着时间推移可以在单级闪速存储器单元(single-level flash memory cell,SLC)中发现的电压分布的预示图。
图3B是根据一些实施例的,随着时间推移可以在多级闪速存储器单元(multi-level flash memory cell,MLC)中发现的电压分布的预示图。
图4A至图4D是在储存器设备上执行的多阶段擦除操作的概念图。
图5示出根据一些实施例的,使用多个擦除阶段在储存器设备中擦除数据的方法的概念流程图表示。
图6示出根据一些实施例的,使用多个擦除阶段在储存器设备中擦除数据的方法的概念流程图表示。
图7A至图7C示出根据一些实施例的,使用多个擦除阶段擦除储存器设备上的存储器的方法的概念流程图表示。
图8A至图8D示出根据一些实施例的,使用多个擦除阶段擦除储存器设备上的存储器的方法的概念流程图表示。
根据惯例,附图中所示的各种特征可以不按比例绘制。因此,为了清楚起见,各种特征的尺寸可以被任意地扩大或缩小。另外,附图中的一些可能没有描绘给定系统、方法或设备的所有组件。最后,贯穿说明书和附图,相似的附图标记可以用来表示相似的特征。
具体实施方式
本文所描述的各种实施方式包括用于在存储器设备中使能自适应多阶段擦除的系统、方法和/或设备。一些实施方式包括用以执行多阶段擦除操作以保持储存器设备的存储寿命的系统、方法和/或设备。
(A1)更具体地,一些实施例包括在具有一个或多个非易失性存储器设备的储存器设备中擦除数据的方法,该方法包括通过执行擦除阶段操作的序列直到满足擦除操作停止条件,来对一个或多个非易失性存储器设备的一部分执行擦除操作。每个擦除阶段操作包括:(1)使用擦除电压对一个或多个非易失性存储器设备的部分执行擦除阶段,以及(2)确定擦除阶段的擦除阶段统计。对于除了擦除阶段操作的序列中的第一擦除阶段操作之外的擦除阶段操作的序列中的每个擦除阶段操作,在执行擦除阶段操作时所使用的擦除电压等于在执行擦除阶段操作的序列中的前一个擦除阶段操作时所使用的擦除电压加上基于前一个擦除阶段操作的擦除阶段统计的擦除电压增量。
(A2)在一些实施例中,A1的方法还包括在擦除操作的连续的擦除阶段操作之间执行至少一个非擦除操作。
(A3)在A1-A2中的任何一个方法的一些实施例中,擦除阶段操作的序列包括第一擦除阶段操作和最后的擦除阶段操作,并且在执行第一擦除阶段操作的同时所使用的擦除电压在幅度上小于在执行最后的擦除阶段操作的同时所使用的擦除电压。
(A4)在A1-A3中的任何一个方法的一些实施例中,擦除阶段的擦除阶段统计与具有阈值电压的一个或多个非易失性存储器设备的部分中的存储器单元的计数相对应,该阈值电压满足与擦除阶段相对应的标准。
(A5)在A1-A3中的任何一个方法的一些实施例中,擦除阶段的擦除阶段统计与对成功擦除一个或多个非易失性存储器设备的部分的测量相对应。
(A6)在A1-A5中的任何一个方法的一些实施例中,所述方法还包括,响应于擦除阶段统计满足擦除操作停止条件的确定,停止擦除操作并记录与停止擦除操作相关联的擦除信息。
(A7)在一些实施例中,A6的方法,擦除信息包括根据针对停止的擦除操作的擦除困难度量和与在储存器设备的寿命期间对一个或多个非易失性存储器设备的部分执行的擦除操作的总数相对应的信息的相应的存储器部分健康度量。
(A8)在A1-A7中的任何一个方法的一些实施例中,擦除阶段操作的序列包括最后可允许的擦除阶段,并且该方法还包括,响应于最后可允许的擦除阶段未能满足擦除操作停止条件的确定,存储撤出一个或多个非易失性存储器设备的部分的指示。
(A9)在A8的方法的一些实施例中,最后可允许的擦除阶段是英雄式擦除阶段(heroic erase phase)。
(A10)在A1-A7中的任何一个方法的一些实施例中,擦除阶段操作的序列限于阈值数量的擦除阶段,从而当对一个或多个非易失性存储器设备的部分执行阈值数量的擦除阶段时停止擦除操作。
(B1)另一方面中,使用多阶段擦除操作在储存器设备中擦除数据的方法,其中储存器设备具有一个或多个非易失性存储器设备。该方法包括使用擦除电压对一个或多个非易失性存储器设备的部分执行多阶段擦除操作的第一阶段(本文也称为第一擦除阶段)。继执行多阶段擦除操作的第一阶段之后,该方法包括:(1)确定用于擦除操作的第一阶段的第一阶段擦除统计,(2)根据第一阶段擦除统计确定擦除电压增量,(3)将擦除电压增加所确定的擦除电压增量,以及(4)使用增加后的擦除电压对一个或多个非易失性存储器设备的部分执行多阶段擦除操作的第二阶段(本文也称为第二擦除阶段)。此外,在继多阶段擦除操作的第一阶段之后,并且在多阶段擦除操作的第二阶段之前,执行至少一个非擦除操作。
(B2)在B1的方法的一些实施例中,确定第一阶段擦除统计包括确定第一阶段未擦除的存储器单元的数量是否满足第一阶段的未擦除的存储器单元的阈值数量。此外,确定擦除电压增量包括:响应于确定第一阶段未擦除的存储器单元的数量满足未擦除的存储器单元的第一阶段阈值数量,向擦除电压增量分配预定的增量值;并且响应于确定第一阶段已擦除的存储器单元的数量不满足未擦除的存储器单元的第一阶段阈值数量,根据第一阶段未擦除的存储器单元的数量确定擦除电压增量。
(B3)在B1至B2中的任何一个方法的一些实施例中,该方法包括:继执行擦除操作的第二阶段以后,确定用于擦除操作的第二阶段的第二阶段擦除统计;根据第二阶段擦除统计,确定擦除电压增量的下一值;将擦除电压增加所确定的擦除电压增量;并且使用增加后的擦除电压执行多阶段擦除操作的第三擦除阶段。
(B4)在B3的方法的一些实施例中,确定擦除电压增量的下一值包括:响应于确定第二阶段未擦除的存储器单元的数量满足未擦除的存储器单元的第二阶段阈值数量,向擦除电压增量分配预定的增量值;并且响应于确定第二阶段已擦除的存储器单元的数量不满足未擦除的存储器单元的第二阶段阈值数量,根据第二阶段未擦除的存储器单元的数量确定擦除电压增量。此外,未擦除的存储器单元的第二阶段阈值数量不同于未擦除的存储器单元的第一阶段阈值数量。
(B5)在B1至B4中的任何一个方法的一些实施例中,所述方法包括:继对一个或多个非易失性存储器设备的部分执行多阶段擦除操作的所有阶段之后,确定一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量是否满足最终阈值。
(B6)在B5的方法的一些实施例中,所述方法包括:响应于确定一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量不满足最终阈值,执行英雄式擦除操作。
(B7)在B6的方法的一些实施例中,所述方法包括:继执行英雄式擦除操作之后,执行一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量不满足最终阈值的附加的确定;并且响应于确定用于一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量不满足最终阈值,存储撤出一个或多个非易失性存储器设备的指示。
(B8)在B1-B7中的任何一个方法的一些实施例中,该方法包括:继执行多阶段擦除操作的所有阶段之后,确定一个或多个非易失性存储器设备的部分的擦除健康值。
(B9)在在B1-B8中的任何一个方法的一些实施例中,一个或多个非易失性存储器设备的部分是一块闪速存储器。
(B10)在另一方面,储存器系统包括存储介质、一个或多个处理器、以及存储一个或多个程序的存储器,当该一个或多个程序由该一个或多个处理器运行时,使得储存器系统通过执行擦除阶段操作的序列直到满足擦除操作停止条件,来对一个或多个非易失性存储器设备的部分执行擦除操作。每个擦除阶段操作包括使用擦除电压对一个或多个非易失性存储器设备的部分执行擦除阶段,并且确定擦除阶段的擦除阶段统计。对于除了擦除阶段操作的序列中的第一擦除阶段操作之外的擦除阶段操作的序列中的每个擦除阶段操作,在执行擦除阶段操作时所使用的擦除电压等于在执行擦除阶段操作的序列中的前一个擦除阶段操作时使用的擦除电压加上基于前一个擦除阶段操作的擦除阶段统计的擦除电压增量。
(B11)在B10的储存器系统的一些实施例中,一个或多个程序包括当由一个或多个处理器运行使得储存器系统执行A1至A10以及B1至B9中的任何一个方法的指令。
(B12)在又一方面中,储存器系统包括:非易失性存储器、一个或多个处理器、以及用于执行上述A1至A10以及B1至B9中的任何一个方法的装置。
(B13)在又一方面中,非瞬时性计算机可读存储介质存储被配置为由储存器系统的一个或多个处理器运行的一个或多个程序,该一个或多个程序包括用于使得储存器设备执行上述A1至A10以及B1至B9中的任何一个方法的指令。
本文公开了许多细节以便提供对附图中示出的示例实施方式的全面理解。然而,一些实施例可以被实践而无需许多具体细节,并且权利要求的范围仅由权利要求中具体叙述的那些特征和方面来限制。此外,并没有以详尽的细节来描述熟知的方法、组件、以及电路,以免不必要地模糊本文所描述的实施方式的更多相关方面。
图1A是示出根据一些实施例的数据储存器系统的实施方式的框图。虽然示出了一些示例特征,但为了简洁起见,以及为了不模糊本文所描述的示例实施例的相关方面,并没有示出各种其它特征。为了那个目的,作为非限制性示例,数据储存器系统100包括储存器设备120(有时也称为信息储存器设备、或数据储存器设备、或存储器设备),其包括储存器控制器124或存储介质132,并且结合计算机系统110(例如,主机系统或主机计算机)被使用或包括计算机系统110(例如,主机系统或主机计算机)。在一些实施例中,存储介质132是单个闪速存储器设备,而在其它实施例中,存储介质132包括多个闪速存储器设备。在一些实施例中,存储介质132是NAND型闪速存储器或NOR型闪速存储器。在一些实施例中,存储介质132包括一个或多个三维(three-dimensional,3D)存储器设备。此外,在一些实施例中,储存器控制器124是固态驱动器(solid-state drive,SSD)控制器。然而,根据各种各样的实施例的方面,可以包括其它类型的存储介质(例如,PCRAM、ReRAM、STT-RAM等)。在一些实施例中,闪速存储器设备包括一个或多个闪速存储器裸芯、一个或多个闪速存储器包、一个或多个闪速存储器通道等。在一些实施例中,储存器系统100包括一个或多个储存器设备120。
计算机系统110通过数据连接101耦合到储存器控制器124。然而,在一些实施例中,计算机系统110包括储存器控制器124、或储存器控制器124的部分作为组件和/或子系统。例如,在一些实施例中,储存器控制器124的功能中的一些或全部通过计算机系统110上运行的软件来实施。计算机系统110可以是任何合适的计算机设备,诸如计算机、膝上型计算机、平板设备、上网本、上网亭(internet kiosk)、个人数字助理、移动电话、智能电话、游戏设备、计算服务器或任何其它的计算设备。计算机系统110有时被称为主机、主机系统、客户端或客户端系统。在一些实施例中,计算机系统110是服务器系统,诸如数据中心中的服务器系统。在一些实施例中,计算机系统110包括一个或多个处理器、一个或多个类型的存储器、显示器和/或诸如键盘、触摸屏显示器、鼠标、触式控制板、数码相机的其它用户接口组件,和/或任意数量的补充I/O设备,以向计算机系统110添加功能。在一些实施例中,计算机系统110不具有显示器和其它用户接口组件。
存储介质132通过数据连接103耦合到储存器控制器124。连接103有时称为数据连接,但是通常除了数据之外还传送命令,并且除了要被存储在存储介质132中的数据值以及从存储介质132读取的数据值之外,还可选地传送元数据、错误校正信息和/或其它信息。然而,在一些实施例中,储存器控制器124和存储介质132被包括在相同设备(即,集成的设备)的设备中作为其组件。另外,在一些实施例中,储存器控制器124和存储介质132被嵌入诸如移动设备、平板、其它计算机或计算机控制的设备的主机设备(例如,计算机系统110)中,并且本文所描述的方法至少部分地由所嵌入的储存器控制器来执行。存储介质132可以包括任意数量(例如,一个或多个)的存储器设备(例如,NVM 134-1、NVM 134-2至NVM 134-n),该存储器设备包括但不限于持久性存储器或诸如(多个)闪速存储器设备的非易失性半导体存储器设备。例如,(多个)闪速存储器设备可以被配置用于适于诸如云计算的应用的企业储存器、用于数据库应用、主储存器/辅储存器,或用于存储(或将要存储)在诸如硬盘驱动器的辅储存器中的高速缓存数据。额外地和/或可选地,(多个)闪速存储器设备也可以被配置用于相对较小规模的应用,诸如个人闪存驱动器,或用于个人、膝上型和平板计算机的硬盘替换。
存储介质132的存储器设备(例如,NVM 134-1、NVM 134-2等)包括可寻址和可单独选择的块,诸如存储介质136的可选部分(在本文中也被称为选择的部分136)。在一些实施例中,单独可选择的块(有时被称为擦除块)是闪速存储器设备中的最小尺寸的可擦除单元。换句话说,每个块包含可以被同时擦除的最小数量的存储器单元。每个块还被划分成多个页和/或字线,其中每个页或字线通常是块中最小的单独可访问(可读)的部分的实例。然而,在一些实施例中(例如,使用某些类型的闪速存储器),数据集合的最小的单独可访问的单元是作为页的子单元的扇区。也就是说,块包括多个页,每个页包含多个扇区,并且每个扇区是用于将数据写入闪速存储器设备或从闪速存储器设备读取数据的数据的最小单元。
在一些实施例中,储存器控制器124包括管理模块121-1、主机接口129、存储介质I/O接口128以及附加(多个)模块125。储存器控制器124可以包括为了简洁起见以及为了不会模糊本文所描述的示例实施方式的相关特征而没有示出的各种附加特征,并且特征的不同布置是可能的。主机接口129通过数据连接101提供到计算机系统110的接口。类似地,存储介质I/O 128通过连接103提供到存储介质132的接口。在一些实施例中,存储介质I/O128包括读取电路和写入电路,该电路和写入电路包括能够向存储介质132提供读取信号的电路(例如,NAND型闪速存储器的读取阈值电压)。
在一些实施例中,管理模块121-1包括被配置为运行(例如,在管理模块121-1中的)一个或多个程序中的指令的一个或多个处理单元122-1(本文有时称为CPU、处理器、或硬件处理器、并且有时使用微处理器、微控制器等来实施)。在一些实施例中,由在储存器控制器124的功能之内的和在一些情况下超出储存器控制器124的功能的一个或多个组件共享一个或多个CPU 122-1。管理模块121-1被耦合到主机接口129、(多个)附加模块125和存储介质I/O 128,以协调这些组件的操作。在一些实施例中,模块管理121-1的一个或多个模块在计算机系统110中的管理模块121-2中实施。在一些实施例中,计算机系统110的一个或多个处理器(未示出)被配置为运行(例如,管理模块121-2中的)一个或多个程序中的指令。管理模块121-2耦合到储存器设备120,以便管理储存器设备120的操作。
(多个)附加模块125被耦合到存储介质I/O 128、主机接口129和管理模块121-1。作为示例,(多个)附加模块125可以包括错误控制模块,以限制在写入存储器或从存储器读取期间无意引入数据中的不可更正的错误的数量。在一些实施例中,(多个)附加模块125通过管理模块121-1中的一个或多个CPU 122-1在软件中被运行,并且,在一些实施例中,(多个)附加模块125使用(例如,执行数据编码和解码功能的)专用电路来全部或部分地被实施。在一些实施例中,(多个)附加模块125通过在计算机系统110上运行的软件来全部或部分地被实施。
图1B是示出根据一些实施例的数据储存器系统100-1的实施方式的框图。虽然示出了一些示例特征,但为了简洁起见以及为了不会模糊本文所描述的示例实施例的相关方面,没有示出各种其它特征。为了那个目的,作为非限制性示例,数据储存器系统100包括储存器设备120-1,其包括主机接口129、存储器控制器126、一个或多个非易失性存储器控制器(例如,(多个)非易失性存储器控制器130)、以及非易失性存储器(例如,一个或多个非易失性存储器134、138)、并且结合计算机系统10而被使用。储存器设备120-1可以包括为了简洁起见以及为了不会模糊本文所描述的示例实施方式的相关特征而没有示出的各种附加特征,并且特征的不同布置是可能的。主机接口129通过数据连接101提供到计算机系统110的接口。
存储器控制器126耦合到主机接口129和非易失性存储器控制器130。在一些实施方式中,在写操作期间,存储器控制器126通过主机接口129从计算机系统110接收数据,并且在读操作期间,存储器控制器126通过主机接口129向计算机系统110传送数据。此外,主机接口129提供存储器控制器126和计算机系统110之间的通信所需要的附加的数据、信号、电压和/或其它信息。在一些实施例中,存储器控制器126和主机接口129使用为通信定义的接口标准,诸如双数据速率型的三个同步的动态随机存取存储器(dynamic random accessmemory,DDR3)。在一些实施例中,存储器控制器126和非易失性存储器控制器130使用为通信定义的接口标准,诸如串行高级技术附件(serial advance technology attachment,SATA)。在一些其它实施方式中,存储器控制器126用来与非易失性存储器控制器130通信的设备接口是SAS(串行附接的SCSI(serial attached SCSI))或其它储存器接口。在一些实施方式中,存储器控制器126包括被配置为运行(例如,存储器控制器126中的)一个或多个程序中的指令的一个或多个处理单元(本文中有时称为CPU、处理器、或硬件处理器、并且有时使用微处理器、微控制器等来实施)。在一些实施方式中,由在存储器控制器126的功能之内的和在一些情况下超出存储器控制器126的功能的一个或多个组件共享一个或多个处理器。
在一些实施例中,非易失性存储器控制器130包括管理模块131(例如,图1A中的管理模块121-1)。在一些实施方式中,管理模块131每个包括被配置为运行(例如,在管理模块131中的)一个或多个程序中的指令的一个或多个处理单元142(本文有时称为CPU、处理器、或硬件处理器、并且有时使用微处理器、微控制器等来实施)。
图2是示出根据一些实施例的,管理块121-1、121-2、131-1、或131-m(在下文中,除非特别指定,否则指的是管理模块121)的实施方式的框图。管理模块121通常包括用于运行存储在存储器206中的模块、程序和/或指令并且从而执行处理操作的一个或多个处理单元122-1(本文中有时称为CPU、处理器或硬件处理器,并且有时使用微处理器、微控制器等来实施),存储器206(本文中有时称为控制器存储器),以及用于互连这些组件的一个或多个通信总线208。通信总线208可选地包括互连并且控制系统组件之间的通信的电路(有时称为芯片组)。在一些实施例中,诸如图1B所表示的那些,管理模块131通过通信总线208耦合到存储器控制器126,并且通过通信总线208和存储介质接口128耦合到非易失性存储器设备134(例如,非易失性存储器设备134-1至134-n,以及其中可应用的138-1至138-k)。存储器206包括诸如DRAM、SRAM、DDR RAM或其它随机存取固态存储器设备的高速随机存取存储器,并且可以包括诸如一个或多个磁盘储存器设备、光盘储存器设备、闪速存储器设备、或其它非易失性固态存储器设备的非易失性存储器。存储器206可选地包括远离(多个)处理器122-1的一个或多个储存器设备。存储器206或可替换地存储器206内的(多个)非易失性存储器设备包括非瞬时性计算机可读存储介质。在一些实施例中,存储器206或存储器206的计算机可读存储介质存储以下程序、模块和数据结构或它们的子集:
·接口模块210,其用于与诸如存储器控制器126和非易失性存储器设备134的其它组件通信;
·读取模块212,其用于从非易失性存储器设备134读取;
·写入模块214,其用于向非易失性存储器设备134写入;
·垃圾收集模块26,其用于控制存储介质(例如,图1A中的存储介质132)中的垃圾收集过程;
·擦除模块216,其用于擦除存储介质132的部分(例如,可选部分136)。
·擦除块数据结构226,其存储与存储介质132中的已擦除的存储器部分(例如,已擦除的块)相关联的擦除信息);
·待处理的操作队列228,其对等待将要对存储介质132的部分执行的操作(例如,主机请求的读取和写入)进行编目录;
·地址转换模块230,其用于将逻辑地址映射到物理地址;
·转发表232,用于在存储介质132中的逻辑地址和物理地址之间转换;以及
·反向表234,其存储用于将物理地址转换为逻辑地址的信息,并且可选地存储与物理地址相对应的元数据,并且被用于垃圾收集和用于从功率损失中恢复(在一些实施例中,反向表234合并擦除块数据结构226)。
在一些实施例中,擦除模块216包括用于对存储介质132的部分(例如,可选部分136)执行擦除操作的阶段擦除模块220。在一些实施例中,阶段擦除模块220在连续的阶段或步骤中执行擦除操作(即,单个擦除操作被分成阶段)。此外,与擦除操作的每个随后阶段相关联的参数根据先前阶段的性能的度量来调整,该度量在下文中被称为擦除统计。例如,在一些实施例中,用于随后阶段的电压将根据先前阶段的擦除统计来调整。下面进一步详细地讨论擦除统计。
在一些实施例中,擦除模块216包括用于确定擦除操作的每个擦除阶段的擦除统计的擦除统计模块222。例如,在一些实施例中,对于特定擦除阶段的擦除统计将与对成功擦除存储介质132中的存储器的部分的测量相对应。
在一些实施例中,擦除模块216包括用于调整在擦除操作期间所应用的电压的擦除电压调整模块224。例如,在一些实施例中,擦除电压调整模块224根据最后完成的擦除阶段的擦除统计来确定擦除电压增量,其中,从一个擦除阶段到下一擦除阶段,擦除电压增加了所述擦除电压增量。如下面更详细地描述的,当最后完成的擦除阶段的擦除统计指示最后完成的擦除阶段成功时,擦除电压增量为默认值(例如,固定值、或从默认擦除电压增量的表中读取的值)。然而,当最后完成擦除阶段的擦除统计指示最后完成的擦除阶段没有成功时,擦除电压增量基于最后完成的擦除阶段的擦除统计来计算(例如,通过应用最后完成的擦除阶段的擦除统计的数学函数)。
上述元件中的每一个都可以存储在一起形成存储器206的一个或多个先前提到的存储器设备中,并且与用于执行上述功能的一组指令相对应。上述模块或程序(即,指令的集合)需要实施为独立的软件程序、步骤或模块,因此在各种实施例中,可以组合或以其它方式另外重新布置这些模块的各种子集。在一些实施例中,存储器206可以存储上述模块和数据结构的子集。另外,存储器206可以存储以上没有描述的附加模块和数据结构。在一些实施例中,存储器206中存储的程序、模块和数据结构或存储器206的计算机可读存储介质提供用于实施在以下参考图5、图6、图7A至图7C以及图8A至图8D所描述的方法中的相应操作的指令。
虽然图2示出管理模块121-1,但是图2意图更多地作为可能存在于非易失性存储器控制器中的各种特征的功能描述,而不是作为本文所描述的实施例的结构示意图。在实践中,并且如本领域普通技术人员所认识到的,单独示出的项目可以被组合,并且一些项目可以被分离。此外,尽管图2示出了管理模块121-1,但是图2中示出的擦除模块218和可选地示出的其它模块在图1A中的管理模块121-2或图1B中的管理模块131-1至131-m中被实施。
如以下参考图3A所讨论的,单级闪速存储器单元(SLC)存储一个比特(“0”或“1”)。因此,SLC存储器设备的存储密度是每存储单元一个比特的信息。然而,多级闪速存储器单元(MLC)能够通过使用存储器单元的总电压范围内的不同范围,来每单元存储两个或更多个比特的信息以表示多比特比特元组。反过来,MLC存储器设备的存储密度是每单元多个比特(例如,每单元两个比特)。
闪速存储器设备利用存储器单元将数据存储为诸如电荷或电压的电值。每个闪速存储器通常包括具有被用来存储修改晶体管的阈值电压(即,需要导通晶体管的电压)的电荷的浮置栅极的单个晶体管。电荷的幅度和对应的阈值电压被用来表示一个或多个数据值。在一些实施例中,在读取操作期间,读取阈值电压被应用于晶体管的控制栅,并且产生的感测电流或电压被映射到数据值。
在闪速存储器单元的上下文中,术语“单元电压”和“存储器单元电压”通常意指存储器单元的阈值电压,该阈值电压是为使晶体管传导电流而需要施加到存储器单元的晶体管的栅极的最小电压。类似地,施加到闪速存储器单元的读取阈值电压(有时被称为读取信号、读取电压、和/或读取阈值)是施加到闪速存储器单元的栅极的栅极电压,以确定存储器单元是否在该栅极电压传导电流。在一些实施例中,当闪速存储器单元的晶体管在给定读取阈值电压处传导电流时,指示单元电压小于读取阈值电压,该读取操作的原始数据值为“1”,否则原始数据值为“0”。
图3A是根据一些实施例的,随着时间推移,在单级闪速存储器单元(SLC)中可以发现的电压分布300a的简化的预示图。为例示目的,图3A中示出的电压分布300a已被简化。在这个示例中,SLC的电压范围大约从第一电压VSS(例如,0伏特)扩展以及最大允许的栅极电压Vmax(例如,6伏特)。因而,电压分布在VSS和Vmax之间扩展。
电压VSS和Vmax之间的顺序的电压范围301和302分别用来表示相应的比特值“1”和“0”。每个电压范围301、302具有相应的中心电压V1 301b、V0 302b。如下所述,在许多情况下,响应于所施加的读取阈值电压而感测的存储器单元电流指示不同于与写入存储器单元中的各个比特值对应的各个中心电压V1 301b或V0 302b的存储器单元电压。在写入操作、读取操作期间,或由于数据被写入存储器单元的时间和执行读取操作以读取存储在存储器单元中的数据的时间之间的单元电压的“漂移”,单元电压和/或当读取存储器单元时感测到的单元电压中的错误可能会发生。为便于讨论,这些影响被共同地描述为“单元电压漂移”。每个电压范围301、302还具有可能作为错误诱发因素的任意数量的组合的结果而出现的相应的电压分布301a、302a,以上已指出其示例。
在一些实施方式中,读取阈值电压VR被施加在邻近的中心电压之间(例如,被施加在邻近的中心电压V1 301b与V0 302b之间的中间区域附近)。可选地,在一些实施方式中,读取阈值电压位于电压范围301和302之间。在一些实施方式中,读取阈值电压VR被施加在邻近电压分布301a和302a重叠的区域中,该区域不一定邻近中心电压V1 301b和V0 302b之间的中间区域。
为了增加闪速存储器中的存储密度,闪速存储器已经从单级(SLC)单元闪速存储器发展到多级单元(MLC)闪速存储器,使得可以由每个存储单元存储两个或更多个比特。如以下参考图3B所讨论的,通过使用存储器单元的总电压范围内的电压范围来表示不同的比特元组,MLC闪速存储器设备被用来存储多个比特。MLC闪速存储器设备通常比使用相同制造工艺创造的SLC闪速存储器设备更易于出错,因为用于存储不同数据值的电压之间的有效电压差对于MLC闪速存储器设备而言比较小。而且,由于诸如电波动、存储介质中的缺陷、操作条件、设备历史和/或写入-读取电路的因素的任意数量的组合,典型的错误包括在特定的MLC中存储的电压电平在与否则将表示特定比特元组的正确存储的电压范围相邻的电压范围内。如以下参考图3B更详细地描述的,这样的错误的影响可以通过对数据进行格雷编码(gray-coding)来减少,使得相邻的电压范围表示比特元组之间的单个比特的改变。
图3B是根据一些实施例的,随着时间推移,在多级闪速存储器单元(MLC)中可以发现的电压分布300b的简化的预示图。为例示目的,图3B中示出的电压分布300b已被简化。MLC的单元电压大约从第一电压VSS扩展到最大栅极电压Vmax。因而,电压分布在VSS和Vmax之间扩展。
电压VSS和Vmax之间的顺序的电压范围311、312、313和314分别用来表示相应的比特元组“11”、“01”、“00”和“10”。每个电压范围311、312、313、314具有相应的中心电压311b、312b、313b、314b。每个电压范围311、312、313、314还具有相应的电压分布311a、312a、313a、314a,该电压分布311a、312a、313a、314a可能作为诸如电波动、存储介质中的缺陷、操作条件、设备历史(例如,编程擦除(program-erase,PE)周期的数量)和/或写入读取电路的不完善的性能或设计的因素的任意数量的组合的结果而出现。
理想地,在写入操作期间,MLC的浮置栅极上的电荷将被设置,使得所得到的单元电压处于范围311、312、313、314中的一个范围的中心,以便向MLC写入对应的比特元组。具体地,所得到的单元电压将被设置为V11 311b、V01 312b、V00 313b和V10 314b中的一个,以便写入对应的“11”、“01”、“00”和“10”中的一个。事实上,由于以上提及的因素,初始单元电压可能与用于写入MLC的数据的中心电压不同。
读取阈值电压VRA、VRB和VRC位于相邻的中心电压之间(例如,位于或靠近相邻中心电压之间的中间点),并因此定义电压范围311、312、313、314之间的阈值电压。在读取操作期间,读取阈值电压VRA、VRB和VRC中的一个被应用于使用比较过程确定单元电压。然而,由于以上讨论的各种因素,实际的单元电压和/或当读取MLC时接收到的单元电压可能不同于与写入单元的数据值相对应的各个中心电压V11 311b、V01 312b、V00 313b和V10 314b。例如,实际的单元电压可能处于完全不同的电压范围内,强烈指示MLC正在存储不同于写入MLC的比特元组。更一般地,实际的单元电压可能接近于读取的比较电压中的一个,使得难以毫无疑义地确定MLC中存储了两个相邻比特元组中的哪一个。
在写入操作、读取操作期间,或由于数据被写入MLC的时间和执行读取操作以读取存储在MLC中的数据的时间之间的单元电压的“漂移”,单元电压和/或当读取MLC时接收到的单元电压中的错误可能会发生。为便于讨论,有时将单元电压中的错误和/或读取MLC时接收到的单元电压的错误统称为“单元电压漂移”。
减少单元电压从一个电压范围漂移到相邻电压范围的影响的一个方式是对比特元组进行格雷编码。对比特元组进行格雷编码包括约束比特元组的分配,使得特定电压范围的相应比特元组与相邻电压范围的相应比特元组仅有一个比特不同。例如,如图3B所示,相邻范围301和302的对应比特元组分别为“11”和“01”,相邻范围302和303的对应比特元组分别为“01”和“00”,以及相邻范围303和304的对应比特元组分别为“00”和“10”。使用格雷编码,如果单元电压漂移接近于读取的比较电压电平,则错误通常被限制在2比特的比特元组内的单个比特。
尽管图3B的描述使用了其中q=2(即,MLC闪速存储器中的每单元2个比特)的示例,但是本领域技术人员将会理解,这里描述的实施例可以扩展到每单元具有多于四个可能的状态的存储器单元,每单元产生多于两个比特的信息。例如,在一些实施例中,三级存储器单元(triple-level memory cell,TLC)每单元具有八个可能的状态,每单元产生三个比特的信息。作为另一示例在一些实施例中,四级存储器单元(quad-level memory cell,QLC)每单元具有八个可能的状态,每单元产生四个比特的信息。作为另一示例,在一些实施例中,单元可能仅存储6个状态,每单元产生大约2.5个比特的信息,这意指两个单元一起将提供36个可能的状态,足够存储每对单元5个比特的信息。
图4A至图4D是根据一些实施例的,在对储存器设备执行多阶段擦除操作(也称为擦除操作)期间,存储器单元电压的分布的概念图。更具体地,图4A至4D表示可以在每单元具有2个比特的多级闪速存储器单元(MLC)中发现的电压分布的简化的预示图。将理解,可以使用每单元具有不同数量的比特的许多闪速存储器配置(例如,每单元(SLC)1个比特,每单元(MLC)2个比特,每单元(TLC)3个比特等)。如示出的,预示图的每个具有X轴和Y轴。X轴与存储介质132的部分136(例如,单独可选择的块,并且更一般地是图1A中的存储介质132的可选部分136)中的非易失性存储器单元(例如,闪速存储器单元)的单元电压相对应。Y轴与具有沿X轴所示出的每个单元电压的存储介质132的部分136中的非易失性存储器单元的数量相对应。
图4A是根据一些实施例的,在擦除操作的开始之前,在编程状态400a中的存储介质132的选定部分136(例如,块)中的存储器单元电压的分布的概念图。存储器单元电压分布402与已擦除的存储器单元相对应,存储器单元电压分布404与存储值“01”的存储器单元相对应,存储器单元电压分布406与存储值“00”的存储器单元相对应,以及存储器单元电压分布408与存储值“10”的存储器单元相对应。
图4B是根据一些实施例的,在擦除操作的第一擦除阶段之后,在部分擦除的状态400b下,在与图4A中相同的存储介质132的选定部分136(例如,块)中的存储器单元电压的分布的概念图。擦除操作的第一擦除阶段使用擦除电压以从存储介质132的选定部分136中部分地擦除非易失性存储器单元。在第一擦除阶段期间,与值“01”、“00”和“10”先前相对应的存储器单元的单元电压降低了,由图4B中向左的偏移所表示。每个单元电压在擦除操作的每个擦除阶段期间改变的量是变化的,并且图4B示出了存储器单元电压的结果分布410的概念图。
继第一擦除阶段之后,储存器设备(在擦除验证操作期间或可选地在读取操作期间)通过将第一阶段擦除验证412(例如,应用如以上参考图3A至图3B所讨论的读取阈值电压)施加到选定部分136,来确定存储介质132的选定部分136中的存储器单元的状态。具有低于擦除验证电压412(即,在其左边)的单元电压的存储单元被认为满足第一擦除阶段的标准,而具有高于擦除验证电压412(即,在其右边)的单元电压的存储单元414被认为不满足(或不符合)第一擦除阶段的标准。为方便起见,存储器单元414有时被称为“未擦除的存储器单元”。然而,应该注意到,满足第一擦除阶段的标准的许多存储器单元并未真正被“擦除”,而是被充分擦除以满足第一擦除阶段的标准(例如,被充分擦除的存储器单元是其单元电压低于擦除验证电压的存储器单元)。
在一些实施例中,第一擦除阶段之后,储存器设备确定未擦除的存储器单元414的数量,并且确定该数量是否满足未擦除的存储器单元的第一擦除阶段阈值数量(也被称为擦除阶段阈值)。例如,如果未擦除的存储器单元的第一擦除阶段阈值数量是选定部分136中的存储器单元的33%,那么,在第一擦除阶段之后,如果未擦除的存储器单元414的数量小于33%,则未擦除的存储器单元414的数量满足未擦除的存储器单元的数量的第一擦除阶段阈值。换一种说法,如果在擦除阶段之后,未擦除的存储器单元的数量少于对应的阈值数量,则满足特定阶段阈值数量。
图4C是根据一些实施例的,在擦除操作的第二擦除阶段之后,在部分擦除的状态400c下,在与图4A和图4B中相同的存储介质132的选定部分136(例如,块)中的存储器单元电压的分布的概念图。擦除操作的第二擦除阶段使用第二擦除电压(通常高于在第一擦除阶段中使用的擦除电压)从存储介质132的选定部分136中部分地擦除非易失性存储器单元。在第二擦除阶段期间,先前与值“01”、“00”和“10”相对应的存储器单元的单元电压进一步降低了,由图4C中的向左的偏移所表示。每个单元电压在擦除操作的每个阶段期间改变的量是变化的,并且图4C示出了存储器单元电压的结果分布420的概念图。
继第二擦除阶段之后,储存器设备(在擦除验证操作期间或可选地在读取操作期间)通过将第二阶段擦除验证412或读取阈值电压422施加到选定部分136,来确定存储介质132的选定部分136中的存储器单元的状态。具有低于擦除验证电压422(即,在其左边)的单元电压的存储单元被认为满足第二擦除阶段的标准,而具有高于擦除验证电压422(即,在其右边)的单元电压的存储单元424被认为不满足(或不能)第二擦除阶段的标准。如以上讨论的,为方便起见,存储器单元424有时被称为“未擦除的存储器单元”。然而,应该注意到,满足第二擦除阶段的标准的许多存储器单元并未真正被“擦除”,而是被充分擦除以满足第二擦除阶段的标准。
在一些实施例中,第二擦除阶段之后,储存器设备确定未擦除的存储器单元424的数量,并且确定该数量是否满足未擦除的存储器单元的第二阶段阈值数量。例如,如果未擦除的存储器单元的第二擦除阶段阈值数量是选定部分136中的存储器单元的66%,那么,在第二擦除阶段之后,如果未擦除的存储器单元424的数量小于66%,则未擦除的存储器单元424的数量满足未擦除的存储器单元的数量的第二阶段阈值。换一种说法,如果在擦除阶段之后,未擦除的存储器单元的数量少于对应的阈值数量,则满足特定阶段阈值数量。
图4D是根据一些实施例的,在擦除操作的最终擦除阶段之后,在完全擦除的状态400d下,在与图4A至图4C中相同的存储介质132的选定部分136(例如,块)中的存储器单元电压的分布430的概念图。如以下更详细讨论的,实现完全擦除状态400d所要求的擦除阶段的数量在特定设备(例如,图1A中的储存器设备120)内可以从设备到设备甚至从块到块而变化。另外,在完全擦除的状态400d下,选定部分136中的少量存储器单元可以具有高于最终擦除验证电压432(即,在其右边)的单元电压。通常,对于与成功的擦除操作一致的这样的未擦除的存储器单元的数量存在预定的限制。另外,在一些实施例中,最终擦除验证电压432与用于在已擦除的存储器单元与具有未擦除的值的存储器单元之间进行区分的读取阈值电压相同。
应该注意到,图4B至图4D是概念图,在其中,对于在擦除操作之前已经处于已擦除的状态的存储器单元的存储器单元电压分布402与其它存储器单元的存储器单元电压分布分开地示出。交替地,在这些图中可以示出合并的存储器单元电压分布。
图5示出根据一些实施例的,使用多个擦除阶段在储存器设备中擦除数据的方法500的概念流程图表示。参考图1A中描绘的数据储存器系统100,在一些实施例中,由储存器设备(例如,图1A中的储存器设备120)或储存器设备的一个或多个组件(例如,储存器控制器124)来执行方法500。在一些实施例中,方法500由存储在非瞬时计算机可读存储介质中的并由设备的一个或多个处理器(诸如管理模块121-1(图2)的一个或多个处理单元(CPU)122-1)运行的指令管理。
在一些实施例中,方法500的操作(或可替换地,步骤)的一些可以由可操作地与储存器设备耦合的主机系统(例如,计算机系统110)来执行,并且方法500的其它操作在储存器设备处执行。在这些实施例的一些中,方法500至少部分地由存储在非瞬时性计算机可读存储介质中的并且由主机系统的一个或多个处理器(例如,硬件处理器)(主机系统的一个或多个处理器在图1A中未示出)运行的指令管理。
为了便于解释,下面描述由储存器设备(例如,由图1A中的储存器120的储存器控制器124)执行的方法500。参考图2,在一些实施例中,方法500的操作至少部分地由读取模块(例如,图2的读取模块212)、写入模块(例如,图2的写入模块214)和擦除模块(例如,图2的擦除模块218)执行。如图2中所示,擦除模块可以包括阶段擦除模块(例如,图2的阶段擦除模块220)、擦除统计模块(例如,图2的擦除统计模块222)和擦除电压调整模块(例如,图2的擦除电压调整模块224)。
在一些实施例中,当储存器设备(例如,图1A的储存器设备120、或图2中的诸如的擦除模块218的储存器设备120的组件)发起擦除操作的执行(502)时,该方法开始。在一些实施例中,储存器设备对一个或多个非易失性存储器设备(例如,图1A中的存储介质132的NVM 134-1,NVM 134-2等)的部分(例如,图1A中的存储介质132的可选部分136)执行(502)擦除操作。在一些实施例中,储存器设备执行擦除阶段操作的序列直到满足擦除操作停止条件(508-是)。当存储介质132的选定部分136中的基本上所有的非易失性存储器单元(例如,比特和/或闪速存储器单元)被成功擦除时,擦除阶段操作满足擦除操作停止条件。如上所述,即使少量的存储器单元保持在未擦除的状态,但也通常满足擦除操作停止条件。可替换地,在一些实施例中,储存器设备执行擦除阶段操作直到执行最大数量的擦除阶段操作或满足擦除操作停止条件(无论哪一个先发生)。继执行最大数量的擦除阶段操作之后,并且根据选定部分136未能满足擦除操作停止条件的确定,储存器设备将存储介质132的选定部分136从未来的服务撤出。
在发起擦除操作的执行之后,储存器设备(例如,图1A中的储存器设备120、或图2中的诸如擦除模块218的储存器设备120的组件)使用擦除电压对存储介质132的选定部分136执行(504)擦除阶段(例如,擦除阶段操作的序列中的第一擦除阶段)。在一些实施例中,在第一擦除阶段期间施加的擦除电压的幅度基本上小于完全擦除存储介质132的选定部分136所要求的幅度。以这种方式,由于擦除电压的低幅度,第一擦除阶段对存储介质132造成最小损害。第一擦除阶段的目标是要满足第一擦除阶段阈值(以下更详细地讨论)。因此,在第一擦除阶段应用的擦除电压的幅度被设置为满足第一擦除阶段阈值的值。
该方法还包括确定(506)擦除阶段的擦除阶段统计的储存器设备(例如,图1A中的储存器设备120、或图2中的诸如擦除统计模块222的储存器设备120的组件)。在一些实施例中,继擦除阶段之后执行读取操作(例如,上述擦除验证操作)以便让储存器设备确定擦除统计。如以上参考图4B至图4D所讨论的,擦除验证操作对存储介质132的选定部分136施加擦除验证电压(例如,读取阈值电压)。具有低于擦除验证电压的单元电压的存储器单元被认为满足擦除阶段的标准,而具有高于擦除验证电压的单元电压的存储器单元被认为不满足(或不符合)擦除阶段的标准。这些存储器单元(具有高于标准的单元电压的存储器单元)有时被称为“未擦除的存储器单元”。在一些实施例中,擦除阶段的擦除阶段统计是在选定部分136中的擦除阶段之后的未擦除的存储器单元的数量(或百分比)。最后,如上所述,满足给定擦除阶段的标准的许多存储器单元并不真正被“擦除”,而是它们被充分地擦除以满足给定擦除阶段的标准。
继擦除验证操作之后,储存器设备确定未擦除的存储器单元的数量是否满足擦除阶段的擦除阶段阈值。擦除阶段阈值是在擦除阶段期间应该被擦除的存储器单元的数量(或百分比)。在一个示例中,在第一擦除阶段之后,最多选定部分136中的存储器单元的50%应该是未擦除的存储器单元。然而,如果在第一擦除阶段之后,选定部分136中的存储器单元的60%是未擦除的存储器单元,则未擦除的存储器单元的数量不满足第一擦除阶段的擦除阶段阈值。
应该理解,在一些实施例中,至少在擦除操作的发起阶段期间,擦除阶段阈值与擦除操作停止条件不同。在一些实施例中,在擦除操作的一个或多个最终擦除阶段期间,擦除阶段阈值与擦除操作停止条件相同。
在一些实施例中,当储存器设备(例如,图1A中的储存器设备120、或图2中的诸如读取模块212的储存器设备120的组件)确定是否满足擦除操作停止条件(508)时,该方法继续。如上所述,第一擦除阶段一般不满足擦除操作停止条件。如以上讨论的,第一擦除阶段的目标是满足第一擦除阶段阈值。因此,在一些实施例中,操作508是可选的或并不包括在擦除操作的发起阶段的一个或多个中。
然而,如果在执行擦除阶段之后,擦除操作停止条件被满足,则储存器设备(例如,图1A中的储存器设备120、或图2中的诸如读取模块218的储存器设备120的组件)停止(510)擦除操作。此外,在一些实施例中,储存器设备或诸如擦除统计模块(例如,图2中的擦除模块218)的储存器设备的组件记录(512)与停止的擦除操作相关联的擦除信息。在一些实施例中,擦除信息包括:满足擦除操作停止条件所要求的擦除阶段的数量;在最后的擦除阶段期间所使用的擦除电压、和可选的在一个或多个附加的擦除阶段(例如,第一擦除阶段)期间所使用的擦除电压;在一个或多个擦除阶段期间所使用的擦除脉冲的数量;以及满足擦除操作停止条件所要求的总时间。在一些实施例中,擦除信息被存储在擦除块数据结构(例如,图2的擦除块数据结构226)中。在一些实施例中,擦除块数据结构包括用于存储介质的多个部分的信息。以这种方式,用于存储介质132的第一部分(例如,NVM 134-1)的擦除信息容易地与用于存储介质132的第二部分(例如,NVM 134-2)的擦除信息比较。因此,储存器设备可以选择特定部分(例如,第一部分而不是第二部分),以基于在擦除块数据结构中记录的信息执行未来的写入操作。
在一些实施例中,根据擦除操作停止条件不被满足的确定(508-否),储存器设备(例如,图1A中的储存器设备120、或图2中的诸如读取模块212的储存器设备120的组件)在执行(504)下一个擦除阶段之前可选地执行(514)一个或多个非擦除操作。在一些实施例中,非擦除操作被存储在待处理的操作队列中(例如,待处理操作队列228)。以这种方式,另外等待擦除操作完成的待处理的非擦除操作在擦除操作完成之前运行。通常,储存器设备考虑由主机系统请求作为高优先级操作的非擦除操作(例如,读取和/或写入操作)。因此,如果由主机系统请求的非擦除操作是待处理的(即,等待被运行),则这些待处理操作中的一个或多个在执行下一擦除阶段之前被执行。在一些情况下,仅仅低优先级操作(例如,垃圾收集读取和写入操作)被存储在待处理的操作队列中。在此情况中,储存器设备根据系统如何被配置,来在不执行待处理的低优先级非擦除操作中的任何一个的情况下执行下一擦除阶段(例如,移动到步骤516),或交替地执行存储在待处理的操作队列中的待处理的低优先级操作中的一个或多个。
根据不满足擦除操作停止条件的确定(508-否),储存器设备(例如,图1A中的储存器设备120、或图2中的诸如擦除电压调整模块224的储存器设备120的组件)将擦除电压增加(516)根据擦除阶段统计所确定的擦除电压增量。在一些实施例中,如果擦除阶段满足或超过擦除阶段阈值(例如,未擦除的存储器单元的数量小于擦除阶段阈值),则擦除电压增量是默认值,因而将擦除电压增加默认值。进一步,如果擦除阶段不满足擦除阶段阈值(例如,未擦除的存储器单元的数量大于擦除阶段阈值),则擦除电压增量基于擦除阶段统计。例如,下一擦除阶段的擦除电压的增加可以用下面的方程式来表示:
ΔErase=function((多个)未擦除的存储器单元计数–擦除阶段阈值)
Verase(下一阶段)=Verase(当前阶段)+ΔErase
其中,ΔErase是擦除电压增量,Verase是用于擦除操作的特定擦除阶段的擦除电压,以及“function”是其自变量的预定的数学函数。在一些实施例中,函数是未擦除的存储器单元的计数和擦除阶段阈值之间的差的线性函数,诸如A+B*dif,其中A通常等于或大于默认擦除电压增量,B是缩放系数,以及“dif”是未擦除的存储器单元的计数与擦除阶段阈值之间的差。如上所讨论的,在一些实施例中,擦除阶段阈值是在擦除阶段期间应该被擦除的存储器单元的数量(或百分比)。
在一些实施例中,跨擦除操作的所有擦除阶段,默认值是一致的(即,如果每个擦除阶段“成功”,则擦除电压在整个擦除操作中线性地增加)。在一些其它实施例中,在每个连续擦除阶段之间,默认值不一致地增加(例如,开始的擦除阶段具有小的擦除电压增量,而稍后的擦除阶段具有较大的擦除电压增量,或者反之亦然)。
该方法继续(518),储存器设备(例如,图1A中的储存器设备120、或图2中的诸如擦除模块218的储存器设备120的组件)使用增加后的擦除电压来执行擦除操作的下一个阶段(在504处开始)。以这种方式,储存器设备再次执行至少操作504、506和508。该方法将继续执行附加的擦除阶段直到满足擦除停止条件(508)或已执行最大数量的擦除阶段(无论哪一个先发生)。
在一些实施例中,储存器设备或主机系统(例如,图1A中的主机系统110)建立要对选定部分136执行的擦除阶段的最大数量,以满足最终阈值。在一些实施例中,储存器设备在最大数量的擦除阶段的最后可允许的擦除阶段期间或者在最后可允许的擦除阶段之后(用最强的可用擦除电压)执行的英雄式擦除操作中,将最终擦除电压设置为最强的可用擦除电压。根据最后可允许的擦除阶段未成功地满足最终阈值的确定,在一些实施例中,储存器设备撤出或保留选定部分136的低优先级读取和写入操作(例如,不来自主机系统的读取和写入操作)。在一些实施例中,当最后可允许的擦除阶段(或任何较早的擦除阶段)满足最终阈值时,储存器设备将选定部分136标记为已成功擦除,并且还可用于未来的读取和写入操作。
继停止擦除操作之后,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如读取模块212、写入模块214和/或擦除模块218的储存器设备120的组件)执行或发起操作队列(例如,图2中的待处理操作队列228)中的下一操作的执行。通常,从由以下各项组成的集合中选择下一操作:擦除操作、主机请求的读取操作、主机请求的写入操作、垃圾收集发起的读取操作和垃圾收集发起的写入操作。然而,在一些实施例中,其它类型的操作,例如取消映射操作(有时也成为修剪(trim)操作),也可以被包括在操作队列中。以这种方式,只要在其队列中存在待处理操作,储存器设备就持续地执行操作。
以下参考图7A至图7C呈现关于方法500的处理步骤中的每一个的附加细节以及关于附加的处理步骤的细节。
图6示出根据一些实施例的,使用多个擦除阶段600在储存器设备中擦除数据的方法的概念流程图表示。参考图1A中描绘的数据储存器系统100,在一些实施例中,由储存器设备(例如,储存器设备120)或储存器设备的一个或多个组件(例如,储存器控制器124)来执行方法600。在一些实施例中,由存储在非瞬时性计算机可读存储介质(例如,图2中的控制器存储器206)中的并且由设备的一个或多个处理器(诸如管理模块121-1(图2)的一个或多个处理单元(CPU)122-1)运行的指令来管理方法600。
在一些实施例中,当储存器设备(例如,图1A的储存器设备120、或图2中的诸如擦除模块218的储存器设备120的组件)对一个或多个非易失性存储器设备(图1A中的存储介质的NVM 134-1、NVM 134-2等)的部分(例如,图1A中的存储介质132的选定部分136)发起(602)擦除操作的执行时,该方法开始。
在一些实施例中,如以上参考方法500的操作504进一步解释的,当储存器设备(例如,图1A中的储存器设备120,或图2中的诸如阶段擦除模块220的储存器设备120的组件)使用擦除电压对存储介质132的选定部分136执行(604)第一擦除阶段时,该方法继续。
如以上参考方法500的操作506进一步解释的,该方法还包括储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除统计模块222的储存器设备120的组件)确定(606)第一擦除阶段的擦除阶段统计。
接下来,如以上参考方法500的操作504进一步解释的,储存器设备(例如,图1A中的储存器设备120,或诸如读取模块212或写入模块214的储存器设备120的组件)可选地执行(608)一个或多个非擦除操作。应该注意到,在一些实施例中,如图6中表示的,在第一擦除阶段的结尾并不执行对满足擦除操作停止条件的检查,因为已知在擦除操作中的该时刻不会满足停止条件。
如以上参考方法500的操作516进一步解释的,该方法继续,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除电压调整模块224的储存器设备120的组件)将擦除电压增加(610)根据擦除阶段统计所确定的擦除电压增量。
接下来,如以上参考方法500的操作504和506进一步解释的,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如阶段擦除模块220的储存器设备120的组件)使用增加后的擦除电压对存储介质132的选定部分136执行(612)第二擦除阶段,并且确定(614)第二擦除阶段的擦除阶段统计。
在一些实施例中,当储存器设备(例如,图1A中的储存器设备120,或图2中的诸如读取模块212的储存器设备120的组件)确定是否(616)满足擦除操作停止条件时,该方法继续。如以上参考方法500的操作508和510进一步解释的,如果第二擦除阶段满足擦除操作停止条件(616-是),则储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除模块218的储存器设备120的组件)停止(618)擦除操作。在一些实施例中,操作616不在第二擦除阶段之后执行,而是在擦除操作的稍后擦除阶段期间(例如,在执行第三擦除阶段之后)执行。
如以上参考方法500的操作514进一步解释的,根据不满足擦除操作停止条件的确定(616-否),储存器设备(例如,图1A中的储存器设备120,或诸如读取模块212或写入模块214的储存器设备120的组件)可选地执行(620)诸如一个或多个读取操作的一个或多个非擦除操作。
接下来,如以上参考方法500的操作516和504进一步解释的,储存器设备(例如,图1A中的储存器设备120,或诸如擦除电压调整模块224的储存器设备120的组件)将擦除电压增加(622)根据擦除阶段统计所确定的擦除电压增量,并且使用增加后的擦除电压对存储介质132的选定部分136执行(624)下一擦除阶段。应该理解,操作612-624可以被执行许多次,从而执行擦除操作的额外阶段,直到满足擦除操作停止条件。
以下参考图8A至图8D呈现关于方法600的处理步骤中的每一个的附加细节以及关于附加的处理步骤的细节。
图7A至图7C示出根据一些实施例的,使用多个擦除阶段对储存器设备上的储存器进行擦除的方法的概念流程图表示。参考图1A中描绘的数据储存器系统100,在一些实施例中,方法700由储存器设备(例如,储存器设备120)或储存器设备的一个或多个组件(例如,储存器控制器124)来执行。在一些实施例中,方法700由存储在非瞬时性计算机可读存储介质(例如,图2中的控制器存储器206)中的并且由设备的一个或多个处理器(诸如管理模块121-1(图2)的一个或多个处理单元(CPU)122-1)运行的指令来管理。在一些实施例中,方法700的操作中的一些在与储存器设备可操作地耦合的主机系统(例如,计算机系统110)处执行,并且方法700的其它操作在储存器设备处执行。在一些实施例中,方法700至少部分地由存储在非瞬时性计算机可读存储介质中的并且由主机系统的一个或多个处理器(该主机系统的一个或多个处理器未在图1A中示出)运行的指令管理。
为便于解释,下面描述由储存器设备(例如,由图1A中的储存器设备120的储存器控制器124)执行的方法700。参考图2,在一些实施例中,方法700的操作至少部分地由读取模块(例如,图2的读取模块212)、写入模块(例如,图2的写入模块214)和擦除模块(例如,图2的擦除模块218)执行。如图2所示,擦除模块可以包括阶段擦除模块(例如,图2中的阶段擦除模块220)、擦除统计模块(例如,图2中的擦除统计模块222)和擦除电压调整模块(例如,图2中擦除电压调整模块224)。
参考图7A,储存器设备(例如,图1A中的储存器设备120、或图2中的诸如擦除模块218的储存器设备120的组件)通过执行擦除阶段操作的序列直到满足擦除操作停止条件,对一个或多个非易失性存储器设备(例如,图1A中的存储介质132的NVM 134-1、NVM 134-2等)的部分(图1A中的存储介质132的选定部分136)执行(702)擦除操作。在下面的讨论中,对其执行擦除操作的存储器部分被称为选定部分以便于参考,。在一些实施例中,擦除阶段操作的序列包括:第一擦除阶段操作(擦除阶段操作也被称为(多个)擦除阶段和/或(多个)阶段)和最后的擦除阶段操作,并且在执行第一擦除阶段操作的同时所使用的擦除电压在幅度上小于在执行最后的擦除阶段操作的同时所使用的擦除电压(704)。以这种方式,相对于由最后的擦除阶段操作造成的损害而言,由于第一擦除阶段操作的小幅度擦除电压,第一擦除阶段操作对一个或多个非易失性存储器设备的部分实质上造成的较小的损害。以上参考图5进一步解释了擦除电压的幅度。
在一些实施例中,擦除阶段操作的序列包括最后可允许的擦除阶段。此外,如以上参考图5进一步解释的,响应于最后可允许的擦除阶段未能满足擦除操作停止条件的确定,储存器设备存储撤出一个或多个非易失性存储器设备的选定部分的指示(706)。最后可允许的擦除阶段有时被称为英雄式擦除阶段(708)。英雄式擦除阶段使用最强的可允许擦除电压。
在一些实施例中,如以上参考图5进一步解释的,擦除阶段操作的序列被限制为阈值数量的擦除阶段(以上也被称为最大数量的擦除阶段),使得当对一个或多个非易失性存储器设备的选定部分执行阈值数量的擦除阶段时,停止擦除操作(710)。
另外,如以上参考方法5进一步解释的,每个擦除阶段操作包括储存器设备(例如,图1A中的储存器设备120,或图2中的诸如阶段擦除模块220的储存器设备120的组件)使用擦除电压对一个或多个非易失性存储器设备的选定部分执行(712)擦除阶段。
另外,每个擦除阶段操作包括储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除统计模块222的储存器设备120的组件)确定擦除阶段的擦除阶段统计(714)。在一些实施例中,如以上参考图4B、图4C和图5更详细地讨论的,擦除阶段的擦除阶段统计与具有满足与擦除阶段相对应的标准的阈值电压的一个或多个非易失性存储器设备的部分中的存储器单元的计数相对应(716)。在一些实施例中,擦除阶段的擦除阶段统计与对成功擦除(例如,通过降低存储器单元电压来部分擦除)一个或多个非易失性存储器设备的选定部分的测量相对应(718)。
另外,对于除了擦除阶段操作的序列中的第一擦除阶段操作之外的擦除阶段操作的序列中的每个擦除阶段操作,当执行擦除阶段操作时所使用的擦除电压等于当执行擦除阶段操作的序列中的前一个擦除阶段操作时所使用的擦除电压加上基于前一个擦除阶段操作的擦除阶段统计的擦除电压增量(720)。
如以上参考图5进一步解释的,在一些实施例中或者在一些情况下,储存器设备在擦除操作的连续擦除阶段操作之间执行至少一个非擦除操作(722)。
在一些实施例中,如以上参考图5进一步解释的,响应于擦除阶段统计满足擦除操作停止条件的确定(724),储存器设备停止(726)擦除操作并记录(728)与停止的擦除操作相关联的擦除信息。在一些实施例中,擦除信息包括根据对停止的擦除操作的一个或多个擦除困难度量以及根据在非易失性存储器设备的寿命期间对相应非易失性存储器部分执行的擦除操作的总数的相应的存储器部分健康度量。在一些实施例中,一个或多个困难度量与以下相对应:满足擦除操作停止条件所要求的擦除阶段的数量、在最后的擦除阶段期间使用的擦除电压、在最后的擦除阶段使用的擦除电压和在第一擦除阶段期间使用的擦除电压之间的差、在第一擦除阶段之后的未擦除的存储器单元的数量、在擦除阶段中的一个或多个期间使用的擦除脉冲的数量、和/或满足擦除操作停止条件所要求的总时间。
以上参考图5进一步解释了这样的擦除信息的附加方面。
图8A至图8D示出根据一些实施例的,使用多个擦除阶段对储存器设备上的储存器进行擦除的方法的流程图表示。参考图1A中描绘的数据储存器系统100,在一些实施例中,方法800由储存器设备(例如,储存器设备120)或储存器设备的一个或多个组件(例如,储存器控制器124)来执行。在一些实施例中,方法800由存储在非瞬时性计算机可读存储介质中的并且由设备的一个或多个处理器(诸如管理模块121-1的一个或多个处理单元(CPU)122-1)运行的指令来管理。在一些实施例中,方法800的操作中的一些在与储存器设备可操作地耦合的主机系统(例如,计算机系统110)处执行,并且方法800的其它操作在储存器设备处执行。在一些实施例中,方法800至少部分地由被存储在非瞬时性计算机可读存储介质中并且由主机系统的一个或多个处理器(该主机系统的一个或多个处理器未在图1A中示出)运行的指令管理。
为便于解释,下面描述由储存器设备(例如,由图1A中的储存器设备120的储存器控制器124或其组件执行)执行的方法800。
参考图8A,如以上参考方法500的操作504进一步解释的,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除模块218的储存器设备120的组件)使用擦除电压对一个或多个非易失性存储器设备的部分执行多阶段擦除操作中的第一阶段(802)。
继执行多阶段擦除操作的第一阶段(804)之后,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除统计模块222的储存器设备120的组件)确定(806)擦除操作的第一阶段的第一阶段擦除统计。在一些实施例中,确定第一阶段擦除统计包括确定第一阶段未擦除的存储器单元的数量是否满足未擦除的存储器单元的第一阶段阈值数量(808)。以上参考方法500的操作506进一步解释了擦除统计和擦除阶段阈值。
接下来,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除电压调整模块224的储存器设备120的组件)根据第一阶段擦除统计确定(810)擦除电压增量。在一些实施例中,确定擦除电压增量包括(812):响应于确定第一阶段未擦除的存储器单元的数量满足未擦除的存储器单元的第一阶段阈值数量,向擦除电压增量分配预定的增量值(814)。可替换地,在一些实施例中,确定擦除电压增量包括(812):响应于确定第一阶段已擦除的存储器单元的数量不满足未擦除的存储器单元的第一阶段阈值数量,根据第一阶段未擦除的存储器单元的数量(即,在第一擦除阶段之后的未擦除的存储器单元的数量)确定(816)擦除电压增量。以上参考方法500的操作516进一步解释了确定擦除电压增量。
接下来,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除电压调整模块224的储存器设备120的组件)将擦除电压增加(817)所确定的擦除电压增量。增加擦除电压意指擦除电压的幅度增加。因而,擦除电压增量的幅度根据第一阶段擦除统计而变化(例如,更大的数量的第一阶段未擦除的存储器单元导致更大的擦除电压增量)。以上参考图5进一步解释了擦除电压的幅度。
接下来,如以上参考方法500的操作518进一步解释的,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除模块218的储存器设备120的组件)使用增加后的擦除电压对一个或多个非易失性存储器设备的部分执行(818)多阶段擦除操作中的第二阶段。
另外,如以上参考方法500的操作514进一步解释的,储存器设备120(例如,图1A中的储存器设备120,或诸如读取模块212或写入模块214的储存器设备120的组件)继多阶段擦除操作的第一阶段之后且在多阶段擦除操作的第二阶段之前,执行至少一个非擦除操作(820)。例如,在一些实施方式中,至少一个非擦除操作在操作806之后且在操作818之前执行。
在一些实施例中,如以上参考方法500的操作506进一步解释的,继执行擦除操作的第二擦除阶段(822)之后,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除统计模块222的储存器设备120的组件)确定(824)擦除操作的第二阶段的第二阶段擦除统计。
接下来,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除电压调整模块224的储存器设备120的组件)根据第二阶段擦除统计确定(826)擦除电压增量的下一值。在一些实施例中,确定擦除电压增量的下一值包括:响应于确定第二阶段未擦除的存储器单元的数量满足未擦除的存储器单元的第二阶段阈值数量,向擦除电压增量分配预定的增量值(828)。可替换地,在一些实施例中,响应于确定第二阶段已擦除的存储器单元的数量不满足未擦除的存储器单元的第二阶段阈值数量,根据第二阶段未擦除的存储器单元的数量(即,在第二阶段之后的未擦除的存储器单元的数量)确定(830)擦除电压增量。可选地(但通常地),未擦除的存储器单元的第二阶段阈值数量不同于未擦除的存储器单元的第一阶段阈值数量(832)。以上参考方法500的操作516进一步解释了确定擦除电压增量。
接下来,如以上参考方法500的操作516进一步解释的,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除电压调整模块224的储存器设备120的组件)将擦除电压增加(834)根据擦除阶段统计所确定的擦除电压增量。
接下来,储存器设备(例如,图1A中的储存器设备120、或图2中的诸如擦除模块218的储存器设备120的组件)使用增加后的擦除电压来执行(836)多阶段擦除操作的第三阶段。该方法将继续执行附加的擦除操作直到满足擦除停止条件或已执行最大数量的擦除阶段(无论哪一个先发生)。另外,在一些实施例中,如果在多阶段擦除操作的非最终阶段结束时,任何高优先级的非擦除操作是待处理的(或者,可替换地,如果任何非擦除操作是待处理的),则储存器设备在多阶段擦除操作的该非最终阶段之后且在执行多阶段擦除操作的下一阶段之前执行至少一个非擦除操作。
在一些实施例中,如以上参考方法500的操作512进一步解释的,继执行多阶段擦除操作的所有阶段(例如,满足擦除停止条件或已执行最大数量的擦除阶段)之后,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除模块218的储存器设备120的组件)确定(838)一个或多个非易失性存储器设备的部分的擦除健康值。
在一些实施例中,继对一个或多个非易失性存储器设备的部分执行多阶段擦除操作的所有阶段之后,储存器设备(例如,图1A中的储存器设备120,或图2中的诸如擦除模块218的储存器设备120的模块)确定(840)一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量是否满足最终阈值。此外,在一些实施例中,如以上参考图5进一步解释的,响应于确定一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量不满足最终阈值,储存器设备执行(842)英雄式擦除操作。
在一些实施例中,继执行英雄式擦除操作之后,储存器设备执行(844)对一个或多个非易失性存储器设备的部分的已擦除的存储器单元的数量是否不满足最终阈值的附加的确定。如以上参考图5进一步解释的,响应于确定一个或多个非易失性存储器设备的部分的已擦除的存储器单元的数量不满足最终阈值,储存器设备存储(846)撤出一个或多个非易失性存储器设备的部分的指示。
在一些实施例中,一个或多个非易失性存储器设备的部分是擦除块。在一些实施例中,一个或多个非易失性存储器设备是闪速存储器设备。
将理解,尽管本文可以使用术语“第一”、“第二”等来描述各种元件,但这些元件不应该被这些术语限制。这些术语仅仅被用来将一个元件与其它元件区分开。例如,第一联系人可以被称为第二联系人,并且类似地,第二联系人可以被称为第一联系人,这改变了描述的含义,只要“第一联系人”的全部出现被一致地重命名,并且第二联系人的全部出现被一致地重命名。第一联系人和第二联系人都是联系人,但它们不是相同的联系人。
本文所使用的术语仅仅用于描述特殊实施例的目的,并且不意图对本权利要求进行限制。如在实施例和所附权利要求的描述中所使用的,除非上下文清楚地另外指示,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还将理解,本文所使用的术语“和/或”是指并且包含一个或多个相关联的所列项目的任何和所有可能的组合。还将理解,当术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整体、步骤、操作、元件、和/或组件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组的存在或者添加。
如本文所使用的,根据上下文,术语“如果”可以被解释为其陈述的先决条件为真的“何时”或“在……时”或“响应于确定”或“根据确定”或“响应于检测”。类似地,根据上下文,短语“如果确定[所陈述的先决条件是为真]”或“如果[所陈述的先决条件为真]”或“当[所陈述的先决条件为真”)可以被解释为其陈述的先决条件为真的“在确定……时”或“响应于确定”或“根据确定”或“根据检测”或“响应于检测”。
为了说明的目的,已经参考特定实施例描述了前述描述。然而,以上的例示性的讨论并不意图是详尽的或者将权利要求限制为所公开的准确形式。鉴于以上教导,许多修改和变化是可能的。为了最好地解释操作和实际应用的原理,选择和描述了实施方式,从而使能本领域的其它技术人员成为可能。

Claims (26)

1.一种在储存器设备中擦除数据的方法,所述储存器设备具有一个或多个非易失性存储器设备,所述方法包括:
通过执行擦除阶段操作的序列直到满足擦除操作停止条件,来对所述一个或多个非易失性存储器设备的部分执行擦除操作,每个擦除阶段操作包括:
使用擦除电压对所述一个或多个非易失性存储器设备的部分执行擦除阶段;以及
确定擦除阶段的擦除阶段统计;
其中,对于除了擦除阶段操作的序列中的第一擦除阶段操作之外的擦除阶段操作的序列中的每个擦除阶段操作,在执行擦除阶段操作时使用的擦除电压等于在执行擦除阶段操作的序列中的前一个擦除阶段操作时使用的擦除电压加上基于前一个擦除阶段操作的擦除阶段统计的擦除电压增量。
2.如权利要求1所述的方法,还包括在擦除操作的连续的擦除阶段操作之间执行至少一个非擦除操作。
3.如权利要求1-2中的任何一个所述的方法,其中,所述擦除阶段操作的序列包括第一擦除阶段操作和最后的擦除阶段操作,并且在执行第一擦除阶段操作的同时使用的擦除电压在幅度上小于在执行最后的擦除阶段操作的同时使用的擦除电压。
4.如权利要求1-3中的任何一个所述的方法,其中,所述擦除阶段的擦除阶段统计与具有满足与所述擦除阶段相对应的标准的阈值电压的所述一个或多个非易失性存储器设备的部分中的存储器单元的计数相对应。
5.如权利要求1-3中的任何一个所述的方法,其中,所述擦除阶段的擦除阶段统计与对成功擦除所述一个或多个非易失性存储器设备的部分的测量相对应。
6.如权利要求1-5中的任何一个所述的方法,还包括:
响应于所述擦除阶段统计满足所述擦除操作停止条件的确定:
停止所述擦除操作,并且
记录与停止的擦除操作相关联的擦除信息。
7.如权利要求6所述的方法,其中,所述擦除信息包括相应的存储器部分健康度量,所述相应的存储器部分健康度量根据对停止的擦除操作的擦除困难度量、和与在储存器设备的寿命期间对所述一个或多个非易失性存储器设备的部分执行的擦除操作的总数相对应的信息。
8.如权利要求1-7中的任何一个所述的方法,其中,擦除阶段操作的序列包括最后可允许的擦除阶段,并且所述方法还包括:
响应于所述最后可允许的擦除阶段未能满足所述擦除操作停止条件的确定,存储撤出所述一个或多个非易失性存储器设备的部分的指示。
9.如权利要求8所述的方法,其中,所述最后可允许的擦除阶段是英雄式擦除阶段。
10.如权利要求1-7中的任何一个所述的方法,其中,所述擦除阶段操作的序列被限制于阈值数量的擦除阶段,使得当对所述一个或多个非易失性存储器设备的部分执行了阈值数量的擦除阶段时,停止所述擦除操作。
11.一种在储存器设备中擦除数据的方法,所述储存器设备具有一个或多个非易失性存储器设备,所述方法包括:
使用擦除电压对所述一个或多个非易失性存储器设备的部分执行多阶段擦除操作中的第一阶段;以及
继执行所述多阶段擦除操作中的第一阶段之后:
确定所述擦除操作的第一阶段的第一阶段擦除统计;
根据所述第一阶段擦除统计,确定擦除电压增量;
将擦除电压增加所确定的擦除电压增量;以及
使用增加后的擦除电压对所述一个或多个非易失性存储器设备的部分执行所述多阶段擦除操作中的第二擦除阶段,
其中,在继所述多阶段擦除操作的第一阶段之后,并且在所述多阶段擦除操作的第二阶段之前,执行至少一个非擦除操作。
12.如权利要求11所述的方法,其中,确定所述第一阶段擦除统计包括确定第一阶段未擦除的存储器单元的数量是否满足未擦除的存储器单元的第一阶段阈值数量;并且
其中,确定所述擦除电压增量包括:
响应于确定第一阶段未擦除的存储器单元的数量满足所述未擦除的存储器单元的第一阶段阈值数量,向所述擦除电压增量分配预定的增量值;以及
响应于确定第一阶段已擦除的存储器单元的数量不满足所述未擦除的存储器单元的第一阶段阈值数量,根据所述第一阶段未擦除的存储器单元的数量确定所述擦除电压增量。
13.如权利要求11-12中的任何一个所述的方法,还包括:
继执行所述擦除操作的第二阶段之后,
确定所述擦除操作的第二阶段的第二阶段擦除统计;以及
根据所述第二阶段擦除统计,确定擦除电压增量的下一值;
将擦除电压增加所确定的擦除电压增量;并且
使用增加后的擦除电压执行所述多阶段擦除操作中的第三擦除阶段。
14.如权利要求13所述的方法,其中,确定擦除电压增量的下一值包括:
响应于确定第二阶段未擦除的存储器单元的数量满足未擦除的存储器单元的第二阶段阈值数量,向所述擦除电压增量分配预定的增量值;以及
响应于确定第二阶段已擦除的存储器单元的数量不满足未擦除的存储器单元的第二阶段阈值数量,根据第二阶段未擦除的存储器单元的数量确定所述擦除电压增量;
其中,所述未擦除的存储器单元的第二阶段阈值数量不同于所述未擦除的存储器单元的第一阶段阈值数量。
15.如权利要求11-14中的任何一个所述的方法,还包括:继对所述一个或多个非易失性存储器设备的部分执行所述多阶段擦除操作的所有阶段之后,确定所述一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量是否满足最终阈值。
16.如权利要求15所述的方法,还包括,响应于确定所述一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量不满足所述最终阈值,执行英雄式擦除操作。
17.如权利要求16所述的方法,还包括:
继执行所述英雄式擦除操作之后,执行对所述一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量是否不满足所述最终阈值的附加的确定;以及
响应于确定所述一个或多个非易失性存储器设备的部分的未擦除的存储器单元的数量不满足所述最终阈值,存储撤出所述一个或多个非易失性存储器设备的部分的指示。
18.如权利要求11-17中的任何一个所述的方法,还包括,继执行所述多阶段擦除操作的所有阶段之后,确定所述一个或多个非易失性存储器设备的部分的擦除健康值。
19.如权利要求1-18中的任何一个所述的方法,其中,所述一个或多个非易失性存储器设备的部分是闪速存储器的块。
20.一种储存器系统,包括:
存储介质;
一个或多个处理器;以及
存储器,其存储一个或多个程序,当由所述一个或多个处理器运行所述程序时,使得储存器系统执行或控制权利要求1-18中的任何一个所述的方法的执行。
21.一种计算机可读存储介质,其储存被配置用于由储存器设备中的一个或多个处理器运行的一个或多个程序,所述一个或多个程序包括用于执行权利要求1-18中的任何一个所述的方法的指令。
22.一种非瞬时性计算机可读存储介质,其存储被配置用于由储存器系统的一个或多个处理器运行的一个或多个程序,所述一个或多个程序包括当由所述一个或多个处理器运行时使得储存器系统进行以下各项的指令:
通过执行擦除阶段操作的序列直到满足擦除操作停止条件,来对一个或多个非易失性存储器设备的部分执行擦除操作,每个擦除阶段操作包括:
使用擦除电压对所述一个或多个非易失性存储器设备的部分执行擦除阶段;以及
确定所述擦除阶段的擦除阶段统计;
其中,对于除了所述擦除阶段操作的序列中的第一擦除阶段操作之外的擦除阶段操作的序列中的每个擦除阶段操作,在执行所述擦除阶段操作时使用的擦除电压等于在执行所述擦除阶段操作的序列中的前一个擦除阶段操作时使用的擦除电压加上基于所述前一个擦除阶段操作的擦除阶段统计的擦除电压增量。
23.一种储存器设备,包括:
通过执行擦除阶段操作的序列直到满足擦除操作停止条件,来对所述一个或多个非易失性存储器设备的部分执行擦除操作的装置,每个擦除阶段操作包括:
用于使用擦除电压对所述一个或多个非易失性存储器设备的部分执行擦除阶段的装置;以及
用于确定所述擦除阶段的擦除阶段统计的装置;
其中,除了所述擦除阶段操作的所述序列中的第一擦除阶段操作之外,对于所述擦除阶段操作的序列中的每个擦除阶段操作,在执行所述擦除阶段操作时使用的擦除电压等于在执行所述擦除阶段操作的序列中的前一个擦除阶段操作时使用的擦除电压加上基于所述前一个擦除阶段操作的擦除阶段统计的擦除电压增量。
24.如权利要求23所述的储存器设备,其中,所述储存器设备还包括用于执行权利要求2-10中的任何一个所述的方法的装置。
25.一种储存器设备,包括:
用于使用擦除电压对所述一个或多个非易失性存储器设备的部分执行多阶段擦除操作中的第一阶段的装置;
用于继执行所述多阶段擦除操作中的第一阶段之后,确定所述擦除操作的第一阶段的第一阶段擦除统计的装置;
用于根据所述第一阶段擦除统计,确定擦除电压增量的装置;
用于将所述擦除电压增加所确定的擦除电压增量的装置;以及
用于使用增加后的擦除电压对所述一个或多个非易失性存储器设备的部分执行多阶段擦除操作中的第二擦除阶段的装置,
其中,在继所述多阶段擦除操作的第一阶段之后,并且在所述多阶段擦除操作的第二阶段之前,执行至少一个非擦除操作。
26.如权利要求25所述的储存器设备,其中,所述储存器设备还包括用于执行权利要求12-18中的任何一个所述的方法的装置。
CN201680047839.8A 2015-08-28 2016-06-09 自适应多阶段擦除 Active CN107924700B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562211201P 2015-08-28 2015-08-28
US62/211,201 2015-08-28
US14/929,179 2015-10-30
US14/929,179 US9927987B2 (en) 2015-08-28 2015-10-30 Adaptive multi-phase erase
PCT/US2016/036717 WO2017039772A1 (en) 2015-08-28 2016-06-09 Adaptive multi-phase erase

Publications (2)

Publication Number Publication Date
CN107924700A true CN107924700A (zh) 2018-04-17
CN107924700B CN107924700B (zh) 2020-02-07

Family

ID=58103973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680047839.8A Active CN107924700B (zh) 2015-08-28 2016-06-09 自适应多阶段擦除

Country Status (3)

Country Link
US (1) US9927987B2 (zh)
CN (1) CN107924700B (zh)
WO (1) WO2017039772A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110838330A (zh) * 2018-08-17 2020-02-25 北京兆易创新科技股份有限公司 一种存储器的擦除方法和系统
CN110838327A (zh) * 2018-08-17 2020-02-25 北京兆易创新科技股份有限公司 一种存储器的擦除方法和系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10025531B2 (en) * 2015-09-10 2018-07-17 HoneycombData Inc. Reducing read command latency in storage devices
US9977609B2 (en) * 2016-03-07 2018-05-22 Advanced Micro Devices, Inc. Efficient accesses of data structures using processing near memory
CN111158569A (zh) * 2018-11-08 2020-05-15 鸿合科技股份有限公司 一种擦除操作方法及装置、电子设备
US11907564B2 (en) * 2021-08-03 2024-02-20 Yadro International Ltd. Method of and system for initiating garbage collection requests

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189080A1 (en) * 2006-02-16 2007-08-16 Macronix International Co., Ltd. Erase operation for use in non-volatile memory
JP2007250133A (ja) * 2006-03-17 2007-09-27 Sharp Corp 不揮発性半導体記憶装置のテスト方法
US20080144396A1 (en) * 2006-12-19 2008-06-19 Kuo-Tung Chang Erasing flash memory using adaptive drain and/or gate bias
US20090238006A1 (en) * 2008-03-20 2009-09-24 Dean Nobunaga Adjusting programming or erase voltage pulses in response to the number of programming or erase failures
US20090310422A1 (en) * 2008-06-11 2009-12-17 Kabushiki Kaisha Toshiba Non-volatile semiconductor storage device
US20100195403A1 (en) * 2009-02-05 2010-08-05 Micron Technology, Inc. Erase verify in memory devices
US20120254515A1 (en) * 2011-02-03 2012-10-04 Stec, Inc. Erase-suspend system and method
CN103854701A (zh) * 2012-12-03 2014-06-11 爱思开海力士有限公司 电荷陷阱器件的擦除方法
WO2015077625A1 (en) * 2013-11-22 2015-05-28 Sandisk Enterprise Ip Llc Adaptive erase of a storage device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI385669B (zh) * 2008-07-23 2013-02-11 Phison Electronics Corp 用於快閃記憶體的平均磨損方法、儲存系統與控制器
US9436594B2 (en) 2011-05-27 2016-09-06 Seagate Technology Llc Write operation with immediate local destruction of old content in non-volatile memory
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
KR20130127234A (ko) 2012-05-14 2013-11-22 삼성전자주식회사 메모리의 구동 방법
US9142315B2 (en) 2012-07-25 2015-09-22 Freescale Semiconductor, Inc. Methods and systems for adjusting NVM cell bias conditions for read/verify operations to compensate for performance degradation
US9343172B2 (en) 2013-08-13 2016-05-17 Freescale Semiconductor, Inc. Extended protection for embedded erase of non-volatile memory cells

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189080A1 (en) * 2006-02-16 2007-08-16 Macronix International Co., Ltd. Erase operation for use in non-volatile memory
JP2007250133A (ja) * 2006-03-17 2007-09-27 Sharp Corp 不揮発性半導体記憶装置のテスト方法
US20080144396A1 (en) * 2006-12-19 2008-06-19 Kuo-Tung Chang Erasing flash memory using adaptive drain and/or gate bias
US20090238006A1 (en) * 2008-03-20 2009-09-24 Dean Nobunaga Adjusting programming or erase voltage pulses in response to the number of programming or erase failures
US20090310422A1 (en) * 2008-06-11 2009-12-17 Kabushiki Kaisha Toshiba Non-volatile semiconductor storage device
US20100195403A1 (en) * 2009-02-05 2010-08-05 Micron Technology, Inc. Erase verify in memory devices
US20120254515A1 (en) * 2011-02-03 2012-10-04 Stec, Inc. Erase-suspend system and method
CN103854701A (zh) * 2012-12-03 2014-06-11 爱思开海力士有限公司 电荷陷阱器件的擦除方法
WO2015077625A1 (en) * 2013-11-22 2015-05-28 Sandisk Enterprise Ip Llc Adaptive erase of a storage device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110838330A (zh) * 2018-08-17 2020-02-25 北京兆易创新科技股份有限公司 一种存储器的擦除方法和系统
CN110838327A (zh) * 2018-08-17 2020-02-25 北京兆易创新科技股份有限公司 一种存储器的擦除方法和系统
CN110838330B (zh) * 2018-08-17 2021-08-24 北京兆易创新科技股份有限公司 一种存储器的擦除方法和系统

Also Published As

Publication number Publication date
US20170060445A1 (en) 2017-03-02
WO2017039772A1 (en) 2017-03-09
CN107924700B (zh) 2020-02-07
US9927987B2 (en) 2018-03-27

Similar Documents

Publication Publication Date Title
US10372603B2 (en) Handling of unaligned writes
CN107924700A (zh) 自适应多阶段擦除
US10310924B2 (en) Storage device and read reclaim method thereof
CN105097034B (zh) 非易失性存储系统以及存储控制器的操作方法
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
TWI498898B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN107077427A (zh) 跨电源周期来跟踪对写入命令和解除映射命令的混合
US9886341B2 (en) Optimizing reclaimed flash memory
US20110320688A1 (en) Memory Systems And Wear Leveling Methods
US9990146B2 (en) Apparatus and method of data sequencing
DE112016004629T5 (de) Datencodiertechniken für eine Vorrichtung
US10402117B2 (en) Memory health monitoring
CN106462493B (zh) 固态存储器损坏的减轻
TWI646535B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
US9947399B2 (en) Updating resistive memory
DE102017114078A1 (de) Fehlerabschwächung für 3d-nand-flash-speicher
CN109584920A (zh) 用于基于循环计数度量调节分界电压的方法和装置
CN105718213B (zh) 改进在低队列深度工作负载中的混合随机性能的方法
CN106683701B (zh) 存储器管理方法、存储器储存装置及存储器控制电路单元
US10658045B1 (en) Enhanced solid-state drive write performance with background erase
CN107980126B (zh) 用于调度多裸芯储存装置的方法、数据储存装置及设备
US20160077912A1 (en) Encoding scheme for 3d vertical flash memory
US10162538B2 (en) Memory operation threshold adjustment based on bit line integrity data
CN104103318B (zh) 操作存储控制器的方法和包括存储控制器的数据存储设备
CN111798910A (zh) 存储装置及其操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant