用于模拟存储单元的增强编程和擦除方案的制作方法

文档序号:6741542阅读:143来源:国知局
专利名称:用于模拟存储单元的增强编程和擦除方案的制作方法
技术领域
本发明通常涉及数据存储,尤其涉及用于模拟存储单元的编程和擦除的方法和系统。
背景技术
多种类型的存储装置(例如闪存)使用模拟存储单元的阵列来存储数据。每个模拟存储单元保持特定级别的给定物理量,如表示在单元中存储的数据的电荷或电压。此物理量的级别也称为存储值或模拟值。例如,在闪存中,每个模拟存储单元保持特定数量的电荷。模拟值的可能范围典型地分为若干区域,每个区域与表示一个或多个数据位值的编程状态相对应。通过写入与期望位对应的额定模拟值,将数据写入到模拟存储单元。通常称为单级单元(SLC)装置的某些存储装置在每个存储单元中存储一位信息,即,可以对每个存储单元进行编程以假定两个可能的存储状态。经常称为多级单元(MLC)装置的高密度装置每存储单元存储两位或更多位,即,对其编程来假定多于两个可能的存储状态。例如,2003年4 月,IEEE论文集第91卷第4期第489-502页,由Bez等发表的“Introduction to Flash Memory (闪存的介绍)”中描述了闪存装置,在这里通过参考将其引入。例如,在美国纽约召开的1996年IEEE国际电子器件会议(IEDM),其论文集中第169-172 页,由 Eitan 等人发表的 “Multi level Flash Cells and Their Trade-Offs (多级闪存单元及其权衡)”描述了多级闪存单元和装置,在这里通过参考将其引入。该论文比较了多种多级闪存单元,例如共接地、DIN0R、AND、NOR和NAND单元。1999年9月21-24日,日本东京召开的1999年国际固态器件与材料(SSDM)研讨会,其论文集第 522-524 页中,Eitan 等人在 “Can NORM, a2_bit, Frapping Storage NVMCell,Give a Real Challenge to Floating Gate Cell (捕获存储NVM单兀的 2位NROM是否能够给浮栅单元带来真正的挑战?)”中描述了称为氮化物只读存储器(NROM)的另一种类型的模拟存储单元,在这里通过参考将其引入。2002年2月3-7日,加利福尼亚旧金山召开的2002IEEE国际固态电路会议(ISSCC2002),其论文集第100-101页中,由Maayan等人在 “A512MBNR0M Flash Data Storage Memory with8MB/s Data Rage (具有 8MB/s 数据速率的512Mb的NROM闪存数据存储存储器)”中也描述了 NROM单元,在这里通过参考将其引入。模拟存储单元的其他典型类型是浮栅(FG)单元、铁电RAM(FRAM)单元、磁RAM(MRAM)单元、电荷撷取闪存(CTF)和相变1^$1^,也被称为相变存储器^^)单元。例如,2004年5月16-19日,在尼斯、塞尔维亚和黑山召开的第24届关于微电子学的国际会议(MIEL),其论文集的第 I 卷第 377-384 页,由 Kim 和 Koh 在“Future Memory Technology IncludingEmerging New Memories (包括新兴存储器的未来存储器技术)”中描述了 FRAM、MRAM和PRAM单元,在这里通过参考将其引入。现有技术中已知用于编程和擦除模拟存储单元的各种方法。某些存储装置使用迭代编程和校验(P&V)过程,其将脉冲序列应用于一组存储单元并在序列期间校验编程的值。

发明内容
在此描述的本发明实施例提供了一种用于数据存储的方法。该方法包括通过执行将脉冲序列应用于一组模拟存储单元中的存储单元的迭代过程,将该组模拟存储单元设置到相应的模拟值。在迭代过程期间,估计迭代过程的进程,并响应于所估计的进程来修改迭代过程的参数。根据修改的参数继续迭代过程。在一些实施例中,执行迭代过程包括利用数据编程组中的存储单元。在其他实施例中,执行迭代过程包括擦除该组存储单元。在一个实施例中,估计进程包括估计组中已达到相应的预期模拟值的存储单元的数量超过预定数量。修改参数可以包括修改序列中连续脉冲之间的振幅或持续时间的增量。在另一个实施例中,估计进程包括估计应用于中组的存储单元的脉冲的数量超过预定数量。在公开的实施例中,修改参数包括修改序列中连续脉冲之间的振幅或持续时间的增量、序列中初始脉冲的振幅或持续时间、施加于该组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电 压、施加于组中打算接收后续脉冲的存储单元的编程位线电压、和/或施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。修改参数可以包括依据施加于组中打算接收后续脉冲的存储单元的编程位线电压,修改施加于该组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、或施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。根据本发明实施例,还提供一种包括存储器和存储电路的用于数据存储的设备。该存储器包括多个模拟存储单元。存储电路被配置为通过执行将脉冲序列应用于一组模拟存储单元中的存储单元的迭代过程,将该组模拟存储单元设置到相应的模拟值,估计迭代过程的进程,响应于所估计的进程来修改迭代过程的参数,以及根据修改的参数继续执行迭代过程。根据本发明实施例,还提供了一种在包括多个模拟存储单元的存储器中用于数据存储的方法。该方法包括基于在存储器中至少一个存储单元中存储的一个或多个数据值,设置应用于一组存存储单元的迭代过程的参数。根据所设置的参数,在该组存储单元中执行选代过程。在一个实施例中,执行迭代过程包括利用数据编程组中的存储单元。在另一个实施例中,执行迭代过程包括擦除该组存储单元。在一个实施例中,设置参数包括将来自至少一个存储单元的数据值复制到可选择的存储位置,并基于复制的数据值设置参数。
在另一个实施例中,设置参数包括设置在迭代过程中连续脉冲之间的振幅或持续时间的增量、在迭代过程中初始脉冲的振幅或持续时间、施加于一组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、施加于组中打算接收后续脉冲的存储单元的编程位线电压、和/或施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。根据本发明实施例,进一步提供了一种包括存储器和存储电路的用于数据存储的设备。该存储器包括多个模拟存储单元。存储电路被配置为基于在存储器中至少一个存储单元中存储的一个或多个数据值来设置应用于一组存储单元的迭代过程的参数,并根据所设置的参数来执行一组存储单元中的迭代过程。根据本发明实施例,还提供了一种在包括多个模拟存储单元的存储器中用于数据存储的方法。该方法包括通过执行编程操作利用数据对一个或多个存储单元进行编程。估计在所编程的存储单元上执行的编程操作的性能度量。在执行编程操作后基于编程操作的性能度量来配置擦除操作,并通过执行所配置的擦除操作来擦除存储器的一组存储单元。在一些实施例中,估计性能度量包括测量编程操作的持续时间。在一个实施例中,配置擦除操作包括设置在擦除操作中连续擦除脉冲之间的振幅或持续时间的增量、在擦除操作中初始脉冲的振幅或持续时间、在擦除操作期间施加的字线电压、和/或在擦除操作期间施加的位线电压。在一个实施例中,评估性能度量包括确定应用于所编程的存储单元的编程和擦除周期的数量,以及配置擦除操作包括基于所确定的编程和擦除周期的数量来配置擦除操作。根据本发明一个实施例,还提供了一种包括存储器和存储电路的用于数据存储的设备。该存储器包括多个模拟存储单元。存储电路被配置为通过执行编程操作利用数据对一个或多个存储单元进行编程,估计在所编程的存储单元上执行的编程操作的性能度量,并在执行编程操作后,基于编程操作的性能度量来配置擦除操作,以及通过执行所配置的擦除操作来擦除存储器中一组存储单元。根据本发明一个实施例,进一步提供了一种用于在包括多个模拟存储单元的存储器中的数据存储的方法。该方法包括向一组存储单元应用将该组中的存储单元设置为相应的模拟值的操作。估计应用于该组存储单元的操作的性能度量。基于所估计的操作的性能度量来估计包括该组的存储器中的存储块的完好状态(health status)。应用操作可以包括利用数据编程组中的存储单元。可选择地,应用操作可以包括擦除该组存储单元。在一个实施例中,估计性能度量包括测量操作的持续时间。在另一个实施例中,估计完好状态包括当性能度量偏离预定义范围时标记存储块为坏。在另一实施例中,估计完好状态包括当性能度量偏离预定义范围时标记存储块经受额外的评估。在另一实施例中,估计完好状态包括依据性能度量为存储块中的后续数据存储设置存储配置。根据本发明一个实施例,还提供一种包括存储器和存储电路的用于数据存储的设备。存储器包括多个模拟存储单元。存储电路被配置为向一组存储单元应用将该组中的存储单元设置为相应的模拟值的操作,估计应用于该组存储单元的操作的性能度量,并且基于所估计的操作的性能度量,估计包括该组的存储器中的存储块的完好状态。


通过本发明实施例的下面详细描述以及结合附图,可以更全面地理解本发明,其中:图1是根据本发明实施例的示意性说明存储器系统的方框图;图2是根据本发明实施例的示意性说明模拟存储单元阵列的电路图;图3A是根据本发明实施例的示意性说明对一组模拟存储单元进行编程的进程的图示;图3B是根据本发明实施例的示意性说明对一组模拟存储单元进行擦除的进程的图示;图4是根据本发明实施例的示意性说明用于编程或擦除一组模拟存储单元的方法的流程图;图5是根据本发明实施例的示意性说明用于编程一组模拟存储单元的方法的流程图;图6是根据本发明实施例的示意性说明用于擦除一组模拟存储单元的方法的流程图;图7是根据本发明实施例的示意性说明用于估计一组模拟存储单元的完好级别的方法的流程图;图8是根据本发明实施例的示意性说明数据存储设备的方框图;以及图9是根据本发明另一个实施例的示意性说明另一种数据存储设备的方框图。
具体实施例方式综述在如闪存的存储装置中,数据典型地通过将存储单元编程到相应的表示所存储的位值的模拟值而被存储于模拟存储单元中。每个位值对应于由模拟值的特定范围表示的相应的编程级或编程状态。在一些存储装置中,以迭代编程和校验(P&V)过程编程一组模拟存储单元,所述迭代编程和校验(P&V)过程将编程脉冲序列应用于组中的存储单元。在序列期间,通过比较每个模拟值与相应的校验阈值来校验存储单元的模拟值,该校验阈值相应于将要编程的存储单元的预期编程状态。继续仅对模拟值仍在其相应的校验阈值之下的存储单元进行编程。假定对其他存储单元正确地进行编程,并且抑制接收后续的编程脉冲。闪存单元块典型地使用将擦除脉冲序列应用于块中的存储单元的迭代擦除过程进行擦除。存储单元的模拟值在序列期间通过比较其与擦除阈值来进行校验。在下文描述的本发明实施例中提供一种用于编程和擦除如闪存单元的模拟存储单元的改进的方法和系统。与传统的编程和擦除方案比较,所公开的技术实现了更少的编程和擦除时间,和更高的编程及擦除可靠性。在一些实施例中,存储电路(例如,耦合到存储单元或存储控制器的读/写电路)估计迭代编程或擦除过程的进程,并基于估计的进程修改迭代过程的一个或多个参数。例如,依据已达到其预期模拟值的存储单元的百分比,或依据应用于存储单元的编程或擦除脉冲的数量,对过程进行估计。
多种编程或擦除参数能够基于进程进行修改,所述参数例如是连续的编程或擦除脉冲之间的振幅或持续时间的增量、初始的脉冲振幅、或在编程或擦除过程期间施加的各种字线或位线电压。在替代实施例中,存储电路基于存储在一个或多个存储单元中的数据设置一个或多个编程或擦除过程的参数。在其他实施例中,存储电路基于编程操作的性能配置一个或多个擦除操作的参数。例如,存储电路可以在特定存储块中对于页面测量平均编程时间,并且根据测量的编程时间来配置用于该块的擦除操作。在其他实施例中,存储电路基于在块中执行的编程或擦除操作的性能度量(例如,基于编程或擦除时间)估计存储块的完好状态(health status)。系统描述图1是根据本发明实施例的示意性说明存储器系统20的方框图。系统20可用在多种主机系统和装置中,例如用在计算装置、移动电话或其他通信终端、可移动存储模块(有时称为“USB闪存盘”)、固态盘(SSD)、数码相机、音乐和其他媒体播放器和/或在其中存储并恢复数据的任何其他系统或装置中。系统20包括存储装置24,其在存储单元阵列28中存储数据。存储阵列包括多个存储块34。每个存储块34包括多个模拟存储单元32。在本专利申请的上下文和权利要求中,术语“模拟存储单元”用于描述任何保持物理参数的连续模拟值(例如电压或电荷)的存储单元。阵列28可以包括任何形式的模拟存储单元,例如NAND、N0R和电荷撷取闪存(CTF)单元、相变RAM(PRAM,也称为相变存储器-PCM)、氮化物只读存储器(NROM)、铁电RAM(FRAM)、磁性RAM(MRAM)和/或动态RAM(DRAM)单元。存储在单元中的电荷级别和/或写入单元和从单元中读出的模拟电压或电流在这里统称为模拟值、模拟存储值或存储值。例如,存储值可包括阈值电压或任何其他适合形式的存储值。系统20通过对单元编程以假定相应的编程状态(也称为编程级)来在模拟存储单元中存储数据。编程状态从有限集合的可能状态中选择,并且每个编程状态相应于特定额定存储值。例如,3位/单元MLC能够通过将八个可能的额定存储值之一写入单元来进行编程以假定八个可能的编程状态之一。存储装置24包括读/写(R/W)单元36,其将在存储装置中存储的数据转换成模拟存储值并将他们写入存储单元32中。在可替代实施例中,R/W单元不执行这种转换,但提供电压样本,即,提供单元中存储的存储值。当从阵列28中读取数据时,R/W单元36将存储单元32的存储值转换成具有一位或多位分辨率的数字样本。数据典型地写入组中的存储单元(这称为页面)中并从其中读取。在一些实施例中,R/W单元能够通过将一个或多个负的擦除脉冲应用于单元来擦除一组单元32。典型地,在整个存储块中执行擦除。由存储控制器40执行在存储装置24内存储数据和从其恢复数据。存储控制器包括与存储装置24进行通信的接口 44,和执行各种存储管理功能的处理器48。存储控制器40与主机52通信,用于接收存储在存储装置中的数据及用于输出从存储装置中恢复的数据。存储控制器40,特别是处理器48,可以以硬件实施。可选择地,存储控制器可包括运行适合软件的微处理器,或硬件元件和软件元件的组合。图1的配置是典型的系统配置,为了概念上的清楚仅示出系统配置。也可以使用任何其他合适的存储系统配置。为了清楚起见,附图中省略了对于理解本发明的原理不必需的元件,例如各种接口、寻址电路、定时和定序电路及调试电路。尽管图1的示例示出了单个存储装置24,然而系统20可以包括由存储控制器40控制的多个存储装置。在图1中示出的典型的系统配置中,存储装置24和存储控制器40作为两个单独的集成电路(IC)来实现。然而在替代实施例中,存储装置和存储控制器可以被集成在单个多芯片封装(MCP)或片上系统(SoC)中的单独半导体模具上,并且可以通过内部总线互连。此外进一步地,某些或全部存储控制器电路可以位于其上设置有存储阵列的相同的模具上。此外进一步地,存储控制器40的一些或全部功能能够以软件执行并通过处理器或主机系统的其他元件执行。在一些实施例中,主机44和存储控制器40可在相同的模具上或在相同装置封装中的单独模具上制造。在一些实施例中,存储控制器40包括通用处理器,其以软件编程以执行此处描述的功能。例如,软件可以通过网络以电子表单形式下载到处理器,此外或可选择地,其可以在非瞬时有形介质上提供和/或存储,例如磁性的、光学的、或电子的存储器。在阵列28的示例配置中,存储单元32以多个行和列的形式进行排列,并且每个存储单元包括浮栅晶体管。每一行中的晶体管的栅极通过字线连接,并且每一列中的晶体管的源极通过位线连接。存储阵列典型地划分为多个页面,即,对存储单元组进行编程并同时读取。有时页面再划分为多个扇区。在一些实施例中,每个页面包括阵列的一整行。在替代实施例中,每行(字线)能够划分为两个或多个页面。例如,在一些装置中每行划分为两个页面,一个包括奇阶单元,另一个包括偶阶单元。典型地,存储控制器40以页面为单位编程数据,但是擦除整个存储块34。典型地,尽管不必要,存储块在IO6阶的存储单元上,而页面在IO3-1O4阶的存储单元上。以下描述了几种用于编程和擦徐阵列28的存储单元32的示例性技术。所公开的技术能够通过存储控制器40和/或通过R/W单元36来执行。为了清楚起见,以下描述涉及作为由存储装置中的R/W单元36执行的编程和擦除过程。然而,通常构成所公开的编程和擦除技术的各种任务能够以任何合适的方式在存储控制器和R/W电路之间划分,或由这些元件的任何一个来执行。因此,在本专利申请的上下文和权利要求中,存储控制器40和R/W电路36被共同地称为执行所公开技术的存储电路。图2是根据本发明实施例的示意性说明能够用于执行阵列28的模拟存储单元阵列的电路图。在本实施例中,阵列包括通过字线64和位线68连接的多个闪存单元(在图中作为浮栅晶体管示出)。在一些实施例中,R/W单元36使用迭代编程和校验(P&V)过程利用数据编程给定字线64中的一组存储单元(例如,字线中的所有存储单元、奇阶单元或偶阶单元)。在这个过程中,单元36将编程脉冲序列应用于该组单元,并且在每个脉冲后校验该组中单元的阈值电压。单元36抑制已达到其预期阈值电压的单元的后续编程,以便后续脉冲可选地仅应用于还没达到预期阈值电压的那些单元。在P&V过程期间,单元36利用合适的电压偏置各种字线64和位线68。图2的示例示出3个字线64,其中中间的子线被编程。本示例示出了在P&V过程期间的特定实例,其中对存储单元72进行编程(因为其还没达到其预期阈值电压)。在同一时间,在相同字线中的存储单元80被抑制编程,因为其已经达到了其预期阈值电压。在另一个字线中的存储单元,例如存储单元80,则没被编程。
为了编程适当的存储单元,R/W单元36利用表示为Vpgm的编程电压偏置中间字线,并利用表示为VpaSS_pgm的通过电压偏置块中的另一个字线。单元36利用表示为Vbitline_pgm的位线编程电压偏置位线来进行编程,并且利用表示为Vbitline_inhibit的位线抑制电压偏置抑制位线编程。图3A是根据本发明的实施例示意性说明编程一组模拟存储单元28的过程的图。该示例示出利用数据编程的一组2位/单元存储单元(例如,在字线中的所有存储单元、奇
阶单元或偶阶单元)。每个单元可被编程为与四个阈值电压分布84A......84D相对应的四
个可能的编程级(也称为编程状态)之一。每个编程级与相应的2位数据值相对应。对应于负阈值电压的编程级84A也作为已擦除级。在开始编程前,组中的所有存储单元被设为已擦除级。在一些实施例中,如上所述,R/W单元36利用迭代P&V过程编程组中的存储单元。当在给定编程脉冲后校验单元阈值电压时,单元36将单元阈值电压与一个或多个校
验阈值比较。在本示例中单元36使用分别与编程级84B......84D相对应的3个校验阈
值88A......88C。当打算要被编程到特定编程级的特定存储单元的阈值电压超过此编
程级的验证阈值电压时,抑制存储单元接收后续编程脉冲。通过改变从Vbitline_pgm到Vbitline_inhibit的单元位线电压典型地执行这种抑制。(为了同样清楚起见,本示例示出了同时编程全部四个编程级的编程过程。在一些实施例中,单元36利用两个页面在两阶段中编程一组存储单元一个阶段使用两个编程级编程第一个页面,并且第二个阶段使用全部四个编程级编程第二个页面。)图3B是根据本发明 的实施例示意性说明擦除一组模拟存储单元28的过程的简图。擦除过程同时典型地应用于一整块34。在擦除过程中,单元36将序列或擦除脉冲应用于存储单元,并通过将单元阈值电压与擦除阈值92比较来校验单元阈值电压。继续擦除过程直到块中的所有存储单元(或在一些实施例中,预定控制数量的单元)具有低于阈值92的阈值电压。图3A和3B的实施例涉及2位/单元存储单元的编程和擦除。然而,公开的技术可应用于任何其他合适类型的具有任何需要数量和编程级排列的存储单元。基于编程/擦除过程的编程/擦除迭代过程参数的自适应修改在一些实施例中,当编程或擦除一组模拟存储单元时,R/W单元36估计迭代编程或擦除过程的进程。当进程满足特定转换条件时,单元36修改一个或多个过程的参数。单元36可以以不同方式估计进程,S卩,定义并评估各种形式的转换条件。例如,单元36可检查组中预定百分比的存储单元是否已达到其预期阈值电压(例如,对于编程操作,超过适当的校验阈值,或对于擦除操作,降到擦除阈值以下)。在擦除操作中,单元36可以估计在第一个擦除脉冲后或两个擦除脉冲后被充分地擦除的单元的数量。在替代实施例中,单元36可从迭代过程的两个或更多个不同校验阶段组合单元计数。当使用这种类型的条件时,R/W单元36可假定数据在编程级中是杂乱的或以其它方式均匀分布的。在替代实施例中,R/W电路可确定在抑制编程操作前每一编程级中的单元数量,或以任何其他适合的方式获得该信息。另一示例的转换条件是在执行预定数量的迭代后修改编程或擦除参数,S卩,在应用预定数量的编程或擦除脉冲后。或者进一步的,R/W单元可通过确定与编程或擦除相关的一些参数的绝对值来评估转换条件。在各种实施例中,当满足转换条件时R/W单元可修改迭代编程或擦除过程的任何适合的参数。例如,参数可包括在序列中连续的编程/擦除脉冲之间的振幅或持续时间的增量(有时被称为增量阶跃脉冲编程-1SPP),和/或序列中初始脉冲的振幅或持续时间。此外或可选择地,在编程操作中,修改的参数可包括施加于未选择字线的通过电压(Vpass_pgm)、施加于所选字线的字线电压(Vpgm)、施加于编程单元的位线电压(Vbitline_pgm)、施加于抑制单元的位线电压(Vbitline_inhibit)、和/或任何其他适合的参数。此外或者进一步的,例如在擦除操作中,修改的参数可包括在被擦除的块中施加的字线电压和/或位线电压。在示例实施例中,单元36估计该组中已达到其预期编程级的存储单元的数量。当百分比超过预定值时,单元36改变连续脉冲之间的振幅增量。在另一个示例实施例中,单元36利用大的擦除脉冲电压开始擦除过程。当成功擦除的存储单元的百分比达到特定预定值时,单元36降低用于后续脉冲的擦除脉冲电压。在另一个实施例中,R/W单元36根据Vpgm的变化修改一个或多个偏压(例如,Vbitline_pgm, Vbitline_inhibit, Vpass_pgm)。这类编程使单元36能够优化字线和/或位线电压,并能够有效地编程存储单元。例如,能够执行电压优化,以便最小化来自相邻存储单元(在相邻字线和/或相邻位线上)的编程干扰。在一些实施例中,根据Vpgm的绝对值的变化执行优化。图4是根据本发明实施例的示意性说明用于编程或擦除一组模拟存储单元32的方法的流程图。在初始化步骤96中,该方法开始于R/W单元36开始在一组存储单元中的迭代编程或擦除过程。在编程或擦除过程期间的某一点上,在进程估计步骤100中,单元36估计过程的进程。在完成检查步骤104中,单元36检验过程是否完成。例如,单元36可检验所有单元是否已达到其预期阈值电压。如果该过程完成,则该方法在结束步骤108中终止。否则,在转换条件评估步骤112中,单元36检验是否满足预定转换条件(基于上述步骤100中估计的进程)。在参数修改步骤116中,如果迭代过程的进程满足转换条件,则单元36修改迭代过程的一个或多个参数。随后该方法回送到上述步骤100,其中单元36继续追踪迭代过程的进程。基于数据的编程过程参数的自适应设置在一些实施例中,R/W单元36基于当前在一个或多个存储单元中存储的数据,设置迭代编程或擦除过程的一个或多个参数。任何适合的编程或擦除过程参数能够以这种方式设置,例如以上列举的参数(例如,ISPP、在序列中初始脉冲的振幅或持续时间、和/或任何字线或位线电压)。例如,当编程一组存储单元(例如,页面)时,单元36可基于在作为编程组的相同字线中存储的数据和/或基于存储在一个或多个另外的(例如相邻的)位线中的数据,设置编程参数。例如,单元36可基于在相邻字线、在编程组的字线以下或以上中的相应单元中的数据(或阈值电压)来设置Vbitline_pgm。在一些实施例中,单元36可首先读取用于设置编程参数的数据并将其存储在编程之前的替代位置。作为另一个示例,当擦除块时,单元36可基于存储在块中的数据设置擦除过程的一个或多个参数。例如,根据块中在擦除之前被编程的字线数量的变化,单元36可设置擦除过程的参数。在示例实施例中,如果块中所有的字线被编程,则单元36设置一个擦除电压(Verase),并且如果仅一部分字线被编程,则设置不同的擦除电压。在一些实施例中,关于编程字线的数量的指示通过存储控制器40提供给单元36。在另一些实施例中,单元36确定与存储控制器无关的编程字线的数量。在一些实施例中,单元36基于块中编程字线的数量改变编程过程的一个或多个参数。如另一个示例,如果块包括被编程到高阈值电压的较大数量的存储单元,则单元36可将擦除脉冲的初始振幅设置为高值,反之亦然。图5是根据本发明的实施例示意性说明用于编程一组模拟存储单元32的方法的流程图。图5的描述涉及在一组存储单元中的编程过程,但是相似的方法也能够用在擦除过程中。在读出步骤120中,该方法开始于单元36从一个或多个存储单元读取数据。读取存储单元可属于或不属于将要被编程的一组存储单元。在参数设置步骤124中,基于步骤120读取的数据,单元36设置编程过程的一个或多个参数。然后在编程步骤128中,单元36使用具有所设置参数的迭代编程过程将数据存储在该组存储单元中。基于编程过程的性能的擦除过程参数的设置在一些实施例中,基于应用于存储器的编程操作的性能,单元36配置要应用于一组存储单元的擦除操作。典型地,尽管不必要,基于应用于此组中的一个或多个存储单元(例如,在块内的页面)的编程操作的性能,配置用于给定单元组(例如,块)的擦除操作。此技术是基于这样事实,存储单元对编程操作的响应(特别是对于正电压编程脉冲的应用)是说明存储单元对擦除操作的响应(特别是对于负电压编程脉冲的应用)。单元36可估计编程操作的任何适合形式的性能变量,并基于估计的性能变量以任何适合的方式配置擦除操作。例如,单元36可测量编程操作的编程时间(持续时间),例如,在操作的初始和完成之间流逝的时间,或在编程操作中执行的P&V迭代的数量。单元36然后可基于所测量的编程时间配置擦除操作。在示例实施例中,单元36可根据迭代擞量的变化,测量已达到其预期编程级的单元的数量或百分比。换言之,单元36可估计成功编程的单元数量的累积分布函数(OTF)。单元36可基于编程操作的性能通过设置任何合适的擦除参数来配置擦除操作,例如擦除脉冲的初始级或持续时间、在连续的擦除脉冲之间的增量和/或在擦除期间应用的任何位线或字线的电压。图6是根据本发明的实施例示意性说明用于擦除一组模拟存储单元32的方法的流程图。图6的描述涉及同一组存储单元的编程和擦除。然而,通常所公开的技术可基于编程另一组的性能而被用于擦除特定的一组存储单元。两个组可共同拥有或不共同拥有存储单元。在编程步骤132中,该方法开始于单元36通过执行编程操作(例如,P&V过程)利用数据编程一组存储单元。在性能评估步骤136中,单元36估计编程操作的性能度量。例如,单元36可估计编程时间(编程持续时间),或任何其他适合的性能度量。在擦除配置步骤140中,基于所评估的编程操作的性能度量,单元36配置将应用于该组存储单元的擦除操作。在擦除步骤144中,单元36使用所配置的擦除操作擦除该组存储单元。在一些实施例中,单元36或存储控制器40可基于其他性能度量为特定存储块配置擦除操作,例如基于应用于块的编程和擦除(P/E)周期的数量。在一个实施例中,在编程之后,单元36或存储控制器40可记录块的寿命的一些指示,并且为了配置擦除操作先于擦除恢复该指示。基于编程或擦除性能的完好级估计在一些实施例中,单元36测量应用于一组存储单元的迭代编程或擦除过程的性能,并基于所测量的性能来估计存储单元的完好状态。以下的描述涉及测量编程或擦除过程的持续时间,尽管公开的技术可与其他适合的性能度量一起使用。在一个实施例中,单元36测量不同组的存储单元的编程或擦除时间。偏离预定范围(例如,在特定较低阈值以下和/或在特定较高阈值以上)的编程或擦除时间可指示存储单元处于不完好状态并且其不可靠或马上故障。在一些实施例中,如果 块(或在块中的存储单元组)的编程或擦除时间偏离预定范围,则存储控制器40标记给定存储块为坏的或可疑的。坏的块典型地取出不用。可疑的块在标记其为坏块之前典型地受到额外的评估。基于块的平均编程或擦除时间、块的最大或最小编程或擦除时间、或与块相关的编程或擦除时间的任何其他合适的度量,存储控制器可标记块为坏或可疑的。在一个实施例中,存储控制器可根据迭代数量的变化测量已达到其预期编程级的单元的数量或百分比,或成功编程的单元的数量的CDF,并且使用此估计作为对缺完好的度量。在一些实施例中,基于编程时间标准,即使块中的P&V过程成功地完成,存储控制器标记块为坏的。在一些实施例中,存储控制器在P&V之后应用校验技术,仅为在编程时间偏离预定范围的块。P&V之后的校验技术的示例能用于上述引用的美国专利申请13/356,694中给出的这种用途。在擦除操作中,单元36或存储控制器40可基于所估计出的块的完好状态采取各种动作。例如,R/W单元或存储控制器可基于所估计出的块的完好状态为块中的后续编程命令(例如,纠错码和/或每单元的位数量)设置存储配置。图7是根据本发明实施例的示意性说明用于估计一组模拟存储单元的完好级的方法的流程图。在操作步骤148中,该方法开始于R/W单元36或存储控制器40将编程或擦除操行应用于一组存储单元。在性能评估步骤152中,单元36或存储控制器40评估编程或擦除操作的性能度量。例如,性能度量可包括编程或擦除操作的持续时间。在完好估计步骤156中,单元36或控制器40基于性能度量估计该组存储单元的完好状态。图8是根据本发明实施例的示意性说明的数据存储设备800的方框图。数据存储
设备800包括存储器801,其包括多个模拟存储单元8011、8012、8013......801η。数据存
储设备800进一步包括存储电路802,其进一步包括:设置单元803,被配置为通过执行将脉冲序列应用于一组模拟存储单元中的存储单元的迭代过程,将该组模拟存储单元设置为相应的模拟值;估计单元805,被配置为估计迭代过程的进程;修改单元807,被配置为响应于所估计的进程来修改迭代过程的参数并根据修改的参数继续执行迭代过程。
根据本申请的一个实施例,迭代过程包括利用数据编程组中的存储单元的编程过程。根据本申请的一个实施例,迭代过程包括擦除该组存储单元的擦除过程。根据本申请的一个实施例,估计单元805被配置为通过估计组中作为脉冲结果已达到相应的预期模拟值的存储单元的数量超过预定数量来估计进程。根据本申请的一个实施例,修改单元807被配置为通过修改序列中连续脉冲之间的振幅或持续时间的增量来修改参数。根据本申请的一个实施例,估计单元805被配置为通过估计应用于组中的存储单元的脉冲的数量超过预定数量来估计进程。根据本申请的一个实施例,修改单元807被配置为修改从一组类型中选择的至少一个参数类型,该一组类型包括序列中连续脉冲之间的振幅或持续时间的增量、序列中初始脉冲的振幅或持续时间、施加于该组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、施加于该组中打算接收后续脉冲的存储单元的编程位线电压、和施加于该组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。根据本申请的一个实施例,修改单元807被配置为,依据施加于该组中打算接收后续脉冲的存储单元的编程位线电压,修改施加于一组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、或施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。图9是根据本发明另一个实施例的示意性说明的另一个数据存储设备900的方框图。数据存储设备900包括存储器901,其包括多个模拟存储单元9011、9012、
9013......901η。数据存储设备900进一步包括存储电路902,其进一步包括:编程单元
903,其被配置为通过执行编程操利用数据编程一个或多个存储单元;估计单元905,其被配置为估计在所编程的存储单元上执行的编程操作的性能度量;配置单元907,其被配置为在执行编程操作后基于编程操作的性能度量来配置擦除操作,以及擦除单元909,其被配置为通过执行所配置的擦除操作来擦除存储器中的该组存储单元。根据本申请的一个实施例,估计单元905被配置为通过测量编程操作的持续时间来估计性能度量。根据本申请的一个实施例,存储电路902进一步包括设置单元911,其被配置为设置从一组类型中选择至少一个参数类型,该一组类型包括在擦除操作中连续擦除脉冲之间的振幅或持续时间的增量、擦除操作中初始脉冲的振幅或持续时间、在擦除操作期间施加的字线电压、和在擦除操作期间施加的位线电压。根据本申请的一个实施例,存储电路902进一步包括评估单元913,其被配置为通过确定应用于所编程的存储单元的编程和擦除周期的数量来评估性能度量,和配置单元907,其进一步被配置为基于所确定的编程和擦除周期的数量来配置擦除操作。可以注意到通过举例的方式引用上述描述的实施例,并且本发明不限于上述所特别示出并描述的。当然,本发明的范围包括上面描述的各种特征的组合和替代组合,同样,对于本领域技术人员通过阅读并未在现有技术中公开的在先描述,可以对其改变和修改。在本专利申请中通过引用并入 的文献被认为是本申请不可分割的一部分,除了对于以某种方式在这些合并的文献中定义的与本说明书中明确地或隐含地定义相冲突的任何术语的扩展,仅应考虑本说明书中的定义。
权利要求
1.一种用于数据存储的方法,包括: 通过执行将脉冲序列应用于一组模拟存储单元中的存储单元的迭代过程,将该组模拟存储单元设置到相应的模拟值; 在迭代过程期间,估计迭代过程的进程,并响应于所估计的进程来修改迭代过程的参数;以及 根据修改的参数继续执行迭代过程。
2.根据权利要求1成所述的方法,其中,执行迭代过程包括利用数据编程组中的存储单元。
3.根据权利要求1所述的方法,其中,执行迭代过程包括擦除该组储存单元。
4.根据权利要求1所述的方法,其中,估计进程包括估计组中作为脉冲结果已达到相应的预期模拟值的存储单元的数量超过预定数量。
5.根据权利要求4所述的方法,其中,修改参数包括修改序列中连续脉冲之间的振幅或持续时间的增量。
6.根据权利要求1所述的方法,其中,估计进程包括估计应用于组中的存储单元的脉冲的数量超过预定数量。
7.根据权利要求1所述的方法,其中,修改参数包括修改从以下一组类型中选择的至少一个参数类型,该一组类型包括序列中连续脉冲之间的振幅或持续时间的增量、序列中初始脉冲的振幅或持续时间、施加于该组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、施加于组中打算接收后续脉冲的存储单元的编程位线电压、和施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。
8.根据权利要求1所述的方法,其中,修改参数包括依据施加于组中打算接收后续脉冲的存储单元的编程位线电压,修改施加于该组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、或施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。
9.一种用于数据存储的设备,包括: 存储器,包括多个模拟储存单元;以及 存储电路,被配置为通过执行将脉冲序列应用于一组模拟存储单元中的存储单元的迭代过程,将该组模拟存储单元设置到相应的模拟值,估计迭代过程的进程,响应于所估计的进程来修改迭代过程的参数,以及根据修改的参数继续执行迭代过程。
10.根据权利要求9所述的设备,其中,迭代过程包括利用数据编程组中的存储单元的编程过程。
11.根据权利要求9所述的设备,其中,迭代过程包括擦除该组储存单元的擦除过程。
12.根据权利要求9所述的设备,其中,所述存储电路被配置为通过估计组中作为脉冲结果已达到相应的预期模拟值的存储单元的数量超过预定数量来估计进程。
13.根据权利要求12所述的设备,其中,所述存储电路被配置为通过修改序列中连续脉冲之间的振幅或持续时间的增量来修改参数。
14.根据权利要求9所述的设备,其中,所述存储电路被配置为通过估计应用于组中的存储单元的脉冲的数量超过预定数量来估计进程。
15.根据权利要求9所述的设备,其中,所述存储电路被配置为修改从以下一组类型中选择的至少一个参数类型,该一组类型包括序列中连续脉冲之间的振幅或持续时间的增量、序列中初始脉冲的振幅或持续时间、施加于该组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、施加于组中打算接收后续脉冲的存储单元的编程位线电压、和施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。
16.根据权利要求9所述的设备,其中,所述存储电路被配置为依据施加于组中打算接收后续脉冲的存储单元的编程位线电压,修改施加于该组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、或施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。
17.一种用于数据存储的设备,包括 存储器,包括多个模拟存储单元;以及 存储电路,被配置为通过执行编程操作利用数据对一个或多个存储单元进行编程,估计在所编程的存储单元上执行的编程操作的性能度量,在执行编程操作后基于编程操作的性能度量来配置擦除操作,并通过执行所配置的擦除操作来擦除存储器的一组存储单元。
18.根据权利要求17所述的设备,其中,存储电路被配置为通过测量编程操作的持续时间来估计性能度量。
19.根据权利要求17所述的设备,其中,所述存储电路被配置为设置从以下一组类型中选择的至少一个参数类型,该一组类型包括在擦除操作中连续擦除脉冲之间的振幅或持续时间的增量、在擦除操作中初始脉冲的振幅或持续时间、在擦除操作期间施加的字线电压、和在擦除操作期间施加的位线电压。
20.根据权利要求17所述的设备,其中,所述存储电路被配置为通过确定应用于所编程的存储单元的编程和擦除周期的数量来评估性能度量,并且基于所确定的编程和擦除周期的数量来配置擦除操作。
21.一种数据存储设备,包括: 存储器,包括多个模拟存储单元;以及 存储电路,包括 设置单元,被设置为通过执行将脉冲序列应用于一组模拟存储单元中的存储单元的迭代过程,将该组模拟存储单元设置到相应的模拟值; 估计单元,被配置为估计迭代过程的进程; 修改单元,被配置为响应于所估计的进程来修改迭代过程的参数并根据修改的参数继续执行迭代过程。
22.根据权利要求21所述的数据存储设备,其中,迭代过程包括利用数据编程组中的存储单元的编程过程。
23.根据权利要求21所述的数据存储设备,其中,迭代过程包括擦除该组存储单元的擦除过程。
24.根据权利要求21所述的数据存储设备,其中,估计单元被配置为通过估计组中作为脉冲结果已达到相应的预期模拟值的存储单元的数量超过预定数量来估计进程。
25.根据权利要求24所述的数据存储设备,其中,修改单元被配置为通过修改序列中连续脉冲之间的振幅或持续时间的增量来修改参数。
26.根据权利要求21所述的数据存储设备,其中,估计单元被配置为通过估计应用于组中的存储单元的脉冲的数量超过预定数量来估计进程。
27.根据权利要求21所述的数据存储设备,其中,修改单元被配置为修改从以下一组类型中选择的至少一个参数类型,该一组类型包括序列中连续脉冲之间的振幅或持续时间的增量、序列中初始脉冲的振幅或持续时间、施加于该组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、施加于组中打算接收后续脉冲的存储单元的编程位线电压、和施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。
28.根据权利要求21所述的数据存储设备,其中,修改单元被配置为依据施加于组中打算接收后续脉冲的存储单元的编程位线电压,修改施加于该组存储单元的编程字线电压、施加于另一组存储单元的未选择的字线电压、或施加于组中打算被抑制接收后续脉冲的存储单元的抑制位线电压。
29.一种数据存储设备,包括: 存储器,包括多个模拟存储单元;以及 存储电路,其进一步包括: 编程.单元,被配置为通过执行编程操作利用数据对一个或多个存储单元编程; 估计单元,被配置为估计在所编程的存储单元上执行的编程操作的性能度量; 配置单元,被配置为在执行编程操作后,基于编程操作的性能度量来配置擦除操作,以及 擦除单元,被配置为通过执行所配置的擦除操作来擦除存储器的一组存储单元。
30.根据权利要求29所述的数据存储设备,其中,估计单元被配置为通过测量编程操作的持续时间来估计性能度量。
31.根据权 利要求29所述的数据存储设备,其中,所述存储电路进一步包括设置单元,被配置为设置从以下一组类型中选择的至少一个参数类型,该一组类型包括在擦除操作中连续擦除脉冲之间的振幅或持续时间的增量、在擦除操作中初始脉冲的振幅或持续时间、在擦除操作期间施加的字线电压、和在擦除操作期间施加的位线电压。
32.根据权利要求29所述的数据存储设备,其中,所述存储电路进一步包括评估单元,被配置为通过确定应用于所编程的存储单元的编程和擦除周期的数量来评估性能度量,并且所述配置单元被进一步配置为基于所确定的编程和擦除周期的数量来配置擦除操作。
全文摘要
本发明涉及用于模拟存储单元的增强编程和擦除方案。一种用于数据存储的方法,包括通过将脉冲序列应用于一组模拟存储单元中的存储单元的迭代过程,将该组模拟存储单元设置到相应的的模拟值。在迭代过程期间,估计迭代过程的进程,并响应于所估计的进程来修改迭代过程的参数。根据修改的参数继续执行迭代过程。
文档编号G11C16/16GK103219041SQ201310088369
公开日2013年7月24日 申请日期2013年1月24日 优先权日2012年1月24日
发明者E·格吉, Y·卡速尔拉, O·沙尔维 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1