CN104067348B - 用于模拟存储器单元的编程及擦除方案 - Google Patents
用于模拟存储器单元的编程及擦除方案 Download PDFInfo
- Publication number
- CN104067348B CN104067348B CN201380006438.4A CN201380006438A CN104067348B CN 104067348 B CN104067348 B CN 104067348B CN 201380006438 A CN201380006438 A CN 201380006438A CN 104067348 B CN104067348 B CN 104067348B
- Authority
- CN
- China
- Prior art keywords
- group
- analog memory
- unit
- memory unit
- programming
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
- G11C11/5635—Erasing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/344—Arrangements for verifying correct erasure or for detecting overerased cells
- G11C16/3445—Circuits or methods to verify correct erasure of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种用于在包括多个模拟存储器单元的存储器中进行数据存储的方法,该方法包括基于存储在所述存储器中的至少一个所述存储器单元中的一个或多个数据值来设置应用于一组所述存储器单元的迭代过程的参数。根据所设置的参数,在该组所述存储器单元中执行所述迭代过程。
Description
技术领域
本发明整体涉及数据存储,并且具体地涉及用于模拟存储器单元的编程及擦除的方法和系统。
背景技术
多种类型的存储器设备例如闪存存储器采用模拟存储器单元的阵列来存储数据。每个模拟存储器单元保持一定级别的给定物理量,诸如电荷或电压,该给定物理量表示单元内存储的数据。此物理量的级别也称为存储值或模拟值。例如,在闪存存储器中,每个模拟存储器单元保持一定量的电荷。可能模拟值的范围通常被分为若干区域,每个区域与表示一个或多个数据位值的编程状态相对应。通过写入与所期望的一个或多个位对应的标称模拟值来将数据写入模拟存储器单元。
通常称为单级单元(SLC)设备的一些存储器设备在每个存储器单元中存储单个信息位,即,可以对每个存储器单元进行编程以呈现两种可能的存储状态。通常称为多级单元(MLC)设备的较高密度设备每存储器单元存储两位或更多位,即,可对其编程来呈现不止两种可能的存储状态。
例如,在2003年4月的IEEE论文集第91卷第4期第489-502页,由Bez等人发表的“Introduction to Flash Memory”中描述了闪存设备,该文献以引用方式并入本文。例如,在美国纽约州纽约市召开的1996年IEEE国际电子设备会议(IEDM)的论文集中第169-172页,由Eitan等人发表的“Multilevel Flash Cells and their Trade-Offs”描述了多级闪存单元和设备,该文献以引用方式并入本文。该论文比较了几种多级闪存单元,例如共接地、DIN0R、AND、NOR和NAND单元。
1999年9月21-24日在日本东京召开的1999年国际固态设备与材料(SSDM)研讨会,其论文集中第522-524页,由Eitan等人在“Can NROM,a2-bit,Trapping Storage NVMCell,Give a Real Challenge to Floating Gate Cells?”中描述了称为氮化物只读存储器(NROM)的另一种类型的模拟存储器单元,该论文以引用方式并入本文。2002年2月3-7日在美国加利福尼亚州旧金山市召开的2002年IEEE国际固态电路会议(ISSCC2002),其论文集中第100-101页,由Maayan等人在“A512Mb NROM Flash Data Storage Memory with 8MB/s Data Rate”中也描述了NROM单元,该论文以引用方式并入本文。模拟存储器单元的其他示例性类型是浮栅(FG)单元、铁电RAM(FRAM)单元、磁性RAM(MRAM)单元、电荷撷取闪存(CTF)和相变RAM(PRAM,也称为相变存储器-PCM)单元。例如,2004年5月16-19日,在塞尔维亚和黑山的尼斯召开的第24届关于微电子学的国际会议(MIEL),其论文集中第1卷第377-384页,由Kim和Koh在“Future Memory Technology including Emerging New Memories”中描述了FRAM、MRAM和PRAM单元,该论文以引用方式并入本文。
用于对模拟存储器单元进行编程及擦除的各种方法在本领域中是已知的。一些存储器设备使用迭代编程和校验(P&V)过程,其将脉冲序列施加于一组存储器单元并在序列期间校验编程的值。
发明内容
本文所描述的本发明的一个实施例提供了一种用于数据存储的方法。该方法包括通过执行将脉冲序列施加于一组模拟存储器单元中的存储器单元的迭代过程而将该组模拟存储器单元设置为相应的模拟值。在迭代过程期间,评估迭代过程的进展,并响应于所评估的进展来修改迭代过程的参数。根据修改的参数继续迭代过程。
在一些实施例中,执行迭代过程包括利用数据对组中的存储器单元进行编程。在其他实施例中,执行迭代过程包括擦除该组存储器单元。
在一个实施例中,评估进展包括评估所述组中已因脉冲而达到相应的预期模拟值的存储器单元的数量超过预定数量。修改参数可包括修改序列中连续脉冲之间的振幅或持续时间的增量。在另一个实施例中,评估进展包括评估施加于组中的存储器单元的脉冲数量超过预定数量。
在公开的实施例中,修改参数包括:修改序列中连续脉冲之间的振幅或持续时间的增量;序列中初始脉冲的振幅或持续时间;施加于该组存储器单元的编程字线电压;施加于另一组存储器单元的未选择的字线电压;施加于组中旨在接收后续脉冲的存储器单元的编程位线电压;和/或施加于组中旨在被禁止接收后续脉冲的存储器单元的抑制位线电压。
修改参数可包括根据施加于组中旨在接收后续脉冲的存储器单元的编程位线电压来修改:施加于该组存储器单元的编程字线电压;施加于另一组存储器单元的未选择的字线电压;或施加于组中旨在被禁止接收后续脉冲的存储器单元的抑制位线电压。
根据本发明的一个实施例,还提供包括存储器和存储电路系统的用于数据存储的装置。存储器包括多个模拟存储器单元。存储电路被配置为通过执行将脉冲序列施加于一组模拟存储器单元中的存储器单元的迭代过程,将该组模拟存储器单元设置为相应的模拟值,评估迭代过程的进展,响应于所评估的进展来修改迭代过程的参数,以及根据修改的参数继续执行迭代过程。
根据本发明的一个实施例,还提供了一种用于在包括多个模拟存储器单元的存储器中进行数据存储的方法。该方法包括基于在存储器中的至少一个存储器单元中存储的一个或多个数据值来设置应用于一组存储器单元的迭代过程的参数。根据所设置的参数,在该组存储器单元中执行迭代过程。
在一个实施例中,执行迭代过程包括利用数据对所述组中的存储器单元进行编程。在另一个实施例中,执行迭代过程包括擦除该组存储器单元。在一个实施例中,设置所述参数包括将来自至少一个存储器单元的数据值复制到另一存储位置,并基于所复制的数据值来设置参数。
在另一个实施例中,设置所述参数包括:设置在迭代过程中连续脉冲之间的振幅或持续时间的增量;在迭代过程中初始脉冲的振幅或持续时间;施加于一组存储器单元的编程字线电压;施加于另一组存储器单元的未选择的字线电压;施加于所述组中旨在接收后续脉冲的存储器单元的编程位线电压;和/或施加于所述组中旨在被禁止接收后续脉冲的存储器单元的抑制位线电压。
根据本发明的一个实施例,还提供了包括存储器和存储电路系统的用于数据存储的装置。存储器包括多个模拟存储器单元。存储电路系统被配置为基于在存储器中的至少一个存储器单元中存储的一个或多个数据值来设置应用于一组存储器单元的迭代过程的参数,并根据所设置的参数来执行该组存储器单元中的迭代过程。
根据本发明的一个实施例,还提供了一种用于在包括多个模拟存储器单元的存储器中进行数据存储的方法。该方法包括通过执行编程操作利用数据对一个或多个存储器单元进行编程。评估在所编程的存储器单元上执行的编程操作的性能测量。在执行编程操作后,基于编程操作的性能测量来配置擦除操作,并通过执行所配置的擦除操作来擦除存储器的一组存储器单元。
在一些实施例中,评估所述性能测量包括测量编程操作的持续时间。在一个实施例中,配置所述擦除操作包括:设置在擦除操作中连续擦除脉冲之间的振幅或持续时间的增量;在擦除操作中初始脉冲的振幅或持续时间;在擦除操作期间施加的字线电压;和/或在擦除操作期间施加的位线电压。
在一个实施例中,评估所述性能测量包括确定应用于所编程的存储器单元的编程和擦除周期的数量,并且配置所述擦除操作包括基于所确定的编程和擦除周期的数量来配置擦除操作。
根据本发明的一个实施例,还提供了包括存储器和存储电路系统的用于数据存储的装置。存储器包括多个模拟存储器单元。存储电路系统被配置为通过执行编程操作利用数据对一个或多个存储器单元进行编程,评估在所编程的存储器单元上执行的编程操作的性能测量,并在执行编程操作后基于编程操作的性能测量来配置擦除操作,以及通过执行所配置的擦除操作来擦除存储器的一组存储器单元。
根据本发明的一个实施例,还提供了一种用于在包括多个模拟存储器单元的存储器中进行数据存储的方法。该方法包括向一组存储器单元应用将该组中的存储器单元设置为相应的模拟值的操作。评估应用于该组存储器单元的操作的性能测量。基于所评估的操作的性能测量来评估存储器中包括该组的存储块的健康状态。
应用所述操作可包括利用数据对所述组中的存储器单元进行编程。作为另外一种选择,应用所述操作可包括擦除该组存储器单元。在一个实施例中,评估所述性能测量包括测量所述操作的持续时间。在另一个实施例中,评估所述健康状态包括当性能测量偏离预定范围时将存储块标记为坏。在另一个实施例中,评估所述健康状态包括当性能测量偏离预定范围时将存储块标记为需经受额外的评估。在另一个实施例中,评估所述健康状态包括根据性能测量为存储块中的后续数据存储设置存储配置。
根据本发明的一个实施例,还提供了包括存储器和存储电路系统的用于数据存储的装置。存储器包括多个模拟存储器单元。存储电路被配置为向一组存储器单元应用将该组中的存储器单元设置为相应的模拟值的操作,评估应用于该组存储器单元的操作的性能测量,并且基于所评估的操作的性能测量来评估存储器中包括该组的存储块的健康状态。
通过下面的本发明实施例详细描述以及结合附图,将更全面地理解本发明,其中:
附图说明
图1为根据本发明实施例的示意性地示出存储器系统的框图;
图2为根据本发明实施例的示意性地示出模拟存储器单元阵列的电路图;
图3A为根据本发明实施例的示意性地示出对一组模拟存储器单元进行编程的方法的图示;
图3B为根据本发明实施例的示意性地示出对一组模拟存储器单元进行擦除的方法的图示;
图4为根据本发明实施例的示意性地示出用于编程或擦除一组模拟存储器单元的方法的流程图;
图5为根据本发明实施例的示意性地示出用于编程一组模拟存储器单元的方法的流程图;
图6为根据本发明实施例的示意性地示出用于擦除一组模拟存储器单元的方法的流程图;并且
图7为根据本发明实施例的示意性地示出用于评估一组模拟存储器单元的健康水平的方法的流程图。
具体实施方式
综述
在诸如闪存存储器之类的存储器设备中,数据通常通过将存储器单元编程为相应的表示所存储的位值的模拟值而被存储于模拟存储器单元中。每个位值对应于由模拟值的一定区域表示的相应的编程级或编程状态。
在一些存储器设备中,在迭代编程和校验(P&V)过程中对一组模拟存储器单元进行编程,所述过程将编程脉冲序列施加于该组中的存储器单元。在序列期间,通过比较每个模拟值与相应的校验阈值来校验存储器单元的模拟值,该校验阈值对应于正在编程的存储器单元的预期编程状态。继续仅对模拟值仍在其相应的校验阈值之下的存储器单元进行编程。假定对其他存储器单元正确地编程,并且被禁止接收后续的编程脉冲。通常使用将擦除脉冲序列施加于所述块中的存储器单元的迭代擦除过程来擦除闪存存储器单元块。存储器单元的模拟值在序列期间通过将其与擦除阈值比较来对其进行校验。
下文描述的本发明实施例提供用于编程和擦除诸如闪存单元的模拟存储器单元的改进的方法和系统。与传统的编程和擦除方案比较,所公开的技术实现了更少的编程和擦除时间,以及更高的编程及擦除可靠性。
在一些实施例中,存储电路系统(例如,耦合到存储器单元或存储器控制器的读/写电路系统)评估迭代编程或擦除过程的进展,并基于所评估的进展修改迭代过程的一个或多个参数。可例如依据已达到其预期模拟值的存储器单元的百分比,或依据施加于存储器单元的编程或擦除脉冲的数量来对进展进行评估。
各种编程或擦除参数能够基于进展进行修改,所述参数例如为连续的编程或擦除脉冲之间的振幅或持续时间的增量、初始的脉冲振幅、或在编程或擦除过程期间施加的各种字线或位线电压。
在可供选择的实施例中,存储电路系统基于存储在一个或多个存储器单元中的数据来设置一个或多个编程或擦除过程的参数。在其他实施例中,存储电路系统基于编程操作的性能来配置一个或多个擦除操作的参数。例如,存储电路系统可在某一存储块中针对页面来测量平均编程时间,并且根据测量的编程时间来配置用于该块的擦除操作。
在另外的其他实施例中,存储电路系统基于在块中执行的编程或擦除操作的性能测量(例如,基于编程或擦除时间)来评估存储块的健康状态。
系统描述
图1为根据本发明实施例的示意性地示出存储器系统20的框图。系统20可用于各种主机系统和设备中,诸如用于计算设备、蜂窝电话或其他通信终端、可移动存储器模块(有时称为“USB闪存驱动器”)、固态硬盘(SSD)、数码相机、音乐和其他媒体播放器和/或在其中存储并检索数据的任何其他系统或设备中。
系统20包括在存储器单元阵列28中存储数据的存储器设备24。存储阵列包括多个存储块34。每个存储块34包括多个模拟存储器单元32。在本专利申请的上下文和权利要求中,术语“模拟存储器单元”用于描述任何保持物理参数诸如电压或电荷的连续模拟值的存储器单元。阵列28可包括任何种类的模拟存储器单元,诸如NAND、NOR和电荷撷取闪存(CTF)闪存单元、相变RAM(PRAM,也称为相变存储器(PCM))、氮化物只读存储器(NROM)、铁电RAM(FRAM)、磁性RAM(MRAM)和/或动态RAM(DRAM)单元。
存储在单元中的电荷级别和/或写入到单元中和从单元中读出的模拟电压或电流在本文统称为模拟值、模拟存储值或存储值。存储值可包括例如阈值电压或任何其他合适种类的存储值。系统20通过对单元编程以呈现相应的编程状态(也称为编程级)来在模拟存储器单元中存储数据。编程状态从可能状态的有限集合中选择,并且每个编程状态对应于某一标称存储值。例如,3位/单元MLC能够通过将八个可能的标称存储值之一写入到单元中来被编程以呈现八种可能的编程状态之一。
存储器设备24包括读/写(R/W)单元36,该读写单元将存储器设备中存储的数据转换成模拟存储值并将它们写入到存储器单元32中。在可供选择的实施例中,读写单元不执行这种转换,但提供有电压样本,即,单元中存储的存储值。当从阵列28中读取数据时,读写单元36将存储器单元32的存储值转换成具有一位或多位分辨率的数字样本。数据通常写入组中的存储器单元(这称为页面)中并从其中读取。在一些实施例中,读写单元能够通过将一个或多个负的擦除脉冲施加于单元来擦除一组单元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。通常,尽管不是必要的,存储块为大约106个存储器单元,而一个页面为大约103-104个存储器单元。
以下描述了几种用于编程和擦除阵列28的存储器单元32的示例性技术。所公开的技术可通过存储器控制器40和/或通过读写单元36来执行。为了清楚起见,以下描述涉及作为由存储器设备中的读写单元36执行的编程和擦除过程。然而,通常构成所公开的编程和擦除技术的各种任务能够以任何合适的方式在存储器控制器和读写电路系统之间被划分,或由这些元件的任何一个来执行。因此,在本专利申请的上下文和权利要求中,存储器控制器40和读写电路系统36被共同地称为执行所公开技术的存储电路系统。
图2为根据本发明实施例的示意性地示出能够用于实现阵列28的模拟存储器单元的阵列的电路图。在该实施例中,阵列包括由字线64和位线68连接的多个闪存存储器单元(在图中示为浮栅晶体管)。
在一些实施例中,读写单元36使用迭代编程和校验(P&V)过程利用数据来对给定字线64中的一组存储器单元(例如,字线中的所有存储器单元、奇阶单元或偶阶单元)进行编程。在这个过程中,单元36将编程脉冲序列施加于该组单元,并且在每个脉冲之后校验该组中单元的阈值电压。单元36抑制已达到其预期阈值电压的单元的后续编程,使得后续脉冲被选择性地仅施加于尚未达到预期阈值电压的那些单元。
在P&V过程期间,单元36利用合适的电压偏置各种字线64和位线68。图2的例子示出3个字线64,其中中间的字线正被编程。本例示出了在P&V过程期间的特定实例,其中将对存储器单元72进行编程(因为其尚未达到其预期阈值电压)。同时,相同字线中的存储器单元80将被抑制编程,因为其已经达到了其预期阈值电压。其他字线中的存储器单元,诸如存储器单元80,将不被编程。
为了编程适当的存储器单元,读写单元36利用表示为Vpgm的编程电压来偏置中间字线,并利用表示为Vpass_pgm的通过电压来偏置块中的其他字线。单元36利用表示为Vbitline_pgm的位线编程电压偏置位线来进行编程,并且利用表示为Vbitline_inhibit的位线抑制电压偏置位线来抑制编程。
图3A为根据本发明实施例的示意性地示出对一组模拟存储器单元28进行编程的过程的图示。本例示出利用数据被编程的一组2位/单元存储器单元(例如,在字线中的所有存储器单元、奇阶单元或偶阶单元)。每个单元可被编程为与四个阈值电压分布84A…84D相对应的四个可能的编程级(也称为编程状态)之一。每个编程级与相应的2位数据值相对应。对应于负阈值电压的编程级84A也用作已擦除级。在发起编程前,组中的所有存储器单元被设为已擦除级。
在一些实施例中,如上所述,读写单元36利用迭代P&V过程来编程所述组中的存储器单元。当在给定编程脉冲之后校验单元阈值电压时,单元36将单元阈值电压与一个或多个校验阈值进行比较。在本例中,单元36使用分别与编程级84B…84D相对应的3个校验阈值88A…88C。在旨在被编程到一定编程级的一定存储器单元的阈值电压超过该编程级的校验阈值时,存储器单元被禁止接收后续编程脉冲。通常,通过改变从Vbitline_pgm到Vbitline_inhibit的单元位线电压来执行该禁止。
(为了清楚起见,本例示出了同时编程全部四个编程级的编程过程。在一些实施例中,单元36利用两个页面在两阶段中编程一组存储器单元:一个阶段使用两个编程级来编程第一页面,第二阶段使用全部四个编程级来编程第二页面。)
图3B为根据本发明实施例的示意性地示出对一组模拟存储器单元28进行擦除的过程的图示。擦除过程通常同时应用于整个块34。在擦除过程中,单元36将序列或擦除脉冲施加于存储器单元,并通过将单元阈值电压与擦除阈值92进行比较来校验所述单元阈值电压。擦除过程继续,直到块中的所有存储器单元(或在一些实施例中,预定控制数量的单元)具有低于阈值92的阈值电压。
图3A和3B的实施例涉及2位/单元存储器单元的编程和擦除。然而,所公开的技术可应用于任何其他合适类型的具有任何所需数量和编程级布置的存储器单元。
基于编程/擦除过程对编程/擦除迭代过程参数进行自适应修改
在一些实施例中,当编程或擦除一组模拟存储器单元时,读写单元36评估迭代编程或擦除过程的进展。当进展满足一定转换条件时,单元36修改所述过程的一个或多个参数。
单元36可以各种方式评估进展,即,定义并评估各种形式的转换条件。例如,单元36可检查组中预定百分比的存储器单元是否已达到其预期阈值电压(例如,对于编程操作,超过适当的校验阈值,或对于擦除操作,降到擦除阈值以下)。在擦除操作中,单元36可评估在第一擦除脉冲后或两个擦除脉冲后被充分地擦除的单元的数量。在可供选择的实施例中,单元36可从迭代过程的两个或更多个不同校验阶段来组合单元计数。
当使用这种类型的条件时,读写单元36可假定数据在编程级之中是杂乱的或以其他方式均匀分布的。在可供选择的实施例中,读写电路可确定在发起编程操作前每一编程级中的单元数量,或以任何其他合适的方式获得该信息。
另一示例性转换条件是在执行预定数量的迭代后,即,在施加预定数量的编程或擦除脉冲后,修改编程或擦除参数。作为另外一种选择,读写单元可通过确定与编程或擦除相关的某一参数的绝对值来评估转换条件。
在各种实施例中,当满足转换条件时,读写单元可修改迭代编程或擦除过程的任何合适的参数。该参数可包括例如在序列中连续的编程/擦除脉冲之间的振幅或持续时间的增量(有时被称为增量阶跃脉冲编程(ISPP)),和/或序列中初始脉冲的振幅或持续时间。
除此之外或作为另外一种选择,在编程操作中,修改的参数可包括施加于未选择字线的通过电压(Vpass_pgm)、施加于所选字线的字线电压(Vpgm)、施加于编程单元的位线电压(Vbitline_pgm、施加于抑制单元的位线电压(Vbitline_inhibit)、和/或任何其他合适的参数。除此之外或作为另外一种选择,在擦除操作中,修改的参数可包括例如在正被擦除的块中施加的字线电压和/或位线电压。
在示例性实施例中,单元36评估该组中已达到其预期编程级的存储器单元的数量。当百分比超过预定值时,单元36改变连续脉冲之间的振幅增量。
在另一个示例性实施例中,单元36利用大的擦除脉冲电压开始擦除过程。当成功擦除的存储器单元的百分比达到一定预定值时,单元36降低用于后续脉冲的擦除脉冲电压。
在另一个实施例中,读写单元36根据Vpgm的变化修改一个或多个偏压(例如,Vbitline_pgm、Vbitline_inhibit、Vpass_pgm)。这类编程使单元36能够优化字线和/或位线电压,并能够有效地编程存储器单元。
例如,能够执行电压优化,以便最小化来自相邻存储器单元(在相邻字线和/或相邻位线上)的编程干扰。在一些实施例中,根据Vpgm的绝对值的变化来执行优化。
图4为根据本发明实施例的示意性地示出用于编程或擦除一组模拟存储器单元32的方法的流程图。在初始化步骤96处,该方法开始于读写单元36发起在一组存储器单元中的迭代编程或擦除过程。
在编程或擦除过程期间的某一点,在进展评估步骤100处,单元36评估过程的进展。在完成检查步骤104处,单元36检查过程是否完成。例如,单元36可检查所有单元是否已达到其预期阈值电压。如果该过程完成,则方法在终止步骤108处终止。
否则,在转换条件评估步骤112处,单元36检查是否满足预定转换条件(基于上述步骤100处评估的进展)。在参数修改步骤116处,如果迭代过程的进展满足转换条件,则单元36修改迭代过程的一个或多个参数。随后该方法回到上述步骤100,其中单元36继续追踪迭代过程的进展。
基于数据对编程过程参数进行自适应设置
在一些实施例中,读写单元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可评估成功编程的单元数量的累积分布函数(CDF)。
单元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可基于所评估的块的健康状态采取各种动作。例如,读写单元或存储器控制器可基于块的所评估的健康状态为块中的后续编程命令(例如,纠错码和/或每单元的位数量)设置存储配置。
图7为根据本发明实施例的示意性地示出用于评估一组模拟存储器单元的健康水平的方法的流程图。在操作步骤148处,该方法开始于读写单元36或存储器控制器40将编程或擦除操作应用于一组存储器单元。在性能评估步骤152处,单元36或存储器控制器40评估所述编程或擦除操作的性能测量。性能测量可包括例如编程或擦除操作的持续时间。在健康评估步骤156处,单元36或控制器40基于性能测量来评估该组存储器单元的健康状态。
应当理解,上文所描述的实施例以举例的方式引用,并且本发明不限于上文已特别示出或描述的内容。相反地,本发明的范围包括上文所描述的各种特征的组合和子组合两者,以及本领域技术人员在阅读前述描述时将想到的且在现有技术中未公开的所述各种特征的变型形式和修改形式。在本专利申请中以引用方式并入的文献被认为是本申请不可分割的一部分,但如果任何术语在这些并入的文献中被定义成与本说明书中明确地或隐含地作出的定义相冲突,应仅考虑本说明书中的定义。
Claims (19)
1.一种用于数据存储的方法,包括:
在包括多个模拟存储器单元的存储器中,基于存储在所述存储器中的至少一个所述模拟存储器单元中的一个或多个数据值,设置应用于一组所述模拟存储器单元的迭代过程的参数;以及
根据所设置的参数,在该组所述模拟存储器单元中执行所述迭代过程;
其中,执行所述迭代过程包括确定所述迭代过程的持续时间,以及依赖于所述迭代过程的持续时间与预定的较高阈值和预定的较低阈值之间的比较来评估包括该组所述模拟存储器单元的存储块的健康状态。
2.根据权利要求1所述的方法,其中执行所述迭代过程包括利用数据对所述组中的所述模拟存储器单元进行编程。
3.根据权利要求1所述的方法,其中执行所述迭代过程包括擦除该组所述模拟存储器单元。
4.根据权利要求1所述的方法,其中设置所述参数包括将所述数据值从所述至少一个所述模拟存储器单元复制到另一存储位置,以及基于所复制的数据值来设置所述参数。
5.根据权利要求1所述的方法,其中设置所述参数包括设置选自下述一组类型的至少一个参数类型,该组类型包括:在所述迭代过程中连续脉冲之间的振幅或持续时间的增量;在所述迭代过程中初始脉冲的振幅或持续时间;施加于该组所述模拟存储器单元的编程字线电压;施加于另一组所述模拟存储器单元的未选择字线电压;施加于所述组中旨在接收后续脉冲的所述模拟存储器单元的编程位线电压;和施加于所述组中旨在被禁止接收所述后续脉冲的所述模拟存储器单元的抑制位线电压。
6.一种用于数据存储的装置,包括:
存储器,所述存储器包括多个模拟存储器单元;以及
存储电路系统,所述存储电路系统被配置为基于存储在所述存储器中的至少一个所述模拟存储器单元中的一个或多个数据值来设置应用于一组所述模拟存储器单元的迭代过程的参数,并根据所设置的参数在该组所述模拟存储器单元中执行所述迭代过程;
其中,在执行所述迭代过程期间,所述存储电路系统被进一步配置为:
确定所述迭代过程的持续时间;以及
依赖于所述迭代过程的持续时间与预定的较高阈值和预定的较低阈值之间的比较来评估包括该组所述模拟存储器单元的存储块的健康状态。
7.根据权利要求6所述的装置,其中所述迭代过程包括利用数据对所述组中的所述模拟存储器单元进行编程的编程过程。
8.根据权利要求6所述的装置,其中所述迭代过程包括擦除该组所述模拟存储器单元的擦除过程。
9.根据权利要求6所述的装置,其中所述存储电路系统被配置成将所述数据值从所述至少一个所述模拟存储器单元复制到另一存储位置,以及基于所复制的数据值来设置所述参数。
10.根据权利要求6所述的装置,其中所述存储电路系统被配置为设置选自下述一组类型的至少一个参数类型,该组类型包括:在所述迭代过程中连续脉冲之间的振幅或持续时间的增量;在所述迭代过程中初始脉冲的振幅或持续时间;施加于该组所述模拟存储器单元的编程字线电压;施加于另一组所述模拟存储器单元的未选择字线电压;施加于所述组中旨在接收后续脉冲的所述模拟存储器单元的编程位线电压;和施加于所述组中旨在被禁止接收所述后续脉冲的所述模拟存储器单元的抑制位线电压。
11.一种用于数据存储的方法,包括:
在包括多个模拟存储器单元的存储器中,向一组所述模拟存储器单元应用将所述组中的所述模拟存储器单元设置为相应的模拟值的操作;
确定应用于该组所述模拟存储器单元的所述操作的持续时间;以及
基于所述操作的持续时间与预定的较高阈值和预定的较低阈值之间的比较来评估所述存储器中包括所述组的存储块的健康状态。
12.根据权利要求11所述的方法,其中应用所述操作包括利用数据对所述组中的所述模拟存储器单元进行编程。
13.根据权利要求11所述的方法,其中应用所述操作包括擦除该组所述模拟存储器单元。
14.根据权利要求11所述的方法,其中评估所述健康状态包括当所述操作的所述持续时间偏离由所述预定的较高阈值和所述预定的较低阈值确定的预定范围时将所述存储块标记为坏的。
15.根据权利要求11所述的方法,其中评估所述健康状态包括当所述操作的所述持续时间偏离由所述预定的较高阈值和所述预定的较低阈值确定的预定范围时将所述存储块标记为经受额外的评估。
16.根据权利要求11所述的方法,其中所述方法还包括根据所评估的健康状态为所述存储块中的后续数据存储设置存储配置。
17.一种用于数据存储的装置,包括:
存储器,所述存储器包括多个模拟存储器单元;以及
存储电路系统,所述存储电路系统被配置成向一组所述模拟存储器单元应用将所述组中的所述模拟存储器单元设置为相应的模拟值的操作,确定应用于该组所述模拟存储器单元的所述操作的持续时间,以及基于所述操作的持续时间与预定的较高阈值和预定的较低阈值之间的比较来评估所述存储器中包括所述组的存储块的健康状态。
18.根据权利要求17所述的装置,其中所述操作包括利用数据对所述组中的所述模拟存储器单元进行编程的编程过程。
19.根据权利要求17所述的装置,其中所述操作包括擦除该组所述模拟存储器单元的擦除操作。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/356,694 US9009547B2 (en) | 2011-01-27 | 2012-01-24 | Advanced programming verification schemes for analog memory cells |
US13/356,694 | 2012-01-24 | ||
US13/471,484 US9293194B2 (en) | 2011-01-27 | 2012-05-15 | Programming and erasure schemes for analog memory cells |
US13/471,484 | 2012-05-15 | ||
PCT/US2013/021756 WO2013112336A2 (en) | 2012-01-24 | 2013-01-16 | Programming and erasure schemes for analog memory cells |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104067348A CN104067348A (zh) | 2014-09-24 |
CN104067348B true CN104067348B (zh) | 2017-04-05 |
Family
ID=48874052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380006438.4A Active CN104067348B (zh) | 2012-01-24 | 2013-01-16 | 用于模拟存储器单元的编程及擦除方案 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2807650A2 (zh) |
JP (1) | JP6001093B2 (zh) |
KR (1) | KR101635695B1 (zh) |
CN (1) | CN104067348B (zh) |
TW (1) | TWI523011B (zh) |
WO (1) | WO2013112336A2 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135975B2 (en) | 2013-10-28 | 2015-09-15 | Qualcomm Incorporated | Write pulse width scheme in a resistive memory |
IT201600121618A1 (it) * | 2016-11-30 | 2018-05-30 | St Microelectronics Srl | Metodo di riduzione della durata di un'operazione di memoria in un dispositivo di memoria non volatile e relativo dispositivo di memoria non volatile |
KR102533072B1 (ko) * | 2018-08-13 | 2023-05-17 | 에스케이하이닉스 주식회사 | 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10991433B2 (en) * | 2019-09-03 | 2021-04-27 | Silicon Storage Technology, Inc. | Method of improving read current stability in analog non-volatile memory by limiting time gap between erase and program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1906700A (zh) * | 2003-12-05 | 2007-01-31 | 桑迪士克3D公司 | 包含多个串联选择装置的nand存储阵列及其操作方法 |
US7656710B1 (en) * | 2005-07-14 | 2010-02-02 | Sau Ching Wong | Adaptive operations for nonvolatile memories |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10199263A (ja) * | 1996-12-30 | 1998-07-31 | Sony Corp | 不揮発性半導体記憶装置 |
JP2001093287A (ja) | 1999-09-24 | 2001-04-06 | Sony Corp | 不揮発性半導体記憶装置 |
EP1686592A3 (en) * | 2005-01-19 | 2007-04-25 | Saifun Semiconductors Ltd. | Partial erase verify |
KR100719368B1 (ko) * | 2005-06-27 | 2007-05-17 | 삼성전자주식회사 | 플래시 메모리 장치의 적응적 프로그램 방법 및 장치 |
EP2122627B1 (en) | 2007-02-20 | 2013-01-30 | SanDisk Technologies Inc. | Dynamic verify based on threshold voltage distribution |
KR100843037B1 (ko) * | 2007-03-27 | 2008-07-01 | 주식회사 하이닉스반도체 | 플래시 메모리 장치 및 이의 소거 방법 |
US8085586B2 (en) * | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
JP2010027165A (ja) * | 2008-07-22 | 2010-02-04 | Toshiba Corp | 不揮発性半導体記憶装置およびそのデータ書込み方法 |
JP2010123210A (ja) * | 2008-11-20 | 2010-06-03 | Toshiba Corp | 半導体記憶装置 |
-
2013
- 2013-01-16 JP JP2014554739A patent/JP6001093B2/ja active Active
- 2013-01-16 KR KR1020147023284A patent/KR101635695B1/ko active IP Right Grant
- 2013-01-16 WO PCT/US2013/021756 patent/WO2013112336A2/en active Application Filing
- 2013-01-16 EP EP13701345.4A patent/EP2807650A2/en not_active Withdrawn
- 2013-01-16 CN CN201380006438.4A patent/CN104067348B/zh active Active
- 2013-01-23 TW TW102102523A patent/TWI523011B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1906700A (zh) * | 2003-12-05 | 2007-01-31 | 桑迪士克3D公司 | 包含多个串联选择装置的nand存储阵列及其操作方法 |
US7656710B1 (en) * | 2005-07-14 | 2010-02-02 | Sau Ching Wong | Adaptive operations for nonvolatile memories |
Also Published As
Publication number | Publication date |
---|---|
KR101635695B1 (ko) | 2016-07-01 |
WO2013112336A2 (en) | 2013-08-01 |
JP2015510653A (ja) | 2015-04-09 |
TW201346909A (zh) | 2013-11-16 |
EP2807650A2 (en) | 2014-12-03 |
WO2013112336A3 (en) | 2013-09-26 |
JP6001093B2 (ja) | 2016-10-05 |
TWI523011B (zh) | 2016-02-21 |
KR20140117583A (ko) | 2014-10-07 |
CN104067348A (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI501232B (zh) | 用於類比記憶體單元之增強之程式化及抹除方案 | |
US9007797B2 (en) | Selective activation of programming schemes in analog memory cell arrays | |
US7751240B2 (en) | Memory device with negative thresholds | |
US9721671B2 (en) | Memory device which performs verify operations using different sense node pre-charge voltages and a common discharge period | |
US7924587B2 (en) | Programming of analog memory cells using a single programming pulse per state transition | |
US8000135B1 (en) | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals | |
US9153329B2 (en) | Selective re-programming of analog memory cells | |
US9583207B2 (en) | Adaptive data shaping in nonvolatile memory | |
US9293194B2 (en) | Programming and erasure schemes for analog memory cells | |
TW201423747A (zh) | 使用同時多電壓感測之類比記憶體胞中的讀取臨限値估計 | |
CN104067348B (zh) | 用于模拟存储器单元的编程及擦除方案 | |
US9007835B2 (en) | Enhanced data storage in 3-D memory using string-specific source-side biasing | |
US8649200B2 (en) | Enhanced programming and erasure schemes for analog memory cells |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |