在NAND闪速存储器设备中的非破坏性模式高速缓存编程的制作方法

文档序号:23589883发布日期:2021-01-08 14:25阅读:120来源:国知局
在NAND闪速存储器设备中的非破坏性模式高速缓存编程的制作方法

概括而言,本公开内容通常涉及半导体技术的领域,以及更具体而言,本公开内容涉及用于在nand闪速存储器中的高速缓存编程的方法。



背景技术:

在许多服务器和移动设备中,nand闪速存储器由于其高存储密度和相对较低的存取延迟而被广泛地用作为主要的非易失性存储设备。为了降低成本以及提高编程速度,通常在将编程数据发送给nand闪速存储器之后不将其存储在主机计算机中。为了防止在编程失败的情况下的数据丢失,nand闪速存储器典型地贯穿整个写操作来将原始编程数据存储在页面缓冲器中,其中在编程失败的情况下可以恢复原始编程数据。

为了增加存储容量,在技术发展水平nand闪速存储器中,每个存储单元可以存储多个比特。因此,延长了对每个存储单元的编程和验证。当前,在完成先前的编程操作以及验证了存储在存储单元中的编程数据之后,将新的编程数据发送给页面缓冲器。在高速存储系统中,页面缓冲器中的数据输入时间可能限制整体系统性能。因此,有必要优化高速缓存编程。



技术实现要素:

本公开内容针对改进在页面缓冲器中的高速缓存编程,诸如减少数据输入时间,而在非破坏性模式下不会丢失原始编程数据。

在本公开内容中描述了用于在nand闪速存储器设备中进行高速缓存编程的方法的实施例。

本公开内容的一个方面提供对nand闪速存储器的高速缓存编程的方法。nand闪速存储器具有在多个页面缓冲器中的第一数据锁存器集合和在存储页面中的多个存储单元。多个存储单元中的每个存储单元包括2n个逻辑状态。多个页面缓冲器包括被配置为存储编程数据的n个逻辑页面的n个数据锁存器集合。多个存储单元中的每个存储单元耦合到多个页面缓冲器中的至少一个页面缓冲器。该方法包括:根据编程数据的n个逻辑页面,将多个存储单元编程到第一组逻辑状态。该方法还包括:验证多个存储单元中的第一组逻辑状态。该方法还包括:当确认第一组逻辑状态时,从第一数据锁存器集合中丢弃第一编程数据的第一逻辑页面;以及将第二编程数据的第二逻辑页面上传到多个页面缓冲器中的高速缓存锁存器集合。

在一些实施例中,该方法还包括:在丢弃第一逻辑页面之后,将禁止信息从高速缓存锁存器集合传送给第一数据锁存器集合。当禁止信息包括逻辑1时,这考虑到禁止多个存储单元进一步编程。

在一些实施例中,该方法还包括:在丢弃第一逻辑页面之后,根据第一编程数据的剩余逻辑页面,将多个存储单元编程到第二组逻辑状态。

在一些实施例中,该方法还包括:通过使用多个读参考电压来验证多个存储单元的2n个逻辑状态中的每个逻辑状态。每个读参考电压可以包括在两个邻近逻辑状态的门限电压之间的量级。

在一些实施例中,该方法还可以包括:利用门限电压以升序将多个存储单元从第一逻辑状态编程到第n逻辑状态。

在一些实施例中,该方法还可以包括:当编程失败发生时,恢复第一编程数据的第一逻辑页面。该方法还可以包括:通过使用第一读参考电压来读取多个存储单元,其中第一读参考电压将2n个逻辑状态分为两个可区分的组。该方法还可以包括:基于剩余的逻辑页面和两个可区分的组,来构建针对所述第一逻辑页面的二进制码。

本公开内容的另一方面提供在三级单元(tlc)模式下对nand闪速存储器的高速缓存编程的方法。例如,多个存储单元中的每个存储单元具有8个逻辑状态。8个逻辑状态可以是擦除状态和第i个逻辑状态,其中i=1至7,以及8个逻辑状态的门限电压按升序排列。多个存储单元中的每个存储单元耦合到多个页面缓冲器中的至少一个页面缓冲器。多个页面缓冲器包括被配置为分别存储编程数据的下页面、中间页面和上页面的第一数据锁存器集合、第二数据锁存器集合和第三数据锁存器集合。该方法包括:当针对nand闪速存储器的存储页面中的多个存储单元,对第一组逻辑状态进行编程和验证时,从nand闪速存储器的多个页面缓冲器中的第一数据锁存器集合中丢弃第一编程数据的下页面。该方法还包括:将第二编程数据的下页面上传到多个页面缓冲器中的高速缓存锁存器集合。

在一些实施例中,该方法还可以包括:在丢弃下页面之后,将禁止信息从高速缓存锁存器集合传送给第一数据锁存器集合。当禁止信息包括逻辑1时,这考虑到禁止多个存储单元进一步编程。

在一些实施例中,该方法还可以包括:在丢弃下页面之前,编程针对多个存储单元的第一组逻辑状态,其中第一组逻辑状态包括所述第一逻辑状态、第二逻辑状态、第三逻辑状态、第四逻辑状态和第五逻辑状态。

在一些实施例中,该方法还可以包括:根据第一编程数据的上页面,将多个存储单元编程到第六逻辑状态和第七逻辑状态。该方法还包括:当编程失败发生时,恢复第一编程数据的下页面。该方法还可以包括:通过使用第一读参考电压来读取多个存储单元,其中第一读参考电压包括在擦除状态的门限电压与第一逻辑状态的门限电压之间的量级。该方法还可以包括:通过使用第二读参考电压来读取多个存储单元,其中第二读参考电压包括在第四逻辑状态的门限电压与第五逻辑状态的门限电压之间的量级。该方法还可以包括:基于读数和预先确定的映射方案,来构建针对下页面的二进制码。

在一些实施例中,该方法还包括:将多个存储单元编程到第六逻辑状态;验证多个存储单元中的第六逻辑状态;以及当确认第六逻辑状态时,从多个页面缓冲器中的第二数据锁存器集合中丢弃第一编程数据的中间页面。该方法还可以包括:在丢弃第一编程数据的中间页面之后,将第二编程数据的下页面从高速缓存锁存器集合传送给第二数据锁存器集合;以及将第二编程数据的中间页面上传到高速缓存锁存器集合。

在一些实施例中,该方法还包括:在完成第六逻辑状态编程之后,从多个页面缓冲器中的控制锁存器集合中丢弃第三位线信息;将第二编程数据的上页面上传到控制锁存器集合。在一些实施例中,该方法还可以包括:将第二编程数据的中间页面从高速缓存锁存器集合传送给控制锁存器集合;以及将第二编程数据的上页面上传到高速缓存锁存器集合。

在一些实施例中,该方法还可以包括:将多个存储单元编程到第七逻辑状态;验证多个存储单元中的第七逻辑状态。该方法还包括:当确认第七逻辑状态时,从多个页面缓冲器中的第三数据锁存器集合中丢弃第一编程数据的上页面;以及将第二编程数据的上页面上传到第三数据锁存器集合。

本领域技术人员可以根据本公开内容的说明书、权利要求书和附图来理解本公开内容的其它方面。

附图说明

并入本文并形成说明书的一部分的附图示出本公开内容的实施例,以及连同说明书一起,用于进一步解释本公开内容的原理,以及用于使相关领域的技术人员能够制造和使用本公开内容。

图1示出根据本公开内容的一些实施例的具有nand闪速存储器的存储系统。

图2示出根据本公开内容的一些实施例的存储器阵列的电路原理图。

图3示出根据本公开内容的一些实施例的nand闪速存储器的门限电压vth分布。

图4示出根据本公开内容的一些实施例的逻辑页面和nand闪速存储器的状态的映射方案。

图5示出根据本公开内容的一些实施例的页面缓冲器的方块图。

图6示出根据本公开内容的一些实施例的页面缓冲器的示例性高速缓存使用。

图7示出根据本公开内容的一些实施例的用于nand闪速存储器的高速缓存编程的方法的流程图。

图8示出根据本公开内容的一些实施例的逻辑页面的映射和恢复方案。

图9示出根据本公开内容的一些实施例的页面缓冲器的示例性高速缓存使用。

图10示出根据本公开内容的一些实施例的用于页面缓冲器中的锁存器的恢复方法。

图11示出根据本公开内容的一些实施例的用于nand闪速存储器的高速缓存编程的方法的流程图。

图12示出根据本公开内容的一些实施例的逻辑页面的映射和恢复方案。

图13示出根据本公开内容的一些实施例的页面缓冲器的示例性高速缓存使用。

图14示出根据本公开内容的一些实施例的用于页面缓冲器中的锁存器的恢复方法。

图15示出根据本公开内容的一些实施例的页面缓冲器的示例性高速缓存使用。

当与附图进行结合时,根据下文阐述的具体实施方式,本发明的特征和优点将变得更加显而易见,在其中自始至终相似的参考字符标识相应的元素。在附图中,相似的附图数字通常指示相同的、功能相似和/或结构相似的元素。

本公开内容的实施例将是参考附图来描述的。

具体实施方式

虽然讨论了具体的配置和布置,但是应当理解的是,这仅是出于说明性目的。在相关领域中的技术人员将认识到的是,在不背离本公开内容的精神和保护范围的情况下,可以使用其它配置和布置。对于在相关领域中的技术人员而言将显而易见的是,本公开内容还可以用于各种其它应用中。

应当注意的是,说明书中对“一个实施例”、“一实施例”、“示例性实施例”、“一些实施例”等等的引用,指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可能不一定包括该特定的特征、结构或特性。此外,这样的短语不一定指的是同一实施例。进一步地,当结合实施例描述特定的特征、结构或特性时,无论是否明确地描述,结合其它实施例来影响这样的特征、结构或特性将在相关领域中的技术人员的知识范围内。

通常,术语可以是至少部分地根据在上下文中的使用来理解的。例如,至少部分地取决于上下文,如本文所使用的术语“一个或多个”可以用于以单数意义来描述任何特征、结构或特性,或者可以用于以复数意义来描述特征、结构或特性的组合。类似地,诸如“一(a)”、“一个(an)”或“该”的术语再次可以被理解为传达单数用法或者传达复数用法,这至少部分地取决于上下文。另外,术语“基于”可以理解为不一定旨在传达一组排他性因素,而是可以至少部分地取决于上下文,替代地考虑到存在不一定明确地描述的另外的因素。

如本文所使用的,术语“名义上的/名义上地”指的是在产品或工艺的设计阶段期间设定的用于组件或工艺步骤的特性或参数的期望值或目标值、连同高于和/或低于期望值的一范围的值。该值的范围可能是由于在制造工艺或公差中的微小变化造成的。如本文所使用的,术语“大约”指示可以基于与主题半导体器件相关联的特定技术节点而变化的给定数量的值。基于特定的技术节点,术语“大约”可以指示在例如值的10-30%内变化的给定数量的值(例如,值的±10%、±20%或±30%)。

图1示出根据本公开内容的一些实施例的存储系统10。存储系统10可以包括固态驱动器(ssd),所述ssd包括nand闪速存储器100和主机控制器20。ssd10可以通过主机控制器20与主机计算机15进行通信,其中主机控制器20可以经由存储通道30连接到nand闪速存储器100。在一些实施例中,ssd10可以具有一个以上的nand闪速存储器100,而每个nand闪速存储器100可以由主机控制器20进行管理。

主机计算机15发送要存储在ssd10处的数据,或者通过读取ssd10来取回数据。主机控制器20可以处理从主机计算机15接收到的i/o请求,确保数据完整性和高效存储,以及管理nand闪速存储器100。存储通道30可以提供数据,以及控制经由数据总线在主机控制器20与nand闪速存储器100之间的通信。

nand闪速存储器100(即,“闪存”、“nand闪存”或“nand”)可以是存储器芯片(封装)、存储器管芯或存储器管芯的任何部分,以及可以包括一个或多个存储器平面101,存储器平面中的每个存储器平面可以包括多个存储器块103。完全相同的和并发的操作可以发生在每个存储器平面101处。存储器块103(其在大小方面可以是兆字节(mb)),是执行擦除操作的最小大小。如图1中所示,示例性nand闪速存储器100包括四个存储器平面101,以及每个存储器平面101包括六个存储器块103。每个存储器块103可以包括多个存储单元,其中每个存储单元可以是通过互连(诸如位线和字线)来寻址的。位线和字线可以是(例如,分别在行和列中)垂直地布置的,形成金属线的阵列。位线和字线的方向在图1中标记为“bl”和“wl”。在本公开内容中,存储器块103还称为“存储器阵列”或“阵列”。存储器阵列是在存储器设备中执行存储功能的核心区域。

nand闪速存储器100还包括外围区域105、围绕存储平面101的区域。外围区域105包含许多数字的、模拟的和/或混合信号电路,以支持存储器阵列的功能,例如,页面缓冲器50、行解码器40、列解码器60、外围电路70和感测放大器80。外围电路70包括有源的和/或无源的半导体器件,诸如晶体管、二极管、电容器、电阻器等等,这对于本领域普通技术人员而言将是显而易见的。

应当注意的是,在图1中的ssd10和nand闪速存储器100中的电子组件的布局是作为示例来示出的。ssd10和nand闪速存储器100可以具有其它布局,以及可以包括另外的组件。例如,nand闪速存储器100还可以具有高压电荷泵、i/o电路等等。ssd10还可以包括固件、数据加扰器等等。

图2根据本公开内容的一些实施例示出存储器阵列103的电路原理图。存储器阵列103包括多个存储器串212,每个存储器串212具有多个存储单元340。存储器串212还在每一端处包括至少一个场效应晶体管(例如,mosfet),其是分别由下部选择栅极(lsg)332和顶部选择栅极(tsg)334来控制的。以及两个各自的晶体管称为下部选择晶体管332-t和顶部选择晶体管334-t。存储单元340可以是由控制栅极333来控制的,其中控制栅极333可以连接至存储器阵列103的字线。顶部选择晶体管334-t的漏极端子可以连接到位线341,以及下部选择晶体管332-t的源极端子可以连接到阵列公共源极(acs)446。阵列公共源极446可以由在整个存储器块中的存储器串212进行共享,因此还称为公共源极线。

在一些实施例中,存储器阵列103可以是基于浮栅技术来形成的。在一些实施例中,存储器阵列103可以是基于电荷捕获技术来形成的。基于电荷捕获的nand闪速存储器可以提供高的存储密度和高的固有可靠性。存储数据或逻辑状态(“状态”,例如存储单元340的门限电压vth)取决于在存储层中捕获的电荷的量。在一些实施例中,nand闪速存储器100可以是三维(3d)存储器设备,以及存储器阵列103可以是3d存储器阵列,其中存储单元340可以垂直地堆叠在彼此之上。3d闪速存储器的结构和操作是在美国专利申请公开us16/729,838中公开的,其全部公开内容以引用的方式并入本文中。

在nand闪速存储器中,读取和写入操作可以是在存储页面448中执行的,该存储页面448包括共享同一字线的所有存储单元340。在nand存储器中,存储单元340可以处于擦除状态er或编程状态p1。最初,在存储器阵列103中的所有存储单元340可以是通过在控制栅极333与存储单元的源极端子(例如,阵列公共源极446)之间实现负电压差来重置到为逻辑“1”的擦除状态er的,使得在存储单元340的存储层中的所有捕获的电荷可以被去除。例如,负电压差可以是通过将存储单元340的控制栅极333设置为接地以及向阵列公共源极446施加高的正电压来感应的。在擦除状态er(“状态er”),存储单元340的门限电压vth可以重置为最低值,以及可以是在位线341处测量或感测的。

在编程(即,写入)期间,编程电压vpgm(例如,在10v与20v之间的正电压脉冲)可以施加在控制栅极333上,使得电荷(例如,电子)可以注入到存储单元340的存储层中,从而增加存储单元340的门限电压vth。因此,将存储单元340编程到状态p1。

nand闪速存储器可以被配置为操作在单级单元(slc)模式下。为了增加存储容量,nand闪速存储器还可以被配置为操作在多级单元(mlc)模式、三级单元(tlc)模式、四级单元(qlc)模式或这些模式中的任何模式的组合下。在slc模式下,存储单元存储1个比特,以及具有两种逻辑状态(“状态”),即状态er和p1。在mlc模式下,存储单元存储2个比特,以及具有四种状态,即状态er、p1、p2和p3。在tlc模式下,存储单元存储3个比特,以及具有八种状态,即状态er和状态p1-p7。在qlc模式下,存储单元存储4个比特,以及具有16种状态。

图3示出根据本公开内容的一些实施例的以三级单元(tlc)模式编程的nand闪速存储器的门限电压vth分布。由于各种变化,存储单元的每个状态包括门限电压vth的范围,其中每个状态的门限电压vth分布可以是通过概率密度来表示的。在一些实施例中,八个tlc状态可以是通过使用增量步进脉冲编程(ispp)方案来编程的,其中编程电压vpgm可以是通过增加步进脉冲vstep来递增地增加的。因此,八个tlc状态可以从具有较低门限电压的状态p1编程到具有最高门限电压的状态p7。

在一些实施例中,为了提高编程速度,在相同的存储页面448(图2)中利用相同的字线(例如,相同的控制栅极333)共享的存储单元可以是同时地编程的。在每个ispp脉冲之后,可以执行验证读取。在一些实施例中,已经达到目标状态(即,目标门限电压)的存储单元可以是通过控制tsg334和/或lsg332来禁止进行进一步编程的。在一些实施例中,存储单元还可以是通过提高在相应的位线上的电压来禁止进行进一步编程的。

在编程之后,八个tlc状态er和p1-p7可以是通过使用一个或多个读参考电压vr1-vr7来验证的。通过将读参考电压vr1-vr7中的一个或多个读参考电压施加到目标存储单元的控制栅极,可以确定存储单元的门限电压vth的范围。例如,为了验证目标存储单元340是否处于状态er,可以使用读参考电压vr1。如果目标存储单元处于状态er,则目标存储单元的门限电压vth低于读参考电压vr1。目标存储单元可以被接通,以及在沟道中形成导电路径。如果目标存储单元处于状态p1-p7中的任何一种状态,则目标存储单元的门限电压vth高于读参考电压vr1。从而,目标存储单元被关掉。通过在相应的位线上测量或感测通过目标存储单元的电流,可以验证门限电压vth或目标存储单元的状态。

如上所述,为了确定在slc模式下存储的两个状态er和p1,仅需要读参考电压vr1。为了确定在mlc模式下的四个状态er和p1-p3,可以使用读参考电压vr1、vr2和vr3。为了确定针对tlc模式的八个状态er和p1-p7,可以使用读参考电压vr1-vr7。例如,在tlc模式下,状态er的门限电压低于vr1,以及状态p7的门限电压高于vr7,其中状态p1的门限电压在vr1与vr2之间。状态p2-p6可以是类似地确定的。

在一些实施例中,为了提高读取和编程速度,多个存储页面(“物理页面”)可以是同时地读取或编程的。在mlc、tlc或qlc模式下,每个存储页面可以是基于一个或多个逻辑页面来读取或编程的。例如,在每存储单元3个比特的tlc模式下,存储页面可以是基于3个逻辑页面(例如,下页面、中间页面和上页面)来编程的。

图4示出根据本公开内容的一些实施例的逻辑页面和nand闪速存储器的状态的映射方案。在该示例中,tlc模式的八种状态er和p1-p7可以分别映射到二进制码(111)、(110)、(100)、(000)、(010)、(011)、(001)和(101)。3个比特的二进制码可以命名为从左到右读取的最高有效位(msb)、中央有效位(csb)和最低有效位(lsb)。例如,状态p5可以映射到二进制码(011),其中msb、csb和lsb分别是“0”、“1”和“1”。在一些实施例中,在同一存储页面中的存储单元可以是同时地读取或编程的。因此,tlc模式的每个存储页面可以是通过使用分别与二进制码的lsb、csb和msb相对应的来自3个逻辑页面(即,下页面、中间页面和上页面)的编程数据来编程的。存储页面中的每个存储单元可以是根据在逻辑页面中接收的二进制码来编程到目标逻辑状态的。在编程期间,编程数据的逻辑页面可以在发送给nand闪速存储器100的存储页面之前存储在页面缓冲器50(图1)中。

应当注意的是,本公开内容的保护范围并不限于图4中所示的映射方案。本文所公开的方法可以应用于与状态er和p1-p6相关联的一组不同的二进制码。该方法还可以应用于不同的编程模式(例如,slc、mlc和/或qlc)。在一些实施例中,可以实现数据预处理以获得期望的映射方案,以减少页面缓冲器操作的总数,从而提高nand闪速存储器的编程性能。

图5示出根据本公开内容的一些实施例的用于图1中的nand闪速存储器100的页面缓冲器50的方块图。在该示例中,每个页面缓冲器50可以耦合到存储器阵列103的一条位线341。在一些实施例中,每个页面缓冲器50可以耦合到两条位线。参考图2,每个存储器串212与位线341耦合。因此,在存储器串212上的存储单元340可以与至少一个页面缓冲器50耦合。存储页面448的存储单元240可以通过相应的位线341与多个页面缓冲器50耦合。页面缓冲器50可以将用于存储单元的数据临时地存储在存储器阵列103中,然后将所存储的数据例如输出给列解码器60。页面缓冲器50还可以接收数据,然后将所接收的数据提供给存储单元。

在一些实施例中,每个页面缓冲器50可以包括一个或多个锁存器。在一个示例中,页面缓冲器50可以包括六个锁存器:锁存器d1-d3、锁存器sa、锁存器sl和高速缓存锁存器ca。六个锁存器中的每个锁存器可以包括由例如互补mosfet(即,cmos)器件制造的两个反相器。每个锁存器可以存储1个比特。

图6示出根据本公开内容的一些实施例的页面缓冲器50的示例性高速缓存使用。在该示例中,锁存器d1-d3可以用于存储代表存储单元的状态的二进制码或编程数据,因此还称为数据锁存器。例如,在图4中用于tlc模式的下页面、中间页面和上页面可以分别存储在锁存器d1-d3中。在一些实施例中,高速缓存锁存器ca与页面缓冲器的i/o进行通信,以及加载编程数据。在一些实施例中,高速缓存锁存器ca存储禁止信息,以控制是否禁止存储单元用于编程。在一些实施例中,锁存器sa可以存储在位线处来自感测放大器的测量的(或感测的)数据,以及还称为感测锁存器。锁存器sl(还称为控制锁存器)可以存储第三位线信息以促进编程操作,例如可以施加在禁止的位线上的高电压、在经历编程操作的位线上的低电压、以及在第三位线上的中等电压。

参考图3-5,在一些实施例中,页面缓冲器50可以包括更多的数据锁存器或控制锁存器。例如,为了编程qlc模式,除了用于总共4个数据锁存器的锁存器d1-d3之外,页面缓冲器还可以包括锁存器dx。

在一些实施例中,每个存储单元可以具有2n个逻辑状态,以及可以存储n个比特。编程数据可以包括n个逻辑页面,以对在同一存储页面中的多个存储单元进行编程。在该示例中,每个页面缓冲器可以包括n个数据锁存器以存储n个比特。

在一些实施例中,编程数据的n个逻辑页面是同时发送给同一存储页面的多个存储单元的,用于进行编程操作。在编程操作期间,编程数据的n个逻辑页面可以存储在页面缓冲器的相应的n个数据锁存器集合中。

参考图1,在编程(写入)操作期间,主机计算机15通常在将编程数据发送给nand闪速存储器100之后不存储该编程数据。为了防止在编程状态失败的情况下丢失数据,nand闪速存储器100典型地遍及整个编程(即,写入)操作期间将原始编程数据存储在页面缓冲器50中。例如,当对同一存储页面的多个存储单元编程时,可以将编程数据的n个逻辑页面存储在页面缓冲器的相应的n个数据锁存器集合中,直到针对同一存储页面的多个存储单元,所有目标状态都已经被成功地编程和验证为止。在编程失败的情况下,可以将编程数据的n个逻辑页面重新发送给同一存储页面的多个存储单元。换句话说,在编程失败的情况下,可以恢复原始的编程数据。新的编程数据可以是在完成先前的编程操作以及验证了在存储单元中的已编程数据之后发送给页面缓冲器的。

但是,对于以mlc、tlc或qlc模式编程的nand闪速存储器,整个编程和验证操作的持续时间可能显著地增加。为了提高针对ssd10的编程速度,有必要改进页面缓冲器中的高速缓存编程。

例如,原始编程数据不需要在整个写操作期间都存储在页面缓冲器的锁存器中,以及可以被逐渐地丢弃。在一些实施例中,在对一些较低状态成功地编程之后,可以腾出一个或多个逻辑页面。如果写操作失败,则仍然可以恢复存储在一个或多个逻辑页面中的原始编程数据。

在一个示例中,在tlc模式下,当对状态p1-p5成功地编程时,可以将存储在锁存器d1中的下页面数据丢弃,如下文所详细描述的。

图7示出根据本公开内容的一些实施例的用于对nand闪速存储器进行高速缓存编程的方法700的流程图。应当理解的是,方法700并不是穷举的,以及其它操作步骤可以是同样地在所示的操作步骤中的任何操作步骤之前、之后或之间执行的。在一些实施例中,可以省略方法700的一些操作步骤,或者可以包括其它操作步骤,为了简单起见,这里未描述这些其它操作步骤。在一些实施例中,方法700的操作步骤可以以不同的顺序执行和/或改变。

方法700开始于操作步骤s710处,其中存储器阵列中的所有存储单元都处于具有最低门限电压vth的擦除状态er。

接下来,在操作步骤s715处,例如,开始编程操作以在tlc模式下对同一存储页面中的存储单元进行编程。在一些实施例中,可以从低状态(例如,状态p1)到高状态(例如,状态p7),顺序地对八个tlc状态进行编程和验证,其中用于tlc模式的二进制码的msb、csb和lsb映射到上页面、中间页面和下页面的逻辑页面,以及存储在页面缓冲器50中的d3、d2和d1的锁存器中(参见图2-4)。

在操作步骤s720处,将低状态p1-p5顺序地编程到存储单元,以及相应地在操作步骤s725处,对状态(或门限电压vth)进行验证。

在操作步骤s730处,检查是否对所有状态p1-p5均已经成功地编程(即,通过)。如果未成功地编程,则方法700可以返回到操作步骤s720以继续对目标状态进行编程。

如果已经确认对所有状态p1-p5都已经成功地编程,则可以执行操作步骤s735,其中可以丢弃编程数据的下页面,以及可以腾出锁存器d1。参考图4和图8,如果对所有状态p1-p5都已经成功地编程,则其余状态p6-p7具有可区分的二进制码,以及可以是仅基于从上页面和中间页面来确定的。例如,状态p6对应于二进制码(00),其中上页面和中间页面比特两者是“0”。状态p7对应于二进制码(10),其中上页面和中间页面分别是“1”和“0”。在一些实施例中,状态p6-p7可以是仅基于编程数据的上页面来确定的。例如,如果上页面是“1”,则可以对状态p6进行编程,以及如果上页面是“0”,则可以将状态p7编程到存储单元。因此,状态p6和p7可以是在不依赖编程数据的下页面的情况下确定的。因此,可以从锁存器d1中移除下页面。因此,在继续对较高状态p6-p7进行编程的同时,腾空的锁存器d1可以用于其它存储目的。

在操作步骤s740处,例如,可以将高速缓存锁存器ca中的原始数据(例如,图6中的禁止信息)传送给腾空的锁存器d1。同时,可以将新的编程数据的下页面(“新的下页面”)加载到高速缓存锁存器ca。在图9中示出页面缓冲器的新的高速缓存使用。

在操作步骤s745处,检查存储在锁存器d3中的编程数据的上页面。如果上页面是“0”,则状态p6可以被编程用于相应的存储单元。然后,在操作步骤s750处,可以对编程状态p6进行验证。

如果上页面在锁存器d3中是“1”,则可以在操作步骤s755处对状态p7进行编程,以及可以在操作步骤s760处验证状态p7。

如果存在编程失败(例如,在操作步骤s750或s760处检测到),则可以恢复存储在锁存器d1中的原始编程数据(即,下页面)。

图10示出根据本公开内容的一些实施例的针对最初存储在锁存器d1中的下页面的恢复方法1000。应当理解的是,恢复方法1000并不是穷举的,以及其它操作步骤可以是同样地在所示的操作步骤中的任何操作步骤之前、之后或之间执行的。在一些实施例中,可以省略恢复方法1000的一些操作步骤,或者可以包括其它操作步骤,为了简单起见,这里未描述这些其它操作步骤。在一些实施例中,恢复方法1000的操作步骤可以以不同的顺序执行和/或改变。

恢复方法1000开始于操作步骤s1010处,其中编程失败是在状态p6-p7的编程期间检测到的,其中失败标记可以是从图7中的操作步骤s750或s760接收的。

在操作s1020处,读参考电压vr1可以用于对存储单元执行读操作。参考图3,状态er具有低于读参考电压vr1的门限电压vth,以及状态p1-p7具有高于读参考电压vr1的门限电压vth。因此,状态er可以通过例如在相应的位线上感测电流来与状态p1-p7分开。

在操作步骤s1030处,根据图4中的预先确定的映射方案,“1”的下页面可以被构建用于状态er。图8中还列出针对最初存储在锁存器d1中的下页面的恢复状态。

在操作s1040处,读参考电压vr5可以用于对存储单元执行读操作。参考图3,状态er和p1-p4具有低于读参考电压vr5的门限电压vth,以及状态p5-p7具有高于读参考电压vr5的门限电压vth。因此,状态er和p1-p4可以与状态p5-p7分开。

在操作步骤s1050处,由于状态er的下页面在先前的步骤中已经进行重建,因此可以根据图4中的预先确定的映射方案将状态p1-p4的下页面构建为“0”。类似地,可以将状态p5-p7的下页面构建为“1”。图8示出在从读参考电压vr5读取之后的恢复状态。

在操作步骤s1060处,针对所有八个tlc状态er和p1-p7,可以完全恢复存储在锁存器d1中的原始下页面。

在另一示例中,当对状态p1-p6成功地编程时,还可以丢弃存储在锁存器d2中的编程数据的中间页面,如下文所详细描述的。

图11示出根据本公开内容的一些实施例的用于针对nand闪速存储器的高速缓存编程的方法1100的流程图。应当理解的是,方法1100并不是穷举的,以及其它操作步骤可以是同样地在所示的操作步骤中的任何操作步骤之前、之后或之间执行的。在一些实施例中,可以省略方法1100的一些操作步骤,或者可以包括其它操作步骤,为了简单起见,这里未描述这些其它操作步骤。在一些实施例中,方法1100的操作步骤可以以不同的顺序执行和/或改变。

方法1100开始于操作步骤s1115处,其中状态p1-p5已经被确认为成功地编程,以及高速缓存编程是根据先前讨论的方法700来优化的。

在操作步骤s1120处,将状态p6编程到存储单元,以及相应地在操作步骤s1125处验证状态p6(或门限电压vth)。

在操作步骤s1130处,检查是否已经对状态p6成功地编程(即,通过或确认)。如果未成功地编程,则方法1100可以返回到操作步骤s1120以继续对目标状态进行编程。

如果已经对状态p6成功地编程,即所有状态p1-p6都通过验证,则可以执行操作步骤s1135,其中可以丢弃编程数据的中间页面,以及可以腾空锁存器d2。参考图4和图12,如果所有状态p1-p6都被成功地编程,则其余状态p7可以是仅从上页面来确定的,即状态p7的上页面对应于逻辑“1”。因此,编程数据的中间页面可以是从锁存器d2中移除。相应地,在对状态p7编程时,腾空的锁存器d2可以用于其它存储目的。

在操作步骤s1140处,例如,在图7中的操作步骤s740处存储在高速缓存锁存器ca中的新的下页面可以传送给腾空的锁存器d2。同时,新的编程数据的中间页面(“新的中间页面”)可以上传到高速缓存锁存器ca。页面缓冲器的新的高速缓存使用是在图13中示出的。

在操作步骤s1145处,如果存储在锁存器d3中的上页面是“1”,则状态p7可以被编程用于相应的存储单元。以及可以在操作步骤s1150处,验证状态p7。

与恢复方法1000类似,例如,如果在操作步骤s1150处检测到编程失败,则可以分别恢复原始编程数据,即在原始锁存器d1和锁存器d2中存储的下页面和中间页面。

图14示出根据本公开内容的一些实施例的用于锁存器d1和锁存器d2的恢复方法1400。应当理解的是,恢复方法1400并不是穷举的,以及其它操作步骤可以是同样地在所示的操作步骤中的任何操作步骤之前、之后或之间执行的。在一些实施例中,可以省略恢复方法1400的一些操作步骤,或者可以包括其它操作步骤,为了简单起见,这里未描述这些其它操作步骤。在一些实施例中,恢复方法1400的操作步骤可以以不同的顺序执行和/或改变。

恢复方法1400开始于操作步骤s1410,其中针对状态p7的编程失败是在图11中的操作步骤s1150处检测到的,其中可以接收到失败标记。

在操作s1415处,读参考电压vr1和vr5可以用于恢复针对状态er和p1-p7的下页面,如先前在图10中所描述的。恢复的下页面的状态还在图12中示出。

然后,在以下操作步骤处,读参考电压vr2、vr4和vr6可以用于恢复针对状态er和p1-p7的中间页面。

在操作s1420处,读参考电压vr2可以用于对存储单元执行读操作。参考图3,状态er和p1具有低于读参考电压vr2的门限电压vth,以及状态p2-p7具有高于读参考电压vr2的门限电压vth。因此,状态er和p1可以是与状态p2-p7分开的。

根据图4中的预先确定的映射方案,在操作步骤s1425处,比特“1”可以被生成用于状态er和p1的中间页面。恢复的中间页面的状态还在图12中示出。

在操作s1430处,读参考电压vr4可以用于对存储单元执行读操作。参考图3,状态er和p1-p3具有低于读参考电压vr4的门限电压vr4,以及状态p4-p7具有高于读参考电压vr4的门限电压vth。因此,状态er和p1-p3可以是与状态p4-p7分开的。由于已经在先前的步骤处重建了状态er和p1的中间页面,所以可以恢复状态p2和p3的中间页面。

根据图4中的预先确定的映射方案,在操作步骤s1435处,比特“0”可以被生成用于状态p2和p3的中间页面。

在操作s1440处,读参考电压vr6可以用于对存储单元执行读操作。参考图3,状态er和p1-p5具有低于读参考电压vr6的门限电压vth,以及状态p6-p7具有高于读参考电压vr6的门限电压vth。因此,状态er和p1-p5可以是与状态p6-p7分开的。由于已经在先前的步骤中重建了状态er和p1-p3的中间页面,所以可以恢复状态p4和p5的中间页面。同样地,还可以恢复状态p6和p7的中间页面。

根据图4中的预先确定的映射方案,在操作步骤s1445处,比特“1”可以被生成用于状态p4和p5的中间页面。同时,比特“0”可以被生成用于状态p6和p7的中间页面。

在操作步骤s1450处,针对所有八个tlc状态er和p1-p7,可以完全恢复存储在锁存器d1和锁存器d2中的原始下页面和中间页面。

图15示出根据本公开内容的一些实施例的在已经对状态p1-p6成功地编程之后的页面缓冲器的示例性高速缓存使用。在该示例中,还可以丢弃存储在锁存器sl中的3位线信息。因此,可以对锁存器sl进行腾空,以及准备装载用于其它目的的数据。在一些实施例中,可以将先前讨论的在操作步骤s1140(图11和图13)处存储在高速缓存锁存器ca中的新的中间页面传送给锁存器sl。新的编程数据的上页面(“新的上页面”)可以加载到高速缓存锁存器ca。

在一些实施例中,在所有状态p1-p7都成功地编程之后,可以丢弃存储在锁存器d3中的原始编程数据的上页面。新的上页面可以相应地加载到页面缓冲器。例如,新的上页面可以上传到锁存器d3。在另一示例中,在将新的中间页面传送给锁存器d3之后,新的上页面可以上传到高速缓存锁存器ca。

总之,本公开内容提供对nand闪速存储器的高速缓存编程的方法。nand闪速存储器具有在多个页面缓冲器中的第一数据锁存器集合,以及在存储页面中的多个存储单元。多个存储单元中的每个存储单元包括2n个逻辑状态。多个页面缓冲器包括被配置为存储编程数据的n个逻辑页面的n个数据锁存器集合。多个存储单元中的每个存储单元耦合到多个页面缓冲器中的至少一个页面缓冲器。该方法包括:根据编程数据的n个逻辑页面,将多个存储单元编程到第一组逻辑状态。该方法还包括:验证在多个存储单元中的第一组逻辑状态。该方法还包括:当对第一组逻辑状态进行了确认时,从第一数据锁存器集合中丢弃第一编程数据的第一逻辑页面;以及将第二编程数据的第二逻辑页面上传到在多个页面缓冲器中的高速缓存锁存器集合。

本公开内容还提供在三级单元(tlc)模式下对nand闪速存储器的高速缓存编程的方法。该方法包括:当针对nand闪速存储器的存储页面中的多个存储单元,对第一组逻辑状态进行编程和验证时,从nand闪速存储器的多个页面缓冲器中的第一数据锁存器集合中丢弃第一编程数据的下页面。多个存储单元中的每个存储单元具有8个逻辑状态。8个逻辑状态可以是擦除状态和第i个逻辑状态,其中i=1至7,以及8个逻辑状态的门限电压按升序排列。多个存储单元中的每个存储单元耦合到多个页面缓冲器中的至少一个页面缓冲器。多个页面缓冲器包括被配置为分别存储编程数据的下页面、中间页面和上页面的第一数据锁存器集合、第二数据锁存器集合和第三数据锁存器集合。该方法还包括:将第二编程数据的下页面上传到多个页面缓冲器中的高速缓存锁存器集合。

前述的对具体实施例的描述将完全地揭示本公开内容的一般性质,即在无需过度的实验的情况下,以及在不背离本公开内容的一般概念的情况下,本领域技术人员可以通过应用在本领域的技术内的知识,容易地为了各种应用来修改和/或适应这样的特定实施例。因此,基于本文给出的公开内容和指导,这样的适应和修改旨在落入所公开的实施例的等同物的含义和范围内。应当理解的是,本文中的措辞或术语仅是用于描述的目的,以及并非做出限制,使得本说明书的术语或措辞将由本领域熟练的技术人员根据本公开内容和指导来解释。

上文借助于用于示出特定功能的实现以及其关系的功能构建块,来描述了本公开内容的实施例。为了便于描述起见,本文已经任意地定义了这些功能构建块的边界。可以定义替代的边界,只要适当地执行指定的功能以及其关系即可。

发明内容和摘要部分阐述了如发明人所预期的本公开内容的一个或多个但不是所有示例性实施例,因此其并不是旨在以任何方式对本公开内容和所附权利要求进行限制。

本公开内容的广度和范围不应受到上述示例性实施例中的任何实施例的限制,而应当仅根据所附权利要求及其等同物来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1