专利名称:用于对非易失性存储器进行非实时重新编程以实现较紧密的阈值电压分布的方法
技术领域:
本发明涉及非易失性存储器。
背景技术:
半导体存储器已越来越普遍地用于用于各种电子装置中。举例来说,非易失性半导 体存储器用于蜂窝式电话、数字相机、个人数字助理、移动计算装置、非移动计算装置 及其它装置中。在最普遍的非易失性半导体存储器当中有电子可擦除可编程只读存储器 (EEPROM)及快闪存储器。在快闪存储器(也是一种类型的EEPROM)的情况下,与 传统的全特征EEPROM相比,可在一个步骤中擦除整个存储器阵列的内容或存储器的 一部分的内容。
传统EEPROM及快闪存储器两者均使用浮动栅极,所述浮动栅极定位于半导体衬 底中的沟道区域上方且与所述沟道区域绝缘。所述浮动栅极位于源极与漏极区域之间。 控制栅极提供于浮动栅极的上方且与浮动栅极绝缘。如此形成的晶体管的阈值电压受保 持于浮动栅极上的电荷量的控制。即,在接通晶体管以允许在其源极与漏极之间进行传 导之前,必须施加到控制栅极的最小电压量是由浮动栅极上的电荷电平控制。
某些EEPROM及快闪存储器装置具有存储元件,所述存储元件使用浮动栅极来存 储两个范围的电荷,且因此可在两种状态(例如,擦除状态与编程状态)之间进行编程 /擦除。所述快闪存储器装置有时称为二进制快闪存储器装置,因为每一存储元件均可存 储一个数据位。
多状态(还称作多电平)快闪存储器装置通过识别多个相异的容许/有效编程阈值电 压范围而实施。每一相异阈值电压范围对应于编码于存储器装置中的所述组数据位的预 定值。举例来说,当每一存储元件可放置在对应于四个相异阈值电压范围的四个离散电 荷带中的一者中时,所述存储元件便可存储两个数据位。
一般地,在编程操作期间施加到控制栅极的编程电压(Vpgm)作为量值随时间增 加的一系列脉冲而施加。在一种可能方法中,脉冲的量值随着每一连续脉冲而增加预定 步长(例如,0.4 V)。 Vpgm可施加到快闪存储元件的控制栅极。在编程脉冲之间的时期中,进行验证操作。即,在连续编程脉冲之间读取并行地加以编程的一组存储元件中 的每一存储元件的编程电平,以确定其是等于还是大于所述存储元件被编程到的验证电 平。对于多状态快闪存储元件阵列来说,可对存储元件的每一状态执行验证步骤,以确 定存储元件是否已达到其数据关联验证电平。举例来说,能够在四个状态中存储数据的 多状态存储元件可能需要对三个比较点执行验证操作。
当编程EEPROM或快闪存储器装置(例如NAND (NAND)快闪存储器装置)时, 一般将编程电压施加到控制栅极且使位线接地,从而使得将来自存储元件的沟道的电子 注入到浮动栅极中。当电子累积于浮动栅极中时,浮动栅极变为带负电荷,且存储元件 的阈值电压升高以使得存储元件处于编程状态中。可在标题为"用于非易失性存储器的 源极侧自增压技术(Source Side Self Boosting Technique For Non-Volatile Memory)"的美 闺专利6,859,397及标题为"在编程的存储器卜.进行检测(Detecting Over Programmed Memory)"的美国专利6,917,542中找到关于此编程的更多信息,所述专利的全部内容 以引用的方式并入本文屮。
然而,如标题为"在邻近浮动栅极之间不具有不利的电场效应耦合的高密度非易失 性快闪存储器(High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates)"的美国专利5,867,429中所述,在选定的 存储元件的编程期间,相邻存储元件可由于场效应耦合而使其电荷状态发生改变,且所 述专利以引用方式并入本文中。 一般来说,在场效应耦合的情况下,由于存储于相邻存 储元件中的电荷量发生变化而引起存储元件的阈值电压的偏移。举例来说,给定字线上 的存储元件可受到与同一字线上及相邻字线上的存储元件的电容耦合的影响。与邻近存 储元件最强的耦合致使先前编程存储元件的阈值电压偏移得更高。 一组存储元件的阈值 电压分布同样扩宽。此是不当的,尤其对多电平存储元件来说,在所述多电平存储元件 中较紧密的阈值电压分布是有利的。
发明内容
本发明通过提供一种以减少电容耦合的方式来操作非易失性存储装置的系统及方 法来解决上述及其它问题。
在一实施例中,操作非易失性存储器包括在初始编程中经由字线编程非易失性存储 元件,从第一字线开始且连续进行到每下一个字线,直到到达最后一个字线。在完成初 始编程之后,经由字线重新编程非易失性存储元件。举例来说,可对非易失性存储元件 块进行初始编程及重新编程。可分别在初始编程及重新编程中使用第一及第二组阈值电压(VTH)验证电平来编
程非易失性存储元件,其中第二组vth电压验证电平的每一者相对于第一组vth验证电 平中的对应电平而升高。以此方式,存储元件的vth在重新编程中仅以递增方式偏移。
此外,为了管理计算负载,重新编程可由管理电路作为后台处理而执行,此时管理电路 原本将处于备用模式中。此外,可基于管理电路的可用性而以一个或一个以上开始-中止 -恢复循环开始、暂时中止并随后恢复重新编程。重新编程可逐页发生,以使得重新编程 在一页数据结束时中止而在下一页开始时恢复。旗标位可用来指示对于每一页来说是否 均发生重新编程,从而允许跟踪每一页的编程状态。旗标位还可在块电平处使用以允许 块电平跟踪。页电平处的旗标位还可提供块电平跟踪。
此外,与初始编程相比,在重新编程中可施加更高的通过电压(Vpass)到未选定 的字线。在重新编程期间,因为驻留于漏极侧字线下的存储元件不再擦除,所以对于此 刻可编程到高阈值电压的所述存储元件来说,达到反转状况必须耗费更多的Vpass增压 电位。因此,在重新编程中增加的Vpass可为有帮助的。
在另一实施例中,操作非易失性存储装置包括使用第一 vth读取电平读取一组非
易失性存储元件的第一部分;根据所述读取来确定错误计数,例如,通过使用错误校正 及/或检测码;及如果错误计数超过阈值,则使用不同于第一 vth读取电平的第二 vth 读取电平重新读取非易失性存储元件的第一部分。因此,可对非易失性存储元件的第一
部分是否仅经受初始编程作出假设,在此情况下,如果用第二 vth读取电平替代第--vth读取电平来读取第一部分,则将检测到许多错误。或,可假设非易失性存储元件的 第一部分业已经受重新编程,在此情况下,如果用第一 vth读取电平替代第二 Vth達取 电平来读取第一部分,则可检测到许多错误。如果假设不正确,则用替代性vth读取电 平重新读取非易失性存储元件的第一部分。此外,可在初始读取试图中使用在读取第一 部分时被确定为正确的相同vth读取电平来读取非易失性存储元件的第二部分。非易失 性存储元件的部分可存储相应数据页,以使得编程在逐页的基础上进行,且正摘的Vth 读取电平被确定并用于每一页。
在又一实施例中,操作非易失性存储装置包括在初始编程中经由字线编程非易失 性存储元件,以使得当编程与给定字线相关联的非易失性存储元件时,将第一通过电压 施加到至少一个其它字线;及,在完成初始编程之后,经由字线重新编程非易失性存储
元件,以使得当重新编程与字线的给定一者相关联的非易失性存储元件时,将不同于第 一通过电压的第二通过电压施加到所述至少一个其它字线。举例来说,出于上述原因, 第二通过电压可高于第一通过电压。提供用于操作非易失性存储装置及非易失性存储系统的对应方法。非易失性存储系 统包括一组非易失性存储元件,及如本文所述用于操作所述组非易失性存储元件的一个 或一个以上电路。
图1为NAND串的俯视图。 图2为图1的NAND串的等效电路图。 图3为图1的NAND串的横截面图。 图4为描绘三个NAND串的电路图。
图5为可用于实施本发明的一个或一个以上实施例的示范性快闪存储器系统的框图。
图6说明将存储器阵列组织成若干块的实例。
图7A描绘在多状态装置中从擦除状态直接编程到编程状态的情况下的一示范组阈 值电压分布。
图7B描绘在重新编程之后图7A的所述示范组阈值电压分布。 图8描绘用于编程非易失性存储装置的一系列编程脉冲。 图9描绘非易失性存储元件的线性及非性编程方案。
图10描绘编程多状态存储元件的两遍式技术的一实例,其中所述多状态存储元件 存储两个不同的数据页的数据。
图IIA到图IIC描绘在多状态装置中使用两步骤编程的情况下的一示范组阈值电压 分布,其中在第一步骤中自擦除状态编程到中间状态,且在第二步骤中自擦除状态编程 到第一状态"A",并自中间状态编程到第二状态"B"或第三状态"C"。
图12为一流程图,其描述使用初始编程及重新编程来编程非易失性存储元件块的 过程的一实施例。
图13为一流程图,其描述使用一系列编程脉冲编程非易失性存储装置的过程的一 实施例。
图14A到图14F描绘针对初始编程及重新编程使用不同通过电压的增压技术。 图15为一流程图,其描述使用旗标读取非易失性存储装置的块中的页数据的过程 的一实施例。
图16为一流程图,其描述使用错误计数读取非易失性存储装置的块中的页数据的 过程的一实施例。
具体实施例方式
适合于实施本发明的非易失性存储器系统的一实例使用NAND快闪存储器结构,其 中多个晶体管串联地布置于NAND串中的两个选择栅极之间。图1为展示一个NAND 串的俯视图。图2为其等效电路。图l及图2所绘的NAND串包括四个晶体管100、 102、 104及106,所述晶体管串联且夹于第一选择栅极120与第二选择栅极122之间。选择 栅极120及122将NAND串分别连接到位线接点126及源极线接点128。通过分别施加 适当电压到控制栅极120CG及122CG而控制选择栅极120及122。晶体管100、 102、 104及106中的每一者具有控制栅极及浮动栅极。具体来说,晶体管100包括控制栅极 100CG及浮动栅极IOOFG,晶体管102包括控制栅极102CG及浮动栅极102FG,晶体 管104包括控制栅极104CG及浮动栅极104FG,且晶体管106包括控制栅极106CG及 浮动栅极106FG。控制栅极IOOCG、 102CG、 104CG及106CG分别连接到字线WL3、 WL2、 WL1及WLO。在一可能设计中,晶体管100、 102、 104及106每一者均为存储 元件,还称为单元或存储元件。在其它设计中,存储元件可包括多个晶体管,或可不同 于图l及图2中所绘的那些存储元件。选择栅极120连接到漏极选择线SGD,而选择栅 极122连接到源极选择线SGS。
图3提供上文所述的NAND串的横截面图。NAND串的晶体管形成于p阱区域140 中。每一晶体管包括堆叠栅极结构,所述结构包括控制栅极(IOOCG、 102CG、 104CG 及106CG)及浮动栅极(IOOFG、 102FG、 104FG及106FG)。浮动栅极形成于处在氧化 物或其它介电膜顶部上的p阱的表面上。控制栅极位于浮动栅极上方,其中多晶硅间介 电层使控制栅极与浮动栅极分离。存储元件(100、 102、 104及106)的控制栅极形成 字线。在相邻存储元件之间共享N+掺杂层130、 132、 134、 136及138,藉此将存储元 件彼此串联连接以形成N A N D串。这些N+掺杂层形成存储元件的每 一 者的源极及漏极。 举例来说,N+掺杂层130充当晶体管122的漏极及晶体管106的源极,N+掺杂层132 充当晶体管106的漏极及晶体管104的源极,N+掺杂层134充当晶体管104的漏极及晶 体管102的源极,N+掺杂层136充当晶体管102的漏极及晶体管100的源极,而N+掺 杂层138充当晶体管100的漏极及晶体管120的源极。N+掺杂层126连接到所述NAND 串的位线,而N+掺杂层128连接到多个NAND串的共用源极线。
四个晶体管在图1到图3的NAND串中的使用仅提供为一实例,因为用于本文所述 技术的NAND串可具有少于或多于四个存储元件。举例来说,某些NAND串将包括八 个、十六个、三十二个、六十四个或更多的存储元件。举例来说,本发明可用于由(例如)福勒诺德海姆(Fowler-Nordheim)隧穿进行 编程及擦除的装置。本发明还可应用于使用三层电介质(例如,由氧化硅、氮化硅及氧 化硅(ONO)形成的电介质)替代浮动栅极来存储电荷的装置。由ONO形成的三层电 介质夹于传导控制栅极与存储元件沟道上方的半传导衬底的表面之间。本发明还可应用 于用(例如)小型传导材料岛状物(例如,纳米晶体)替代浮动栅极作为电荷存储区域 的装置。这些存储器装置可以与基于浮动栅极的NAND快闪装置类似的方式进行编程及 擦除。图4为描述三个NAND串的电路图。使用NAND结构的快闪存储器系统的典型架 构将包括若干NAND串。举例来说,在具有较多NAND串的存储器阵列中展示三个 NAND串420、 440及460。所述NAND串的每一者包括两个选择晶体管及四个存储元 件。举例来说,NAND串420包括选择晶体管422及427以及存储元件423到426,NAND 串440包括选择晶体管442及447以及存储元件443到446, NAND串460包括选择晶 体管462及467以及存储元件463到466。每一 NAND串通过其选择晶体管(例如,选 择晶体管427、 447或467)而连接到源极线。选择线SGS用于控制源极侧选择栅极。 通过受控于漏极选择线SGD的选择晶体管422、 442、 462等将各个NAND串420、 440 及460连接到相应位线421、 441及461。在其它实施例中,选择线未必需要共用。字线 WL3连接到存储元件423、 443及463的控制栅极。字线WL2连接到存储元件424、 444 及464的控制栅极。字线WL1连接到存储元件425、 445及465的控制栅极。字线WLO 连接到存储元件426、 446及466的控制栅极。可以看出,每一位线及相应NAND串包 含存储元件的阵列或组的列。字线(WL3、 WL2、 WL1及WLO)包含所述阵列或组的 行。每一字线连接行中的每一存储元件的控制栅极。举例来说,字线WL2连接到存储 元件424、 444及464的控制栅极。实际上,字线上可存在数千个存储元件。每一存储元件可存储数据。举例来说,当存储一个数字数据位时,将存储元件的可 能阈值电压(Vth)的范围分成两个范围,对其指派逻辑数据"1"及"0"。在NAND 型快闪存储器的一实例中,VTH在存储元件被擦除之后为负,且定义为逻辑"l"。编程操作之后的vth为正,且定义为逻辑"0"。当vth为负且试图读取时,存储元件将接通以指示逻辑"l"被存储。当VTH为正且试图进行读取操作时,存储元件将不接通,此 指示逻辑"0"被存储。存储元件还可存储多个电平的信息,例如,多个数字数据位。在此情况下,vth值的范围分成数据电平的数目。举例来说,如果存储四个电平的信息,则将有四个vth范围指派给数据值"11"、 "10"、 "01"及"00"。在NAND型存储器的一实例中,擦除操作后的vth为负,且定义为"11"。正vth值用于状态"10"、 "01"11及"00"。编程到存储元件中的数据与元件的阈值电压范围之间的特殊关系视存储元件 所采用的数据编码方案而定。举例来说,美国专利第6,222,762号及美国专利申请案公 开案2004/0255090描述了用于多状态快闪存储元件的多种数据编码方案,所述专利的全 部内容以引用的方式并入本文中。美国专利第5,386,422号、第5,522,580号、第5,570,315号、第5,774,397号、第 6,046,935号、第6,456,528号及第6,522,580号中提供NAND型快闪存储器及其操作的 相关实例,所述专利的每一者均以引用的方式并入本文中。当编程快闪存储元件时,将编程电压施加到存储元件的控制栅极,且使与存储元件 相关联的位线接地。将来自沟道的电子注入到浮动栅极中。当电子累积于浮动栅极中时, 浮动栅极变为带负电,且存儲元件的Vth上升。为了将编程电压施加到正被编程的存储 元件的控制栅极,将所述编程电压施加于适当字线上。如上所述,所述字线还连接到共 享同一字线的其它NAND串的每一者中的一个存储元件。举例来说,当编程图4的存储 元件424时,还将编程电压施加到存储元件444及464的控制栅极。然而,当编程及读取给定存储元件及与给定存储元件具有某种程度的耦合的其它存 储元件(例如,共享同一字线或位线的那些存储元件)时,存储于存储元件中的电荷可 发生偏移。具体来说,存储电荷电平的偏移由于存储元件之间的场耦合而发生。因为集 成电路制造技术的改进使存储元件之间的空间减小,所以所述问题更加严重。所述问题 最显著地发生于不同时间编程的两群组邻近存储元件之间。 一群组存储元件经编程以增 加对应于一组数据的电荷电平。在使用第二组数据编程第二群组存储元件之后,自第一 群组存储元件读取的电荷电平由于第二群组存储元件与第一群组存储元件的电荷的电 容耦合而常常与编程的电荷电平显得不同。因此,耦合效应视编程存储元件的顺序而定, 且因此视编程期间横穿字线的顺序而定。NAND串一般但并非总是自源极侧向漏极侧编 程,其中,开始于源极侧字线处,且继续进行到漏极侧字线, 一次一个字线。举例来说,给定存储元件上的电容耦合效应可由同一字线中及同一NAND串中的其 它存储元件引起。举例来说,存储元件444可为包括沿字线WL2的其它交替存储元件 的第一群组存储元件的部分,其存储一页数据。存储元件424及464可为存储另一页数 据的第二群组存储元件的部分。当在存储元件444之后编程第二群组存储元件时,便将 存在与存储元件444的电容耦合。与在字线上的直接相邻存储元件的耦合最强,所述直 接相邻存储元件为存储元件424及464。类似地,如果在存储元件444之后编程处于同一 NAND串440上的存储元件,则存 储元件444可受到所述存储元件的编程的影响。对于存储元件444来说,与在NAND串上的直接相邻存储元件的耦合最强,所述直接相邻存储元件为存储元件443及/或445。 举例来说,如果按446、 445、 444、 443的顺序编程NAND串440中的存储元件,则存 储元件444可受到与存储元件443的耦合的影响。 一般来说,相对于存储元件444对角 布置的存储元件(即存储元件423、 463、 425及465)可提供存储元件444的耦合的约 20%,而同一字线或NAND串上的直接相邻存储元件424及464以及443及445提供耦 合的约80%。在某些情况下,耦合可足以使存储元件的Vth偏移約0.5 V,此足以导致读取误差且使一群组存储元件的vth分布扩宽。图5为可用于实施本发明的 个或一个以上实施例的快闪存储器系统的- -实施例的 框图。还可使用其它系统及实施方案。存储元件阵列502受控于列控制电路504、行控 制电路506、 c-源极控制电路510及p阱控制电路508。列控制电路504连接到存储元件 阵列502的位线,以用于读取存储于存储元件中的数据、在编程操作期间确定存储元件 的状态,及控制位线的电位电平以促进或禁止编程及擦除。行控制电路506连接到字线 以选择字线的一者、施加读取电压、施加与受控于列控制电路504的位线电位电平相组 合的编程电压,及施加擦除电压。C-源极控制电路510控制连接到存储元件的共用源极 线(在图7中标记为"c-源极")。p阱控制电路508控制p阱电压。存储在存储元件中的数据由列控制电路504读取出,且经由数据输入/输出缓冲器 512输出到外部I/O线。待存储于存储元件中的编程数据经由外部I/O线输入到数据输 入/输出缓冲器512,且传送到列控制电路504。外部1/0线连接到控制器518。将用于控制快闪存储器装置的命令数据输入到控制器518。命令数据通知快闪存储 器请求何种操作。将输入命令传送到作为控制电路515的部分的状态机516。状态机516 控制列控制电路504、行控制电路506、 c-源极控制电路510、 p阱控制电路508及数据 输入/输出缓冲器512。状态机516还可输出快闪存储器的状态数据,例如准备就绪/忙碌 (READY/BUSY)或通过/失败(PASS/失败)。控制器518连接到主机系统(例如,个人计算机、数字相机、个人数字助理及类似 物)或可与主机系统相连。所述控制器与主机通信,所述主机起始命令(例如)以将数 据存储到存储器阵列502或自存储器阵列502读取数据且提供或接收所述数据。控制器 518将所述命令转换成命令信号,所述命令信号可由作为控制电路515的部分的命令电 路514转译及执行。命令电路514与状态机516相通信。控制器518—般包含缓冲存储 器,以用于写入到存储元件阵列502或从存储元件阵列502读取的用户数据。一示范性存储器系统包括一个集成电路,所述集成电路包括控制器518;及一个 或一个以上集成电路芯片,每一者包含存储器阵列以及关联控制、输入/输出及状态机电路。存在将系统的存储器阵列及控制器电路一起集成于一个或一个以上集成电路芯片上 的趋势。存储器系统可作为主机系统的部分嵌入,或可包括于以可移除方式插入到主机 系统中的存储卡或其它封装中。所述卡可包括整个存储器系统(例如,包括控制器), 或仅包括具有关联外围电路的存储器阵列,其中控制器或控制功能嵌入于主机中。因此, 控制器可嵌入于主机中,或包括于可移除的存储器系统内。在某些实施例中,可组合图5的某些组件。此外,在各种设计中,可将图5的组件 中除存储元件阵列502以外的一者或一者以上视为管理电路。举例来说, 一个或一个以 上管理电路可包括控制电路、命令电路、状态机、行控制电路、列控制电路、阱控制电 路、源极控制电路或数据I/0电路中的任一者或组合。图6提供图5的存储元件阵列502的示范性结构。描述被分为1,024个块的NAND 快闪EEPROM。可将数据编程到不同块中,且同时自不同块读取数据。在擦除操作中, 同时擦除存储于每一块中的数据。在一设计中,块是可同时擦除的存储元件的最小单位。 在此实例中,于每一块中存在划分为偶数列及奇数列的8,512个列。还将位线划分为偶 数位线(BLe)及奇数位线(BLo)。展示了四个存储元件,其串联连接以形成NAND串。 尽管展示了在每一 NAND串中包括四个存储元件,但可使用多于或少于四个的存储元 件。 一般地,可在每一 NAND串中提供多达32或64个存储元件。NAND串的一个端 子经由选择晶体管SGD而连接到对应位线,且另一端子经由第二选择晶体管SGS连接 到c-源极线。在读取及编程操作的一配置中,同时选择4,256个存储元件。选定的存储元件具有 相同字线及相同种类的位线(例如,偶数或奇数)。所以,可同时读取或编程形成逻辑 页的532个字节的数据,且存储器的一个块可存储至少八个逻辑页(四个字线,每一者 具有奇数页及偶数页)。对于多状态存储元件来说,当每一存储元件存储两个数据位(其 中所述两个位中的每一者存储于不同页中)时, 一个块便存储十六个逻辑页。还可使用 其它大小的块及页。另外,可使用除图5及图5的那些架构之外的架构。举例来说,在 一设计中,位线并未划分为奇数及偶数位线,以使得可同时(或不同时)编程及读取所 有位线。可通过将p阱升高到擦除电压(例如,20 V)且使选定块的字线接地而擦除存储元 件。源极及位线是浮动的。可对整个存储器阵列、单独块或作为存储器装置的一部分的 存储元件的另一单位执行擦除。将电子从存储元件的浮动栅极转移到p阱区域,以使得存储元件的VTH变为负的。在读取及验证操作中,选择栅极(SGD及SGS)连接到在2.5到4.5 V范围内的电压,且未选定的字线(例如,在WL2为选定的字线时,WLO、 WL1及WL3便为未选定 的字线)升高到读取通过电压(一般是在4.5到6V范围内的电压),以使晶体管操作为 通过栅极。选定的字线WL2连接到一电压,所述电压的电平专用于每一读取及验证操
作,以便确定相关存储元件的VTH是高于还是低于所述电平。举例来说,在对两电平存
储元件的读取操作中,可使选定的字线WL2接地,以使得检测Vth是否高于OV。在对 两电平存储元件的验证操作中,将选定的字线WL2连接到(例如)0.8 V,以使得验证 V丁h是否已达到至少0.8 V。源极及p阱均处于0 V。将选定的位线(假定为偶数位线 (BLe))预充电到(例如)0.7V的电平。如果VTH高于字线上的读取或验证电平,则与 关注的存储元件相关联的位线(BLe)的电位电平便由于非传导存储元件而保持高电平。 另一方面,如果VTH低于读取或验证电平,则因为传导存储元件使位线放电,所以相关 位线(BLe)的电位电平便降低到低电平(例如,小于0.5 V)。存储元件的状态可因此 由连接到位线的电压比较器读出放大器而检测。
根据此项技术中已知的技术执行上文所述的擦除、读取及验证操作。因此,所属领 域的技术人员可改变所阐述的许多细节。还可使用此项技术中已知的其它擦除、读取及 验证技术。
如上所述,每一块均可划分为许多页。在一种方法中, 一页为一编程单位。在一些 实施方案中,个别页可划分为片段,且所述片段可包含随着基本编程操作而一次写入的 最少数目的存储元件。 一个或一个以上数据页一般存储于一行存储元件中。 一页可存储 一个或一个以上扇区。 一扇区包括用户数据及开销数据,例如,从扇区的用户数据而计 算出的错误校正码(ECC)。控制器的一部分在数据编程到阵列中时计算ECC,且在从 阵列读取数据时还使用ECC检査数据。或者,可将ECC及/或其它开销数据存储于其所 从属的与用户数据不同的页或甚至不同的块中。在其它设计中,存储器装置的其它部分 (例如,状态机)可计算ECC。
用户数据的扇区一般为512个字节,对应于磁盘驱动器中的扇区的大小。开销数据 一般为额外的16到20个字节。 一块可包括许多页,例如,8、 32、 64或更多的页。
重新编程
提供一种编程技术,其中初始编程一组存储元件,且随后进行至少一次重新编程。 举例来说,所述组可为存储元件块,所述块可作为一单位进行擦除。或,所述组可与可 不必作为一单位进行擦除的一组字线。在初始编程中,编程所述组存储元件。此外,可 在初始编程及重新编程中将存储元件编程到不同的VTH电平。在初始编程及重新编程期 间可使用任何编程技术,包括但不限于下文结合图7A与图7B、图10及图IIA到图11C所述的那些编程技术。在初始编程中已编程所述组存储元件之后,发生重新编程,其中 将所述组中的元件编程到(例如)所要的最終Vth。在初始编程与重新编程之间并不擦 除存储元件。
在一种方法中,当从存储元件读取数据时,第一组vth读取电平可用于在初始编程 中仅已编程一次的存储元件,而第二组vth读取电平可用于还已重新编程的存储元件。 第二组的对应值可高于第一组。或者,可在每一种情况下使用相同组vth读取电平。此 外,任何两个相邻vth状态之间的电压容限应足够大以容纳许多寄生现象,包括耦合、
编程干扰、读取干扰、存储元件及系统噪声、过冲、编程噪声及长期电荷滞留。另一寄
生现象为数据样式敏感效应,此涉及先前编程的存储元件的特定数据值(例如,Vth信)
的效应。由于至少耦合及过冲将减少且尚未重新编程的那些页将不久便进行重新编程,
所以重新编程可允许减小相邻vth状态之间的容限,以使得无额外容限必须致力于非编 程页的长期滞留问题。此外,经重新编程的页提供较紧密的Vth分布,所述vth分布为
所述页打开容限。净效应在于可减小存储器Vth窗口,从而允许较小的编程电压且减少
编程干扰。
图7A描绘在多状态装置中从擦除状态直接编程到编程状态的情况下的一示范组 Vth分布。在此情况下,每一存储元件在由E、 A、 B及C所表示的四种数据状态下存 储两个数据位。E描绘经擦除的存储元件的第一 Vth分布,而A、 B及C则描述经编程 的存储元件的三种Vth分布。在一设计中,E分布中的vth值为负的,而A、 B及C分
布中的vth值为正的。每一相异vth范围对应于所述组数据位的预定值。编程到存储元 件中的数据与存储元件的vth电平之间的特定关系视存储元件所采用的数据编码方案而
定。 一实例将"11"指派给Vth范園E (状态E),将"10"指派给Vth范国A (状态A), 将"00"指派给vth范围B (状态B),并将"01"指派给vth范围C (状态C)。然而, 在其它设计中,使用其它方案。
一组三个读取参考电压Vral、 Vrbl及Vrcl用于在初始编程之后从存储元件读取数 据。通过测试给定存储元件的VTH是高于还是低于Vral、 Vrbl及Vrcl,系统便可确定 存储元件的状态。还指示在初始编程中所用的一组三个验证参考阈值电压Vval、 Vvbl 及Vvcl。当将存储元件编程到状态A、 B或C时,系统将分别测试那些存储元件是否 具有大于或等于Vval、 Vvbl或Vvcl的VTH。
在一种方法(称为全序列编程)中,可将存储元件自擦除状态E直接编程为编程状 态A、 B或C中的任一者(如弯曲箭头所描述的)。举例来说,可对待编程的存储元件 群体(例如,块)首先进行擦除,以使得群体中的所有存储元件均处于擦除状态E中。虽然某些存储元件自状态E编程到状态A,但其它存储元件自状态E编程到状态B及/ 或自状态E编程到状态C。如所提及的,耦合及其它效应往往使给定存储元件的Vth上升,从而使(例如)块 中的一组存储元件的vth分布上升及扩宽。此可从与图7B的那些Vth分布相比的團8A 的相对较宽的Vth分布中看出。图7B描绘在重新编程之后图7A的所述示范组Vth分布。在重新编程期间,可使 用第二组V丁h验证电平Vva2、 Vvb2及Vvc2,所述验证电平以递增方式分别比Vval、 Vvbl及Vvcl高(例如)0.4 V。每 一状态的验证电压在初始编程与重新编程之间的偏差 可通过存储器特性确定。举例来说,偏差可为每一状态的阈值电压分布的约一半。因此, 如果状态"A"的阀值电压分布一般为0.8 V宽,则可使用0.4 V的偏差。因此,如果 Vval为0.6V,则Vva2可为1.0V。对于每一状态来说验证电平之间的增量无需相同。在重新编程之后,每一状态的vth分布的下端基于递增式较高阈值电压验证电平而上移,以使得Vth分布変紫。因此,可初始编程一组存储元件,且在完成初始编程之后,可重 新编程所述组存储元件,以实现图7B的紧密的Vth分布。具体来说,重新编程减小每一状态的vth值的耦合诱发扩展,因为与初始编程期间 所添加的电荷量相比,向存储元件添加较小的电荷量。此外,如果存储元件的vth由于耦合而在此刻高于其原来在初始编程中被最初编程且锁定时的Vth,则其在重新编程期间在被锁定之前需要较少编程。同样,给定存储元件的相邻者在重新编程期间将不会经历其vth值的显著耦合诱发偏移。结果,存储元件可在重新编程中更为准确地编程到所要的最終Vth。重新编程减轻所有类型的耦合效应,无论是由字线与字线耦合、位线与位线耦合还是由与对角相邻存储元件的耦合所引起的。此外,如果存储元件由于编程行 为的不一致性或由于与最后一个验证操作相关联的噪声而被过编程,则其在重新编程期 间便需要较少编程脉冲来达到所要的最终状态。重新编程仅将少量电荷放置于正被编程的每一存储元件中。因为在重新编程期间Vth変化狡小,所以与初始编程期间相比,锁 定事件一般较早地在较低控制栅极编程脉冲电压下发生。可参看图8及图9而进一步了 解重新编程的益处。图8描绘用于编程非易失性存储装置的一系列编程脉冲。在常见编程方法中,将编 程电压Vpgm以一系列脉冲施加到存储元件的控制栅极。在一种可能方法中,脉冲的量 值随每一连续脉冲增加预定步长(例如,0.4 V)。 Vpgm可施加到快闪存储器元件的控 制栅极(或在某些情况下施加到引导栅极)。Vpgm提供为量值随时间增加的一系列脉冲。 在编程脉冲之间的时期中,进行验证操作。即,在连续编程脉冲之间读取经并行编程的一组存储元件(例如,字线上的特定存储元件)的每一存储元件的编程电平,以确定其 是等于还是大于存储元件被编程到的验证电平。对于多状态快闪存储器元件阵列来说, 可对元件的每一状态执行验证步骤,以确定存储元件是否己达到其数据关联验证电平。 举例来说,能够在四个状态中存储数据的多状态存储元件可能需要对三个比较点执行验 证操作。
如果存储元件并未在给定数目的脉冲(此按照惯例是固定的)之后达到所要编程电 平,则宣告错误状况。Vpgm的量值(包括初始值、电压步长(如果适用)及待在宣告错 误状况之前施加的脉冲的最大数目)的选择涉及各种因素之间的折衷。具体来说,如果 初始值或步长过大,则某些存储器元件可能会被过编程,从而导致不准确的vth,而如 果初始值或步长过小则会导致较长的编程时间。 一般地,非易失性存储器的用户希望存 储器较快地进行编程。此外,将不同存储器元件编程到所要状态所需的脉冲的数目可不 同。较慢存储器元件将需要较多脉冲,而较快存储器元件将需要较少脉冲。为了具有足 够的容限或缓冲以使得电路小片拣选合格率是可接受的, 一般容许相对较大数目的
Vpgm脉冲。举例来说,在90nm装置中,尽管多状态存储器元件装置中的大多数上部 页可在十八个脉冲内进行编程,但是脉冲的最大容许数目可设定为(例如)二十四个, 以提供六个脉冲的容限。
举例来说,假设初始编程中给定存储元件在第16个编程脉冲时达到验证电平且被 锁定而无法接收其它Vpgm脉冲,如所指示。可参看图9而了解每一 Vpgm脉冲下存储 元件的阚值电压变化(AVth),其中图9描绘通常的非易失性存储元件的线性及非线性 编程方案(regime)。在初始Vpgm脉冲期间,存储元件处于非线性方案中,其中VTH 的增加相对于编程脉冲的数目来说为非线性的。基本上,施加到控制栅极的电压不足以 允许发生隧穿。当施加额外Vpgm脉冲时,AVth緩慢増加,直到其达到线性编程方案, 其中AVth随着后矮Vpgm脉冲变得近似恒定。在此方案中,Vpgm增加1 V理论上会导 致Vth増加1V。编程噪声及读取噪声往往使Vth的増加量随机化。同样,耗尽效应往 往在Vpgm每增加1 V的情况下将线性方案中的AVth減小到小于1 V的值。举例来说, 在线性方案中,AVra/AVpgm可接近于0.8。然而, 一旦处于线性方案中,存储元件便 在初始编程期间随着每一额外Vpgm脉冲而迅速达到锁定VTH (验证电平)。较快编程存 储元件将比较慢编程存储元件先达到线性方案。视开始Vpgm的值而定,某些极快存储 元件可在第一较少Vpgm脉冲下以快得多的速率进行编程,直到其减慢而接近线性方案。 开始Vpgm可能需要设定为足够地低以避免此情形。
在重新编程期间,存储元件的VTH仅需要增加相对较小的值,例如,0.4 V。 一般地,存储元件在重新编程期间将处于非线性方案中。在大多数情况下,预期重新编程中比初 始编程中需要一个或一个以上较少编程脉冲来达到较高锁定VTH。在所提供的实例中, 存储元件在重新编程期间于第15个Vpgm脉冲时达到锁定VTH,比初始编程中早一个脉 冲。
举例来说,在目前实例中,假设vth在初始编程及重新编程期间如表l及表2所示 分别随着Vpgm而变化。存储元件从具有-2 V的VTH的状态E编程到状态A,对于初始 编程状态A具有1.1 V的锁定VTH (Vval,图7A),而对于重新编程状态A具有1.3 V 的锁定VTH(Vva2,图7B)。为了简单起见,Vpgm的步长在此实例中为1.0 V。可以看
出,存储元件在初始编程中于第16个脉冲之后被锁定,此时其vth首次超过1.1V。存
储元件在重新编程中于第15个脉冲之后被锁定,此时其vth首次超过1.3 v。
表l
Vpgm脉冲数目 VTH (V): AVTH (V),脉冲到脉冲
1-12 -2 0
13 -1.5 0.5
14 -0.75 0.75
15 0.25 1.0
16 1.25 1.0 表2
Vpgm脉冲数目 VTH (V): AVTH (V),脉冲到脉冲:
1-14 1.25 0
15 1.35 0.1
因此,当在重新编程期间于非线性方案中操作时,效果类似于使用较小Vpgm步长,
因为比起初始编程来说,vth以较小步长逐渐上升到所要值。此避免过冲,且允许对v丁h
进行较为精细的控制。结果,可实现较为紧密且较为准确的Vth分布。
将结合图10及图IIA到图IIC而论述可使用的额外示范性编程技术。 图10说明编程多状态存储元件的两遍式技术的一实例,其中所述多状态存储元件 存储两个不同的数据页的数据下部页及上部页。描绘四种状态状态E(ll)、状态A (10)、状态B (00)及状态C (01)。对于状态E来说,两个页均存储"1"。对于状态A 来说,下部页存储"0",且上部页存储"l"。对于状态B来说,两个页均存储"0"。对 于状态C来说,下部页存储"l",且上部页存储"0"。尽管已指派特定位样式到所述状
态的每一者,但还可指派不同的位样式。在第一遍编程中,存储元件的vth电平根据待编程到下部逻辑页中的位而设定。如果所述位为逻辑"l",则vth不改变,因为其由于
早先已得以擦除而处于适当状态中。然而,如果待编程的位为逻辑"0",则如箭头1110 所示,存储元件的阈值电平便增加到状态A。
在第二遍中,存储元件的vth电平根据编程到上部逻辑页中的位而设定。如果上部 逻辑页位将存储逻辑"1",则不发生编程,因为视下部页位的编程而定,存储元件处于 状态E或A的一者中,所述两个状态均携载上部页位"l"。如果上部页位将为逻辑"0", 則Vth偏移。如果第一步骤使得存储元件保留于擦除状态E中,则在第二阶段中,编程 存储元件,以使得vth如箭头1130所描绘增加到处于状态C内。如果存储元件由于第
一遍编程而已编程到状态a,则在第二步骤中进一步编程存储元件,以使得vth如箭头
1120所描绘增加到处于状态B内。第二遍的结果在于将存储元件编程到如下状态指定 存储上部页的逻辑"0",而不改变下部页的数据。所述两遍发生于初始编程及重新编程 中。
在一种方法中,可建立一系统以在写入足够数据填充整个页时执行全序列写入。如 果对于全页来说未写入足够数据,则编程过程可使用所接收的数据编程下部页。当接收 后续数据时,系统将随后编程上部页。在又一方法中,系统可在编程下部页的模式中开 始写入,且如果随后接收足够数据来填充字线的存储元件中的所有或大多数元件,则转 换为全序列编程模式。由发明者塞吉A哥洛比特(SergyA. Gorobets)及李燕(YanLi) 在2004年12月14日申请的标题为"使用早期数据的非易失性存储器的管线编程 (Pipelined Programming of Non-Volatile Memories Using Early Data)"的美国专禾U申请案 第11/013,125号中揭示了所述方法的更多细节,所述专利的全部内容以引用的方式并入 本文中。
一旦已完成初始编程,图10的相对较宽vth分布便类似于图7A的Vth分布。随后,
可执行重新编程,从而使图IO的相对较宽vth分布变紧密到与图7B的vth分布相类似
的Vth分布。
图IIA到图IIC描绘用于编程非易失性存储器的另一过程,其通过以下方式减少浮
动栅极到浮动栅极的耦合对于任一特定存储元件,在针对先前页写入到邻近存储元件
之后,相对于特定页而写入到所述特定存储元件。所示过程针对初始编程及重新编程而 执行。
在一示范性实施方案中,非易失性存储元件的每一者使用四个数据状态存储两个数
据位。举例来说,假设状态E为擦除状态而状态A、 B及C为编程状态。状态E存储数 据11,状态A存储数据01,状态B存储数据10,而状态C存储数据OO。此为非格雷
20(Gray)编码的一实例,因为两个位在邻近状态A与B之间变化。还可使用数据到物理 数据状态的其它编码。每一存储元件存储来自两个数据页的位。出于参考的目的,将这 些数据页称为上部页及下部页;然而,其可被给予其它标记。对于状态A来说,上部页 存储位0,而下部页存储位l。对于状态B来说,上部页存储位l,而下部页存储位0。 对于状态C来说,两个页均存储位数据0。编程过程具有两个步骤,所述两个步骤发生 于初始编程及重新编程中。在第一步骤中,编程下部页。如果下部页将保持数据1,则
存储元件状态保持于状态e下。如果数据将编程到0,则升高存储元件的vth,以使得
将存储元件编程到状态B'。因此,图IIA展示将存储元件从状态E编程到状态B',状 态B'表示临时状态B;因此,将验证点描述为Vvb',其低于图11C中所述的Vvbl。
在一设计中,在存储元件从状态E编程到状态B'之后,相对于其下部页而编程邻近 字线上的其相邻存储元件。在编程相邻存储元件之后,浮动栅极到浮动栅极的耦合效应 将升高考虑中的存储元件的表观VTH,所述存储元件在状态B'中。此将具有如下影响 使状态B'的Vra分布扩宽到图IIB所绘的Vth分布。当编程上部页时,将至少部分地纠
正vth分布的此表观扩宽。
图UC描绘编程上部页的过程。如果存储元件处于擦除状态E中且上部页将保持于 1,则存储元件将保持于状态E中。如果存储元件处于状态E中且其上部页数据将编程 到0,则将升高存储元件的VTH,以使得存储元件处于状态A中。如果存储元件处于具 有中间vth分布的状态B'中且上部页数据将保持于1,则存储元件将编程到最终状态B。 如果存储元件处于具有中间vth分布的状态B'中且上部页数据将变为数据0,则将升高 存儲元件的Vth,以使得存储元件处于状态C中。图IIA到图IIC所绘的过程减少浮动 栅极到浮动栅极的耦合效应,因为相邻存储元件的仅上部页编程将对给定存储元件的表
观vth产生影响。替代状态编码的一实例为在上部页数据为1时,从中间vth分布移到
状态C,而在上部页数据为0时移到状态B。尽管图11A到图11C相对于四个数据状态 及两个数据页提供一实例,但所教示的概念可应用于具有多于或少于四个状态及多于或 少于两个页的其它实施方案。可在2005年4月5日申请的标题为"在非易失性存储器 的读取操作期间补偿稱合(Compensating For Coupling During Read Operations Of Non-Volatile Memory)"的美国专利申请案第11/099, 133号中找到关于各种编程方案及浮 动栅极到浮动栅极的耦合的更多细节。
虽然图IIA到图IIC的编程技术减少耦合效应,但由于相邻存储元件的上部页编程 而仍会产生某些耦合。因此,图11C的Vth分布仍然竟于必要的。为了解决此问题,一 旦已完成初始编程,便可执行重新编程,从而产生与图7B的vth分布相类似的较紧密Vth分布。
图12为一流程图,其描述使用初始编程及重新编程来编程非易失性存储元件块的 过程的一实施例。虽然所述过程是就存储元件块来描述的,但其一般可应用于任何组存 储元件。在步骤1200处,开始块的初始编程,例如,响应于用以存储数据的命令。在 步骤1205处,使用例如Vval、 Vvbl及Vvcl (图7A)的第一较低组阈值电压(VTH) 验证电平,例如,通过将其加载到控制的工作存储器中。另外,使用第一较低通过电压 Vpassl。下文将结合图14到图14F而进一步论述在初始编程及重新编程期间不同通过 电压的使用。在步骤1210处,编程块中的第一数据页,且在步骤1215处,相应地为所 述页设定旗标位(页旗标l)。请注意,在一种方法中,可于步骤1210处在第一数据页 的编程期间设定页旗标。
在一种可能方法中,例如一个以上旗标的信息可用来记住块的部分(例如,页)的 编程状态。所述旗标为编程状态信息的形式。编程状态信息可指示页是否已经受编程及 /或重新编程,以使得控制可确定哪些页需要重新编程而哪些页可跳过。旗标应具有足够 的详尽度以传达所要信息。举例来说,每页一个位足以在仅存在一个重新编程循环时指 示针对所述页是否已发生重新编程。旗标可(例如)存储于字线的存储有页的存储元件 的一者中。用于每一页的旗标可为一位或一组位。
另外或另一选择为,可提供块电平处的旗标以指示针对作为整体的存储元件块或其 它单位是否已完成重新编程。在一种方法中,块旗标可为两个位,其中 个位指示初始 编程是否已完成,而另一位指示重新编程是否已完成。如果执行一次以上重新编程,则 额外位可用于每一额外重新编程。当块旗标存储于编程块的外部时,可使用块旗标。
一般来说,无需块旗标,因为块中的第一及最后一个经编程页的页旗标可用来指示 块是否已编程或重新编程。举例来说,第一编程页的第一位及最后一个编程页的对应第 一位可指示是否已发生初始编程。如果第一编程页的位指示尚未针对第一编程页执行初 始编程,则可断定尚未针对块的任何部分执行初始编程。如果位指示已针对第一编程页 执行初始编程但未针对最后一个页,则可断定已针对块的一部分执行初始编程。如果最 后一个编程页的位指示已针对最后一个页执行初始编程,则可断定已针对整个块执行初 始编程。
类似地,第一编程页的第二位及最后一个编程页的对应第二位可指示是否已发生重 新编程。如果第一编程页的位指示尚未针对第一编程页执行重新编程,则可断定尚未针 对块的任何部分执行重新编程。如果位指示已针对第一编程页执行重新编程但未针对最 后一个编程页,则可断定已针对块的一部分执行重新编程。如果最后一个编程页的位指示已针对最后一个编程页执行重新编程,则可断定己针对整个块执行重新编程。
当尚未重新编程整个块时,便使用较低读取电压,而对于已重新编程整个块的情况 来说,便使用较高读取电压。当块部分重新编程时,控制可执行对已经过二进制编码的 旗标存储元件的二进制读取,以确定用以读取页的适当字线读取电压。在一种方法中, 较低读取电压用于尚未重新编程的页,而较高电压用于已重新编程的页。
单个多电平存储元件的不同状态的每一者可用于存储编程状态信息,以使得可指定 多个旗标值。或块旗标可使用指示块是否已重新编程的单个位。 一般来说,块旗标可编 码于二进制或多电平存储元件中,且可驻留于同一块内,例如,在块的第一页中或另一 块或位置中。在一种可能的方法中,对于多电平存储元件来说,旗标位可使用(例如) 作为最远离状态的状态E及C,以提供较大可靠性。
因此,在步骤1215处,为当前编程页设定页旗标(页旗标1),以指示其编程状态。 设定旗标包括如果其现有状态所识别的编程状态信息是正确的,则便将所述旗标保留 于所述状态下。举例来说, 一个位可指示页是否已重新编程。在初始编程之后,所述位 将保留于此状态下。在重新编程之后,所述位改变到零值。
在决策步骤1220处,对是否已针对所述块完成初始编程作出确定。举例来说,此 可通过如下方式确定确定块中的最后一个字线(例如,NAND串的块中的漏极侧字线) 上的存储元件何时己被编程。如果初始编程尚未完成,则在步骤1225处编程下一数据 页,且在步骤1215处为所述下一页设定指示仅已执行初始编程的页旗标(页旗标1); 即,重新编程尚未执行。编程每一连续页,直到针对所述块己完成初始编程,此时,在 一中方法中可在步骤1230处为块设定块旗标(块旗标1),且在步骤1235处开始重新编 程。此块旗标为编程状态信息的形式。或者,如前所述,无需使用块旗标。请注意,在 一种方法中,可在最后一个数据页的编程(步骤1225)中设定块旗标。在步骤1240处, 使用例如Vva2、 Vvb2及Vvc2 (图7B)的第二较高组阈值电压(VTH)验证电平。另夕卜, 使用第二较高通过电压Vpass2或第二较高组通过电压。
在决策步骤1245处,对其它任务是否是待决的作出决策。如果存在其它待决任务, 则在步骤1250处开始等待,直到不存在其它待决任务。 一般来说,为了避免性能损失, 当管理块的编程的至少一个电路(例如,图5的控制电路515)已进入备用模式且无其 它待决任务或至少无其它待决的较高优先级任务时,便可在非实时基础上发生重新编 程。即,重新编程不必紧跟于初始编程之后,且一旦开始,其在重新编程所有存储元件 时不必持续进行。举例来说,在暂时停止且随后重新开始重新编程下一数据页之前,可 一次重新编程整数个数据页,例如, 一个或一个以上页。在块已完成重新编程之前可多次发生停止及重新开始。因此,在管理非易失性存储元件的块或其它单位的编程的至少 一个电路进入备用模式之后,及/或当不存在其它待决的较高优先级任务时,可在不同时 间处执行重新编程。或者,重新编程可在实时基础上发生,紧接于初始编程之后及/或从 开始连续进行到结束。
具体来说,当不存在用以读取或写入数据的其它待决请求或不存在其它待决的较高 优先级任务(例如,包括垃圾收集或磁盘碎片整理的任务)时,便可发生重新编程。因 此,重新编程可作为后台处理而发生,所述后台处理在资源可用时运行,并且视资源允 许而发生及停止。举例来说,可考虑数字相机中的非易失性存储装置。当用户拍照时, 控制器便在初始编程中忙于将图像数据存储于非易失性存储装置的至少第一块中,此 后,在用户决定拍摄另一张照片之前一般存在等待时间。可在所述等待时间中执行重新 编程。如果用户在重新编程完成之前拍摄另一张照片,则可暂时中止重新编程,以允许 (例如)在第二块的初始编程中写入新的图像数据。 一旦此完成,便可恢复第一块的重 新编程。随后,可起始第二块的重新编程。对于一个以上块来说还可并行发生重新编程。 类似地,如果用户将相机电源关闭,则可暂时中止重新编程,直到相机重新开机且并未 忙于另一任务。
在步骤1255处,使用新的VTH验证电平及通过电压来重新编程第一数据页,且在 步骤1260处,为所述页设定页旗标(页旗标2),例如以指示针对所述页已发生重新编 程。页旗标为编程状态信息的形式。请注意,在一种方法中,可于步骤1255处在数据 页的编程期间设定页旗标。在决策步骤1265处,如果针对块已完成重新编程,则可在 一种方法中于步骤1270处为块设定块旗标(块旗标2),且重新编程完成。所述块旗标 为编程状态信息的形式。或者,如前所述无需使用块旗标。请注意,在一种方法中,可 于数据页的编程期间设定块旗标。另外,在步骤1285处重新编程下一数据页,除非在 决策步骤1275处有其它任务待决,在此情况下,于步骤1280处实施等待。重新编程块 中的每一连续页且在步骤1260处设定页旗标,直到块的重新编程完成。 一般来说,可 在页边界上中止及重新开始重新编程。如果用户试图在编程一页的中途关闭装置,则关 闭将会被延缓,直到当前页的编程完成。实际上,此时期不到一秒,因此对用户来说并 不明显。图13为一流程图,其描述使用一系列编程脉冲编程非易失性存储装置的过程 的一实施例。所述过程可用于编程数据页,例如如图12的步骤1210、 1225、 1255及1285 处所指示的。 一般同时对多个字线(例如,块)进行擦除过程,同时在逐字线的基础上 进行编程。 一并参见图5,在步骤1300处,由控制电路515发出"数据加载"命令,且 将其输入到命令电路514,从而允许将数据输入到数据输入/输出缓冲器512。所述输入数据被辨识为命令,且由状态机516经由输入到命令电路514的命令锁存信号而予以锁 存。在步骤1305处,将指定页地址的地址数据从控制器或主机输入到行控制器或解码 器506。所述输入数据被辨识为页地址,且经由受到输入到命令电路514的地址锁存信 号的影响的状态机516进行锁存。在步骤1310处,将用于经寻址页的编程数据页输入 到数据输入/输出缓冲器512以用于编程。举例来说,在一实施例中可输入532个字节的 数据。所述数据锁存于适当寄存器中以用于选定的位线。在一些实施例中,所述数据还 可锁存于第二寄存器中,以供选定的位线用于验证操作。在步骤1315处,"编程"命令 是由控制器予以发出且输入到数据输入/输出缓冲器512。所述命令由状态机516经由输 入到命令电路514的命令锁存信号而锁存。
由"编程"命令进行触发,使用如图8所示的施加到适当字线的步进脉冲将步骤1315 中锁存的数据编程到状态机516所控制的选定存储元件中。在步骤1320处,将施加到 选定字线的编程脉冲电压电平Vpgm初始化到开始脉冲(例如,12 V),且将由状态机 516所保持的编程计数器PC初始化为0。可(例如)通过适当地编程电荷泵而设定初始 编程脉冲的量值。在步骤1325处,将第一 Vpgm脉冲施加到选定的字线。如果逻辑"0" 存储于特定数据锁存器中而指示应编程对应存储元件,则使对应位线接地。另一方面, 如果逻辑"1"存储于特定锁存器中而指示对应存储元件应保留于其当前数据状态中, 则将对应位线连接到VDD以禁止编程。
在步骤1330处,验证选定的存储元件的状态。如果检测到选定的单元的目标阈值 电压已达到适当电平,则将存储于对应数据锁存器中的数据改变到逻辑"1"。如果检测 到阈值电压尚未达到适当电平,则不改变存储于对应数据锁存器中的数据。以此方式, 在其对应数据锁存器中存储有逻辑"1"的位线无需编程。当所有数据锁存器均存储逻 辑"1"时,状态机便知道所有选定单元均已编程。在步骤1335处,检査所有数据锁存 器是否均存储逻辑"l"。如果是,则编程过程成功完成,因为所有选定存储元件均被编 程且验证到其目标状态。在步骤1340处报告"通过(PASS)"状态。如果存储元件的预 定部分被编程且验证,则也可报告通过。
视情况,可甚至在某些存储器元件尚未达到其所要状态时于步骤1335处宣告通过。 因此,即使某些数目的单元无法达到所要状态,也可在达到最大数目的循环之前停止编 程。
如果在步骤1335处确定并非所有数据锁存器均存储逻辑"1",则继续编程过程。 在步骤1345处,对照编程极限值PCmax而检查编程计数器PC。编程极限值的一实例为 20个脉冲,然而,其它值也可用于各种实施方案中。如果编程计数器PC已达到PCmax,则在步骤1350处将编程过程标记为失败且报告失败状态。举例来说,失败状态可发生 在未成功编程位的数目大于预定数目时。如果编程计数器PC小于PCmax,则在步骤1355 处使Vpgm电平增加步长且递增编程计数器PC。所述过程随后循环回到步骤1325以施 加下一个Vpgm脉冲。
所述流程图描绘可用于二进制存储元件的编程方法。举例来说,对于多电平存储装 置来说,多个编程或验证步骤(例如,结合图10及图IIA到图IIC所述的)可用于所 述流程图的单个迭代中。可针对编程操作的每一步骤执行步骤1320到1355。在第一步 骤中,可施加一个或一个以上编程脉冲,且验证其结果以确定单元是否处于适当中间状 态中。在第二步骤中,可施加一个或一个以上编程脉冲,且验证其结果以确定单元是否 处于适当最终状态中。在成功的编程过程结束时,对于编程的存储元件来说,存储元件 的阈值电压应处于一个或一个以上阈值电压分布内,或对于擦除的存储元件来说,应处 于一阈值电压分布内。
增压技术
图14A到图14F描绘针对初始编程及重新编程使用不同通过电压的增压技术。这些 技术涉及在编程期间施加通过电压Vpass到未选定的字线。 一般地,在重新编程期间, 其可有助于相对用于初始编程的通过电压Vpassl而增加通过电压Vpass2,因为在重新 编程期间,驻留于漏极侧字线下的存储元件不再被擦除。结果,必须耗费更多的Vpass 增压电位,来达到此刻可编程到较高阈值电压的这些存储元件的反转状况。升高的Vpass 电压可在称为偏行干扰(off-row-disturb)的过程中导致非选定字线下的擦除存储元件的
无意编程。然而,如果存储元件VTH窗口由于块重新编程的优点而减小,则此可抵消较
高Vpass电压的影响。举例来说。Vpass2可超过Vpassl 0.5 V。在一可能实施方案中, Vpass2可为7到IOV。而Vpassl可为6.5到9.5 V。 一般来说,相同或不同的Vpass值 可施加到不同的字线。举例来说,施加到未选定字线的Vpass除了依据执行初始或重新 编程而改变之外,其还可依据未选定字线相对于选定字线及/或相对于块边界的位置而改 变。
因此,图14A及图14B展示在自增压技术下施加到字线以分别用于初始编程及重新 编程的电压。在自增压的情况下,与未选定的位线相关联的沟道是电隔离的,且将通过 电压Vpassl或Vpass2在编程期间施加到未选定的字线。未选定的字线耦合到与未选定 的位线相关联的沟道,从而使得电压(例如,在初始编程及重新编程中分别为7.5或8 V) 存在于未选定的位线的沟道中。因此,自增压致使电压增压存在于沟道中,所述电压增 压往往跨越隧道氧化物而降低电压且因此减少编程干扰。举例来说,假设在一简化实例中存在四个字线WL0到WL3,且当前正通过编程电压Vpgm编程WL2上的存储元件。 在此情况下,通过施加Vpassl或Vpass2到WL0、 WL1及WL3而实现自增压。实际上, 可将电压可施加到交替字线的相反端。
图14C及图14D展示在局部自增压(LSB)技术下施加到字线以分别用于初始编程 及重新编程的电压。图14E及图14F展示在擦除区域自增压(EASB)技术下施加到字 线以分别用于初始编程及重新编程的电压。LSB及EASB试图通过使先前编程的存储元 件的沟道与受禁存储元件的沟道隔离而解决常规自增压的缺点。举例来说, 一并参见图 4,如果正编程存储元件424,则LSB及EASB便试图通过使存储元件444的沟道与先 前编程的存储元件(445及446)隔离而禁止存储元件444的编程。对于SB、 EASB及 LSB增压方法或这些增压方法的变化形式来说,用于正编程的存储元件的位线接地或连 接到接近于0V (—般处于0到1 V范围中)的另一电压,而NAND串中具有被禁止的 存储元件的位线处于一般为约1.5到3 V的Vdd下。编程电压Vpgm (例如,20 V)连 接到选定的字线。对于LSB来说,与选定的字线相邻的字线处于OV下或接近于OV, 而剩余的非选定字线处于Vpassl或Vpass2下。举例来说,位线421可处于0V下,而 位线441处于Vdd下。漏极选择SCG处于Vsgd (—般为2.5到4.5 V)下,而源极选择 SGS处于OV下。参见图14C及图14D,选定的字线WL2处于Vpgm下,而相邻字线 WL1及WL3处于0 V下,且其它字线(例如,WLO)处于Vpassl或Vpass2下。
LSB模式的缺点在于选定的字线下的增压沟道电压可极高,因为沟道的部分与未选 定的字线下的其它沟道区域隔离,且因此增压电压主要由高编程电压Vpgm确定。由于 高增压,所以可在偏压到O V的字线附近发生带对带隧穿或GIDL。沟道增压量可通过 使用EASB而限制在较低值上。EASB类似于LSB,除了仅源极侧相邻字线处于0 V下。 举例来说,参见图14E及图14F,选定的字线WL2处于Vpgm下,而源极侧相邻字线 WL1处于0V下,且其它字线(例如,WL0及WL3)处于Vpassl或Vpass2下。在使 用此方法的情况下,选定的字线下的沟道区域与选定的存储元件的漏极侧相邻字线下的 沟道区域相连,且因此沟道增压主要由施加到未选定字线的通过电压确定,而非如LSB 的情况一样由Vpgm确定。漏极侧相邻字线WL3处于Vpassl或Vpass2。如果Vpass过 低,则沟道中的增压将不足以防止编程干扰。如果Vpassl或Vpass2过高,则可编程选 定的NAND串(位线上为OV)中的未选定字线,或可由于GIDL而发生编程干扰。
使用旗标确定适当读取电压
图15为一流程图,其描述使用旗标读取非易失性存储装置块中的数据页的过程的 一实施例。虽然所述过程是就存储元件块来描述的,但其一般可应用于任何组存储元件。偶尔,视需要读取块中的数据。可从已完成初始编程及/或重新编程的块中的页读取数据。 当在重新编程中使用较高VTH验证电平时,便可在读取数据时使用较高读取电平。因此, 需要在读取页之前知道其编程状态。
为此目的,每一页可具有(例如)驻留于同一页中的专用二进制编码存储元件,所 述存储元件的二进制状态用作旗标。当读取操作进行到新的块中时,所述块的第一页可 在假设所述页已经过块重新编程的情况下进行读取。如果读取的结果另有指示,则可使 用较低组读取电平再次读取页。后续页可能与第一页具有相同编程状态(重新编程或未 重新编程)。因此,其可在对应于第一页的模式中读取,直到错误校正码(ECC)错误 提高使用错误页状态的可能性,在此情况下,块中的页及所有后续页可在替代读取电压 下读取。此外,在读取任一页之后,可对照假设的读取电压而检查其旗标的状态,且如 果发现矛盾,则可使用替代读取电压重新读取页。即使第一不当读取并未导致ECC错 误,也可进行此行为。
在一示范性实施方案中,于步骤1500处,控制开始读取数据页。在步骤1505处, 读取页所处的块的块旗标,以确定编程状态。或者,如结合图12所述的,可读取一个 或一个以上页旗标以确定编程状态。在步骤1510处,如果块/页旗标指示针对块己完成 重新编程,则在步骤1535处使用第二较高组VTH读取电平。举例来说,这些读取电平 可为来自图7B的Vra2、 Vrb2及Vrc2。在步骤1540处,使用第二较高组VTH读取电平 读取数据页。如果在步骤1545处将读取块中的额外页且重新编程已完成(步骤1510), 则使用在步骤1535处所获得的第二较高组VTH读取电平于步骤1540处读取额外数据页。 如果不存在其它页要读取,则在步骤1550处结束读取过程。
另一方面,如果在步骤1510处块/页旗标并未指示针对块已完成重新编程,则在步 骤1515处读取页旗标,以在步骤1520处确定针对所述页是否仅完成初始编程,或在步 骤1530处确定针对所述页是否还己完成重新编程。如果仅己完成初始编程,则在步骤 1525处使用第一较低组VTH读取电平。举例来说,这些读取电平可为来自图7A的Vral、 Vrbl及Vrcl。如果重新编程也已完成,则如前所述,在步骤1535处使用第二较高组 V丁H读取电平,且在步骤1540处读取数据页。重复所述过程,直到不再读取额外页。因 此,适当读取电平可基于其关联编程状态而用于块中的每一页。
使用错误计数确定适当读取电平
图16为一流程图,其描述使用错误计数读取非易失性存储装置块中的数据页的过 程的一实施例。虽然所述过程是就存储元件块来描述的,但其一般可应用于任何组存储 元件。在此方法中,页或块电平旗标无需分别识别页或块的编程状态。替代地,控制电路可读取假设有给定编程状态(例如,仅已完成初始编程或也已完成重新编程)的页, 且依赖于错误计数来确定假设是否正确。如果确定假设是不正确的,且使用了错误的读 取电压,则使用替代组的读取电压重新读取存储元件。
在一示范性实施方案中,于步骤1600处,控制开始读取数据页。在步骤1605处, 使用默认组的VTH读取电平,例如,来自图7A的较低电平Vral、 Vrbl及Vrcl或来自 图7B的较高电平Vra2、 Vrb2及Vrc2。在步骤1615处,使用默认或假设的VTH读取电 平读取页,且在步骤1620处确定页的错误计数。举例来说,错误计数可基于错误校正 或检测码所检测到的错误。例如海明(Hamming)码的错误校正码可检测并校正某些错 误,而错误检测码(例如,使用奇偶校验位或校验和的那些错误检测码)可仅检测错误 而不将其校正。举例来说,如前文结合图6所论述的,页可包括具有关联ECC数据的 许多数据扇区。当将扇区写入到存储元件时,便写入额外错误校正或检测位。这些位从 使用错误校正或检测码的数据扇区产生。随后,当读取扇区时,便还读取随附的错误校 正或检测位。扇区数据随后通过错误校正或检测码而运行,以查看输出是否与错误校正 或检测位一致。如果输出不一致,则扇区中存在错误。因此,可基于针对扇区或其它单 位所检测到的错误数目而产生错误计数。计数可包括所有检测到的错误,例如,包括可 校正的那些错误,或仅包括无法校正的错误。计数可表达为原始计数、百分比或其它度
在步骤1625处,如果错误计数超过阈值,则可断定所用的默认组VTH读取电平不 正确。在此情况下,于步骤1630处使用替代组的VTH读取电平。举例来说,如果默认 组包括来自图7A的较低读取电平Vral、 Vrbl及Vrcl,则替代组可包括来自图7B的较 高读取电平Vra2、 Vrb2及Vrc2。相反,如果默认组包括较高读取电平,则替代组可包 括较低读取电平。所述方法可还可扩展到一个以上替代组读取电平。在步骤1635处, 使用替代读取电平重新读取页。如果在步骤1640处将读取额外页,则在步骤1615处使 用最近所用组的读取电平读取页,且在步骤1620处确定错误计数。所述过程按所述方 式进行。在步骤1625处,如果错误计数并未超过阈值,且如果在步骤1640处不存在要 读取的额外页,则在步骤1645处结束所述过程。如果在步骤1640处存在要读取的额外 页,则在步骤1615处使用最近所用组的读取电平读取页。
错误阈值可基于特定存储器装置的经历而设定于一电平,其中虑及一般在使用正确 读取电平时所经历的错误计数。当错误计数与一般在使用正确读取电平时所经历的错误 计数偏离规定量时,便可认为所述错误计数指示不正确的读取电平。可使用测试、建模 及实验来设定适当阈值。还可能确定使用替代读取电平时的错误计数,且将其与使用默认读取电平时的错误计数相比较。产生较低错误计数的读取电平可随后用作最终读取电 平。
出于说明及描述的目的,已提供对本发明的以上详细描述。其并非意在为详尽的或 将本发明限制为所揭示的精确形式。根据以上教示许多修改及变化为可能的。选择所述 实施例以便最好地阐释本发明的原理及其实际应用,从而使所属领域的其他技术人员能 够在各种实施例中最好地使用本发明,并在适合于预期特定用途的各种修改下最好地使 用本发明。希望本发明的范围由所附的权利要求书所界定。
权利要求
1.一种用于操作非易失性存储装置的方法,其包含在初始编程中经由多个字线而编程多个非易失性存储元件,从所述多个字线的第一者开始,且连续进行到每一下一个字线,直到到达所述多个字线的最后一者;及在完成所述初始编程之后,经由所述多个字线而重新编程所述多个非易失性存储元件。
2. 根据权利要求l所述的方法,其中通过以下方式而重新编程所述多个非易失性存储元件再次从所述多个字线的所 述第一者开始,且连续进行到每一下一个字线,直到到达所述多个字线的所述最后一者。
3. 根据权利要求l所述的方法,其进一步包含当在所述初始编程中编程与所述多个字线的给定一者相关联的非易失性存储元 件时,将第一通过电压施加到所述多个字线的至少一个其它字线,且在所述重新编 程中,当编程与所述多个字线的所述给定一者相关联的非易失性存储元件时,将不 同于所述第一通过电压的第二通过电压施加到所述至少一个其它字线。
4. 根据权利要求3所述的方法,其中所述第二通过电压高于所述第一通过电压。
5. 根据权利要求1所述的方法,其中在所述初始编程中,使用第一阔值电压验证电平来编程所述多个非易失性存储元 件,且在所述重新编程中,使用高于所述第一阈值电压验证电平的对应者的第二阈 值电压验证电平来编程所述多个非易失性存储元件。
6. 根据权利要求l所述的方法,其中对其中布置有所述多个非易失性存储元件的块执行所述初始编程及所述重新编程。
7. 根据权利要求6所述的方法,其进一步包含存储指示针对所述块是否已完成所述重新编程的编程状态信息。
8. 根据权利要求1所述的方法,其进一步包含在管理所述多个非易失性存储元件的编程的至少一个电路进入备用模式之后,在 不同时间处执行所述重新编程。
9. 根据权利要求1所述的方法,其进一步包含当不存在其它待决的较高优先级任务时,在不同时间处执行所述重新编程。
10. 根据权利要求1所述的方法,其进一步包含在所述重新编程中,当不存在其它待决的较高优先级任务时,编程所述多个非易 失性存储元件的一部分,随后中止所述重新编程以服务另一较高优先级任务,且随 后当再次不存在其它待决的较高优先级任务时,恢复所述重新编程。
11. 根据权利要求1所述的方法,其中-所述多个非易失性存储元件存储多个数据页,每一页可作为一单位进行编程;及 对于每一页,存储指示所述页是否已被重新编程的编程状态信息。
12. 根据权利要求l所述的方法,其中用数据页来重新编程所述多个非易失性存储元件,一次一页,每一页可作为一单 位进行编程。
13. 根据权利要求l所述的方法,其进一步包含存储指示针对所述多个非易失性存储元件是否已完成所述重新编程的编程状态 信息。
14. 一种非易失性存储系统,其包含多个非易失性存储元件;一个或一个以上电路,其用于在初始编程中经由多个字线而编程所述多个非易 失性存储元件,从所述多个字线的第一者开始,且连续进行到每一下一个字线,直 到到达所述多个字线的最后一者;及在完成所述初始编程之后,经由所述多个字线而重新编程所述多个非易失性存储元件。
15. 根据权利要求14所述的非易失性存储系统,其中通过以下方式而重新编程所述多个非易失性存储元件再次从所述多个字线的所 述第一者开始,且连续进行到每一下一个字线,直到到达所述多个字线的所述最后 一者。
16. 根据权利要求14所述的非易失性存储系统,其中当在所述初始编程中编程与所述多个字线的给定一者相关联的非易失性存储元 件时,所述一个或一个以上电路将第一通过电压施加到所述多个字线的至少一个其 它字线,且在所述重新编程中,当编程与所述多个字线的所述给定一者相关联的非 易失性存储元件时,所述一个或一个以十.电路将不同于所述第一通过电压的第二通 过电压施加到所述至少一个其它字线。
17. 根据权利要求16所述的非易失性存储系统,其中所述第二通过电压高于所述第一通过电压。
18. 根据权利要求14所述的非易失性存储系统,其中在所述初始编程中,使用第一阈值电压验证电平来编程所述多个非易失性存储元 件,且在所述重新编程中,使用高于所述第一阈值电压验证电平的对应者的第二阈 值电压验证电平来编程所述多个非易失性存储元件。
19. 根据权利要求14所述的非易失性存储系统,其中对其中布置有所述多个非易失性存储元件的块执行所述初始编程及所述重新编 程。
20. 根据权利要求19所述的非易失性存储系统,其中存储指示针对所述块是否已完成所述重新编程的编程状态信息。
21. 根据权利要求14所述的非易失性存储系统,其中在至少一个电路进入备用模式之后,在不同时间处执行所述重新编程。
22. 根据权利要求14所述的非易失性存储系统,其中在不存在其它待决的较高优先级任务时,在不同时间处执行所述重新编程。
23. 根据权利要求14所述的非易失性存储系统,其中在所述重新编程中,当不存在其它待决的较高优先级任务时,所述一个或一个以 上电路编程所述多个非易失性存储元件的一部分,随后中止所述重新编程以服务另 一较高优先级任务,且随后当再次不存在其它待决的较高优先级任务时,恢复所述 重新编程。
24. 根据权利要求14所述的非易失性存储系统,其中所述多个非易失性存储元件存储多个数据页,每一页可作为一单位进行编程;及 对于每一页,存储指示所述页是否已被重新编程的编程状态信息。
25. 根据权利要求14所述的非易失性存储系统,其中所述多个非易失性存储元件用数据页来重新编程, 一次一页,每一页可作为一单 位进行编程。
26. 根据权利要求14所述的非易失性存储系统,其中存储指示针对所述多个非易失性存储元件是否已完成所述重新编程的编程状态{曰息。
27. 根据权利要求14所述的非易失性存储系统,其中所述多个非易失性存储元件包含多电平存储元件。
28. 根据权利要求14所述的非易失性存储系统,其中所述多个非易失性存储元件布置于NAND串中。
全文摘要
一组非易失性存储元件经受初始编程,之后,使用较高验证电平非实时地(例如当控制进入备用模式时、当无其它读取或写入任务待决时)执行重新编程。所述重新编程可编程所述组中的页,一次一页,当另一读取或写入任务待决时所述重新编程便在页边界处停止,且当所述控制变得再次可用时重新开始。可提供状态旗标以识别页及/或所述组是否已完成所述重新编程。在另一方面中,在所述重新编程期间将较高通过电压施加到未选定的字线。在另一方面中,使用一默认组读取电压来确定错误计数,且如果所述计数超过阈值,则选择一替代组读取电压。
文档编号G11C11/56GK101405813SQ200780009496
公开日2009年4月8日 申请日期2007年5月25日 优先权日2006年6月22日
发明者尼玛·穆赫莱斯 申请人:桑迪士克股份有限公司