带有动态数据锁存器要求的高速缓存操作中的适应性算法的制作方法

文档序号:6768013阅读:186来源:国知局
专利名称:带有动态数据锁存器要求的高速缓存操作中的适应性算法的制作方法
带有动态数据锁存器要求的高速缓存操作中的适应性算法技术领域
本发明一般涉及非易失性半导体存储器,诸如电可擦除可编程只读存储器 (EEPROM)和快闪EEPR0M,具体地涉及基于允许重叠存储器操作的共享锁存器结构的高速 缓存操作。
背景技术
在诸如闪存的非易失性存储器的设计中,存在通过增加这些存储器的存储密度、 提高其性能、并降低功耗来改善其存储的连续处理。这些要求之一的改善将经常对其他要 求之一带来负面影响。例如,为了改进存储密度,可以使用具有每单元多级别(level)的闪 存来替代二进制芯片;但是,在多状态存储器中,比如在各状态间的容许量变得更严格时写 入数据的情况下,操作的速度会更慢。从而,具有多级别单元的存储器的性能级别具有很大 范围来改善。
这些和相关问题与另外的背景信息在美国专利申请公开号US-2006-0221704A1 和US-2007-0109867-A1的背景技术部分中给出。以下美国专利申请公开号也提供了 另夕卜的背景信息:US 2006-0233023-A1 ;US2006-0233021-A1 ;US 2006-0221696-A1 ;US 2006-0233010-A1 ;US2006-0239080-A1 ;以及 US 2007-0002626-A1。如下所述,所有这些通过参考全部并于此。
因此,存在对于高性能和高容量的非易失性存储器的普遍需要。具体地,存在对于 一种紧凑和有效的、带有增强的读取和编程性能的紧凑非易失性存储器的需要,该非易失 性存储器具有改善的处理器,还高度通用于处理读/写电路中的数据。发明内容
本发明给出了非易失性存储器和相应的操作方法,其中存储器具有可寻址的页, 并且为一个寻址的页的每个存储器单元提供了可以锁存预定数量的位的一组相应的数据 锁存器。该存储器可以使用存储在相应组的数据锁存器中的第一数据集对指定组的一个或 多个寻址的页进行第一操作(例如诸如写入),并且还接收对于也使用带有第二数据集的 这些相应的数据锁存器中的一些的第二操作(例如诸如读取)的请求。在所述第一操作期 间,当相应的每组的至少一个数据锁存器变得可用于所述第二操作时,确定是否存在足够 数量的相应组的数据锁存器来在所述第一操作期间进行所述第二操作;如果不存在,则延 迟第二操作。在另外的方面,当足够数量的锁存器变得可用时,所述存储器随后在所述第一 操作期间进行所述第二操作;并且如果响应于确定是否存在足够数量的相应组的数据锁存 器来进行所述第二操作,确定存在足够的数量,则在所述第一操作期间进行所述第二操作。
本发明的各个方面、优点、特征和实施例被包括在其示例例子的以下描述中,该描 述应与附图来结合。在此所参考的所有专利、专利申请、文章、其他公开物、文档和事物为了 所有目的通过以其全部内容的此参考而被并于此。对于在任何并入的公开物、文档或事物 与本申请之间的术语的定义和使用中的任何不一致或矛盾之处,应以本申请的定义和使用为准。


图1图示了在高速缓存编程操作内插入读。
图2图示了在高速缓存擦除操作内插入读。
图3示出了对于页以及一些相应的先行读取的具体编程顺序。
图4图示了当没有足够的锁存器可用时在高速缓存编程操作内插入读。
图5图示了当没有足够的锁存器可用时在高速缓存擦除操作内插入读。
图6是当没有足够的锁存器可用时在高速缓存编程操作内插入读的另一例子。
图7示意性示出了各种高速缓存点如何出现。
图8是对于适应性算法的一个基本实施例的流程图。
具体实施方式
具有每单元多级别的非易失性存储器,诸如NAND闪存,被用于替换二进制芯 片,存在对于改进性能的普遍赞同的需要。一组性能增强的方法是基于利用复杂的 高速缓存算法来同时进行并行计算。一些这样的增强的例子在美国专利申请公开号 US-2006-0221704-A1和US-2007-0109867-A1中给出。还参考以下美国专利申请公开 号,其提供了关于许多方面的另外的细节US2006-0233023-Al ;US 2006-0233021-A1 ;US 2006-0221696-A1 ;US2006-0233010-A1 ;US 2006-0239080-A1 ;以及 US 2007-0002626-A1。 所有这些参考与其中所列的参考一起通过引用全部并于此,如上所述。以下描述技术中的 一些来提供随后开发的背景(context),但是为了进一步的细节请参考这些在先申请。在这 点上,在某种程度上可以认为以下是那儿所描述的内容的进一步研究。
在前述专利文件中,具体参考描述数据锁存器的使用和如何将其用于在诸如程序 的第二较长操作中插入诸如读的一个操作的部分。尽管该先前讨论的大部分主要针对每单 元2位的实施例给出,但是在此的大部分讨论与对每单元3位或更多位的情况最适当的方 面有关。
先行读取是使用取决于下一个字(word)的数据的校正读取的算法。带有LA(“先 行”)校正的读取主要检查被编程到临近字线上的单元中的存储器状态,并校正其对当前字 线上的正被读取的存储器单元具有的任何扰动影响。如果已经根据在所列参考中描述的优 选编程方案对页进行了编程,则邻近字线将来自紧位于当前字线以上的字线。LA校正方案 会需要将在当前页之前被读取的邻近字线上的数据。
进行LA读取所需的数据锁存器的数量将取决于需要的校正。在某些情况下,这将 是1位校正,其他将使用2位或3位校正。每页所需的校正将取决于该页和邻近页经历过 的程序次序。在某些情况下,一页将仅需要1位校正,而另一页将可能使用2位校正。这 些不同的校正级别将使用不同数量的数据锁存器来应对LA读取。当进行混合的高速缓存 操作时,比如在用于复制功能的高速缓存程序中插入读或者在高速缓存擦除操作中插入读 时,优选在高速缓存算法中说明该读的数据锁存器需要的变化。在用户(例如控制器或主 机)发出地址以前也不知道数据锁存器需要。为了更好地应对这些复杂性,引入了在以下 称为适应性算法的新高速缓存算法。
为了提供背景,以下将在使用针对数据多状态的“先行”读取(“LA”)和“较低中 间”(“LM”)编码的实施例中描述这些技术。这样的安排在以上所列的美国专利申请中更 详细地给出,比如 US 2006-0239080-A1,在标题为 “Cache Read Algorithm for LM code with LA Correction"( “针对带有LA校正的LM码的高速缓存读算法”)的部分中开始于
段。简要地说,如上所述,实现用于高速缓存读取数据的方案,使得即使对于其校正 取决于来自相邻物理页或字线的数据的读操作,在正从存储器核心感测当前页时,数据锁 存器和1/0总线也有效率地用于轮出(toggle out)先前读取的页。一个优选的读操作是 “先行”(“LA”)读取,并且对于存储器状态的优选编码是“较低中间”(“LM”)编码。当邻 近字线上的数据的先决(prerequisite)读取必需领先于对于当前字线上的当前页的读取 时,该先决读取与1/0存取一起在用于读取先前页的周期中抢先进行,使得可以在先前读 取的页忙于1/0存取的同时进行当前读取。在2005年4月5日提交的题为“Read Operaions forNon-Volaile Storage that Includes Compensaion for Coupling(对于包括对華禹合的 补偿的非易失性存储器的读取操作)”的美国专利申请No. 11/099,049中已经公开了 LA读 取方案,其全部内容通过参考并于此。带有LA( “先行”)校正的读取主要检查被编程到临 近字线上的存储器单元中的存储器状态,并校正其对当前字线上正被读取的存储器单元具 有的任何扰动影响。如果已经根据上述优选编程方案对页进行了编程,则邻近字线将来自 就在当前字线以上的字线。LA校正方案将需要在当前页之前读取邻近字线上的数据。
返回在此在该示例实施例中给出的进一步研究,当数据锁存器需要与LM标志相 关时,则可以执行用户命令,并内部确定没有足够的数据锁存器来完成该命令的执行。适应 性算法记下用户命令,等待足够的数据锁存器可用,然后随着在操作的过程期间数据锁存 器变得可用而执行命令。
图1和图2分别给出了将读取插入高速缓存编程和高速缓存擦除操作中的 例子。在图1的带有复制操作的高速缓存编程中,处理以开始于始于101处的编程操 作。这继续直到在103处在相应堆栈的数据锁存器中第一锁存器被释放(free up),在 US-2006-0221704-A1和US-2007-0109867-A1中更详细描述了处理。在此点时,可以在105 将读取插入编程操作中,在这之后在107写操作继续。在编程的过程中,在109,第二锁存器 再次变为可用。该第二锁存器可以是与103处相同的锁存器,或者是同一堆栈中的不同锁 存器。再次,因为该处理一般实现在页级别,则通常的实施例会对于页中的每个单元需要相 应锁存器。在任何情况下,然后在111再次插入读取,在这之后在113,编程操作继续。
图2是对于带有读的高速缓存擦除的相应安排。在此包括软编程操作的擦除处理 开始于210。在203,数据锁存器可用于插入的操作。因为软编程操作可被认为是对于N状 态存储器单元的一类二进制编程操作,因此这通常将导致存在(N-I)个可用的锁存器。然 后可以在205插入读操作,在这之后软编程阶段可以继续。
当插入读操作(图1中的105或111,图2中的205)是先行读操作时,数据锁存器 需要将取决于使用的校正量。在一个算法中,为了对字线η (W/In)进行先行读取,1位校正 将使用2个数据锁存器,一个数据锁存器用于Wln+Ι数据,一个用于WLn数据的一页。类似 地,关于2位校正,使用3个数据锁存器(两个用于WLn+Ι,一个用于WLn数据的一页),并 且关于3位校正,使用4个数据锁存器(三个用于Wln+Ι数据,一个用于WLn数据的一页)。 在美国专利申请号11/618,569和11/618,578中描述了对于所有的LA校正将仅需要2个锁存器的替换实施例。
接下来,将考虑当与LA读取结合时包括较低中间(“LM”)页顺序和相应的锁存器 需要,这是在2008年3月 19 日提交的YanLi 的题为“Different Combinations of Wordline Order and Look-Ahead read to improve Non-Volatile Memory performance (用于改进 非易失性存储器性能的仔细按顺序和先行读取的组合)”的美国专利是其中更详细地开发 的安排。取每单元3位的情况,页可以被安排为使得较低的和中间的连续并且一起被编程, 但是其中,将按较高页编程将趋向于消除中间页到中间页WL-WL耦合效应的方式跳过较高 页。在下一字线的中间页编程后,对较高页编程。
该处理示出在图3中,其中页0和页1作为较低和中间页一起在第一字线(WLO) 上被编程,随后页2和页3—起作为较低和中间页在下一字线(WLl)上被编程。接下来,处 理退后一页(到WL0)并编程较高页(页4),然后向前跳过两个字线(到WL2)并编程较低 和中间页(页5和页6)。对于较高页的该退后以及对于两个较低页的向前跳对于剩余的数 据集继续,其中a、b和c是十六进制符号的页10、11、12。以此方式,将通过较高页编程有 效校正WL-WL以及BL-BL耦合效应的大部分。在较高页编程期间,将利用LA读取读入较低 和中间页,以从存储器单元校正地读入数据。在此页安排中,较高页读取将仅需1位校正, 因为较高页仅与下一 WL较高页编程耦合。另一方面,中间页读取将使用2位用于LA读取 校正,因为较低和中间页可以耦合先前字线中间页电压阈值。
■麵
如从刚刚给出的例子可见,对于这种高速缓存操作的数据锁存器需要根据情况而 变化。在此给出的适应性算法将其纳入考虑。
回到针对复制情况的带有插入的读的高速缓存编程的例子,其示出在图4中,其 中编程操作开始于401。随着操作继续,在某点,用于页中的每个存储器单元的一对锁存器 在403被释放。在此点时,可以如在405所示插入读。这可以是状态机已经保持的、等待 锁存器打开的读,或者是在锁存器打开后到来的读请求,在该情况下,编程将继续直到读到 来。在任一情况下,一旦插入了读,就可以确定2个锁存器不足够完成此读取。读命令可以 在2个数据锁存器可用时被输入,但是可能仅通过假设上部页读取仅使用1位LA读取而执 行;但是,如果页未使其上部页被编程,则将需要2位用于LA读取。通常,锁存器将已经被 填充了编程数据,但是一旦确定需要进一步的锁存器,读数据就将被当作无效的。在此情况 下,不能完成用户(例如控制器)发出的读命令,直到更多的数据锁存器可用为止。在此 例子中,不能执行读取,直到3个数据锁存器可用为止。一旦存储器确定不存在足够的锁存 器并且不能完成读命令,命令就被保持,直到所需的锁存器可用,如箭头所示。
同时,写处理在407继续,直到在409,另一锁存器打开。然后在411再次插入读并 完成,在此之后在413写继续。应该注意,这仅仅是可以具有多个变化的处理的一个一般例 子;例如,该情况假设在步骤413之前未完成写。
类似的情况可以发生在插入读的高速缓存擦除中,如图5所示。带有软编程的擦 除开始于501。对于每单元N = 3位的数据,在软编程中存在2个数据锁存器可用(在503), 其能够应对1位的LA读取;但是如果需要2位LA读取,则需要在整个软编程完成后执行该 读取。从而,在505插入读取,并且如果没有所需数量的锁存器来成功完成该读取,则其仅 是被保持,软编程在507恢复并在509完成,在其之后在511重新插入读取。
图6图示了另一情况,其中适应性高速缓存操作对于管理可以是复杂的。图6示出 了其中在601-607执行第一读取而不需要比可用锁存器更多的锁存器,非常像以上参考的 专利公开。为了 ECC将检查该读入页,然后该读入页准备好以被编程到另一位置。在较高 页编程期间(607的部分),可以在611插入第二读取。如果由于足够的数据锁存器不可用 而不能执行第二读取,则第二读取不能立即执行,并将等待直到较高页完成其编程(613)。
在较高页编程的结束时,仍然处于数据锁存器中的第一读取数据(还未被编程) 将被传送到合适的(right)位置。在完成较高页编程后,可以执行第二读取命令。一旦需 要再次开始编程(615),就可以再次执行未完成的读取(617),非常像关于图4所述。
针对适应件算法的一般管理
一般的适应性高速缓存操作算法可以由图7和图8图示。在高速缓存操作中,存 在可以插入另一操作的多个高速缓存点。图7概念性地示出此点,其中将时间取为行进到 右侧,并且该图在正进行的写命令的操作中在某个或多或少任意的点进行截取(pick up)。各种可用的高速缓存点如在701、703....... 713所示,其中当涂7开始时在处理中的写操作结束于731,在其之后发生下一写入。
图8是一个示例实施例的流程图。将发出对于操作的命令,并且在高速缓存点(例 如由准备好/繁忙信号指示)输入该命令。在用户命令发出后,在803状态机将检查是否 存在足够的数据锁存器来执行此命令。如果存在足够的数据锁存器(来自805的是),则在 807可以立即执行用户命令,然后返回到801。
如果没有足够的数据锁存器可用(来自805的否),或者先前排队的高速缓存仍 在进行中,则将重新开始旧的操作(809),同时追踪高速缓存指针以得到下一可用高速缓存 点。在该下一高速缓存点,将基于2个因素再次评估先前的用户命令的执行(811) 1)进行 中的高速缓存队列;幻数据锁存器可用性。饮弹该命令处于队列的头部并且存在足够的锁 存器,则可以在807执行该命令。在所有的高速缓存操作中,需要在FIFO管线中保存地址 和命令。
尽管已经关于某些实施例描述了本发明的各个方面,但是将理解,本发明享有在 所附权利要求的全部范围内的保护。8
权利要求
1.一种操作具有可寻址的页的存储器单元的非易失性存储器的方法,包括 为一个寻址的页的每个存储器单元提供具有用于锁存预定数量的位的容量的一组相应的数据锁存器;使用存储在相应组的数据锁存器中的第一数据集对指定组的一个或多个寻址的页进 行第一操作;接收对于使用带有与对存储器阵列的一个或多个随后的存取操作相关的数据的相应 组的数据锁存器的第二操作的请求;在所述第一操作期间,确定每组数据锁存器中的至少一个锁存器可用于所述第二操作;随后确定是否存在足够数量的相应组的数据锁存器来在所述第一操作期间进行所述 第二操作;以及响应于确定没有足够数量的相应组的数据锁存器来进行第二操作,延迟所述第二操作。
2.如权利要求1所述的方法,还包括随后当足够数量的锁存器变得可用时,在所述第一操作期间进行所述第二操作。
3.如权利要求1所述的方法,还包括响应于确定存在足够数量的相应组的数据锁存器来进行所述第二操作,在所述第一操 作期间进行所述第二操作。
4.如权利要求1所述的方法,其中所述第一操作是擦除操作的软编程阶段。
5.如权利要求1所述的方法,其中所述第一操作是编程操作。
6.如权利要求5所述的方法,其中所述第二操作是读取操作。
7.如权利要求6所述的方法,其中所述读取操作是用在所述编程操作中的先行读取操作。
8.如权利要求1所述的方法,其中所述第一操作是具有交替的编程和验证阶段的写操 作,并且第一组数据是要被写入第一组存储器单元中的数据。
9.如权利要求1所述的方法,其中所述存储器单元是存储N位数据的多级别存储器单 元,其中N大于1,以及其中所述组的数据锁存器中的每组包括N个数据锁存器,并且所述第 一数据集是N位数据。
10.如权利要求1所述的方法,其中在所述第一操作的执行期间接收对于所述第二操 作的请求。
11.如权利要求1所述的方法,其中对于所述第二操作的请求在开始所述第一操作的 执行之前。
12.如权利要求1所述的方法,其中基于准备好/忙碌信号确定每组数据锁存器中的至 少一个数据锁存器可用于所述第二操作。
13.一种非易失性存储器,包括 可寻址的页的存储器单元;以及多个数据锁存器,其中一个可寻址的页的每个存储器单元具有一组相应的数据锁存 器,该组相应的数据锁存器具有用于锁存预定数量的位的容量,其中在使用存储在相应组的数据锁存器中的第一数据集对指定组的一个或多个寻址的页的第一操作期间,存储器可以确定每组数据锁存器中的至少一个锁存器可用于使用带 有与对存储器阵列的一个或多个随后的存取操作相关的数据的相应组的数据锁存器之一 的所请求的第二操作,随后确定是否存在足够数量的相应组的数据锁存器来在所述第一操 作期间进行所述第二操作,以及响应于确定没有足够数量的相应组的数据锁存器来进行第 二操作,延迟所述第二操作。
14.如权利要求13所述的非易失性存储器,其中当足够数量的锁存器变得可用时,所 述存储器随后在所述第一操作期间进行所述第二操作。
15.如权利要求13所述的非易失性存储器,其中,响应于确定存在足够数量的相应组 的数据锁存器来进行所述第二操作,所述存储器在所述第一操作期间进行所述第二操作。
16.如权利要求13所述的非易失性存储器,其中所述第一操作是擦除操作的软编程阶段。
17.如权利要求13所述的非易失性存储器,其中所述第一操作是编程操作。
18.如权利要求17所述的非易失性存储器,其中所述第二操作是读取操作。
19.如权利要求18所述的非易失性存储器,其中所述读取操作是用在所述编程操作中 的先行读取操作。
20.如权利要求13所述的非易失性存储器,其中所述第一操作是具有交替的便车和验 证阶段的写操作,并且第一数据集是要被写入第一组存储器单元中的数据。
21.如权利要求13所述的非易失性存储器,其中所述存储器单元是存储N位数据的多 级别存储器单元,其中N大于1,以及其中所述组的数据锁存器中的每组包括N个数据锁存 器,并且所述第一数据集是N位数据。
22.如权利要求13所述的非易失性存储器,其中在所述第一操作的执行期间接收对于 所述第二操作的请求。
23.如权利要求13所述的非易失性存储器,其中对于所述第二操作的请求在开始所述 第一操作的执行之前。
24.如权利要求13所述的非易失性存储器,其中每组数据锁存器中的至少一个数据锁 存器可用于所述第二操作的确定基于准备好/忙碌信号。
25.如权利要求13所述的非易失性存储器,还包括状态机,其中所述状态机进行每组数据锁存器中的至少一个锁存器可用于所请求的第 二操作的所述确定、是否存在足够数量的相应组的数据锁存器来在所述第一操作期间进行 所述第二操作的所述确定、以及所述第二操作的延迟。
全文摘要
一种非易失存储器可以使用存储在相应组的数据锁存器中的第一数据集对指定组的一个或多个寻址的页进行第一操作(例如诸如写入),并且还接收对于也使用带有第二数据集的这些相应的数据锁存器中的一些的第二操作(例如诸如读取)的请求。在所述第一操作期间,当相应的每组的至少一个数据锁存器变得可用于所述第二操作时,所述存储器确定是否存在足够数量的相应组的数据锁存器来在所述第一操作期间进行所述第二操作;如果不存在,则延迟第二操作。当足够数量的锁存器变得可用时,所述存储器锁随后可以在所述第一操作期间进行所述第二操作;并且如果响应于确定是否存在足够数量的相应组的数据锁存器来进行所述第二操作,确定存在足够的数量,则在所述第一操作期间进行所述第二操作。
文档编号G11C7/10GK102037519SQ200980117908
公开日2011年4月27日 申请日期2009年2月19日 优先权日2008年3月19日
发明者戈保凌, 李艳 申请人:桑迪士克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1