用于独立磁盘冗余阵列条带化以防止编程故障的方法及其装置与流程

文档序号:26009785发布日期:2021-07-23 21:29阅读:122来源:国知局
用于独立磁盘冗余阵列条带化以防止编程故障的方法及其装置与流程



背景技术:

本公开涉及数据存储方法和装置。

随着因特网和各种关键任务应用的快速增长,怎么强调保持数据完整性以及确保对关键信息的连续访问的重要性都不为过。为了满足保持和访问可靠数据的需要,独立磁盘冗余阵列(raid)算法已经被用于提高nand存储器器件中的性能、可靠性、功耗和可扩展性。raid算法采用条带化、镜像和/或奇偶校验的技术来从多个存储单元创建大的可靠数据存储。

在raid的不同层级中,raid的层级5(也称为raid5)通常用于保持nand存储器器件中的数据完整性。raid5采用具有分布式奇偶校验(例如,冗余信息)的块级条带化。奇偶校验信息分布在驱动器之间。在单个驱动器发生故障时,可以从分布式奇偶校验和其余驱动器中检索出故障驱动器中的数据,使得不会丢失存储器数据。



技术实现要素:

在一个示例中,提供了一种存储器装置。该装置包括在n个管芯中的存储有存储器数据的多个存储器单元。n个管芯中的每一个包括m个面。m个面中的每一个包括存储器块。n和m均为正整数。该装置还包括操作地耦合到多个存储器单元的控制器。该控制器被配置为确定在m个面中的每一个中并且在n个管芯中的每一个中的存储器块中的j个层,j个层中的每一个包括一对相邻的栅极导电层。j为正整数。该控制器还被配置为确定m组条带。m组条带中的每一组包括存储在m个面中的相应一个中的多个数据部分。该控制器还被配置为确定m组奇偶校验数据部分。m组奇偶校验数据部分中的每一组对应于m个条带中的相应一个。该控制器还被配置为控制临时存储单元以存储m组奇偶校验数据部分。

在另一示例中,提供了一种存储器装置。该装置包括在n个管芯中的存储有存储器数据的多个存储器单元。n个管芯中的每一个包括m个面。m个面中的每一个包括存储器块。n和m均为正整数。该装置包括操作地耦合到多个存储器单元的控制器。该控制器被配置为确定在m个面中的每一个中并且在n个管芯中的每一个中的存储器块中的j个层。j个层中的每一个包括一对相邻的栅极导电层。j是至少为2的正整数。该控制器还被配置为确定j个条带,每个条带对应于m个面中的同一层级的m个层并且包括m×n个数据部分。m×n个数据部分中的每一个存储在相应m个层的相应部分中。该控制器还被配置为确定j个奇偶校验数据部分,每个奇偶校验数据部分对应于相应条带。该控制器还被配置为控制临时存储单元以存储j个奇偶校验数据部分。

在另一示例中,提供了一种用于使用raid条带化来操作存储器装置的方法。该装置包括在n个管芯中的存储有存储器数据的多个存储器单元。n个管芯中的每一个包括m个面。m个面中的每一个包括存储器块。n和m均为正整数。该方法包括确定在m个面中的每一个中并且在n个管芯中的每一个中的存储器块中的j个层。j个层中的每一个包括一对相邻的栅极导电层。j为正整数。该方法还包括确定m组条带,m组条带中的每一组包括存储在m个面中的相应一个中的多个数据部分。该方法还包括确定m组奇偶校验数据部分。m组奇偶校验数据部分中的每一组对应于m个条带中的相应一个。该方法还包括控制临时存储单元以存储m组奇偶校验数据部分。

在又一示例中,提供了一种用于使用raid条带化来操作存储器装置的方法。该装置包括在n个管芯中的存储有存储器数据的多个存储器单元。n个管芯中的每一个包括m个面。m个面中的每一个包括存储器块。n和m均为正整数。该方法包括确定在m个面中的每一个中并且在n个管芯中的每一个中的存储器块中的j个层。j个层中的每一个包括一对相邻的栅极导电层。j是至少为2的正整数。该方法还包括确定j个条带,每个条带对应于m个面中的同一层级的m个层并且包括m×n个数据部分。m×n个数据部分中的每一个存储在相应m个层的相应部分中。该方法还包括确定j个奇偶校验数据部分,每个奇偶校验数据部分对应于相应条带。该方法还包括控制临时存储单元以存储j个奇偶校验数据部分。

附图说明

并入本文并且形成说明书的一部分的附图示出了本公开的实施方式,并且与描述一起进一步用于解释本公开的原理并且使相关领域的技术人员能够制成和使用本公开。

图1a示出了根据本公开的一些方面的包括主机处理器、闪存存储器控制器、随机存取存储器(ram)和nand存储器的装置的示意图。

图1b示出了根据本公开的一些方面的闪存存储器控制器的示意图。

图2是根据本公开的一些方面的用于nand存储器中的raid算法的示例性条带化配置的示意图。

图3a和图3b是根据本公开的一些方面的用于nand存储器中的raid算法的另一示例性条带化配置的示意图。

图4a-图4c是根据本公开的一些方面的用于nand存储器中的raid算法的另一示例性条带化配置的示意图。

图5a示出了根据本公开的一些方面的在图2中的方法中生成的示例性奇偶校验数据储存器。

图5b示出了根据本公开的一些方面的在图3a和图3b中的方法中生成的示例性奇偶校验数据储存器。

图5c示出了根据本公开的一些方面的在图4a-图4c中的方法中生成的示例性奇偶校验数据储存器。

图5d示出了根据本公开的一些方面的在图4a-图4c中的方法中生成的另一示例性奇偶校验数据储存器。

图6a示出了根据本公开的一些方面的用于操作图2中的nand存储器的方法的流程图。

图6b示出了根据本公开的一些方面的用于操作图3a和图3b中的nand存储器的方法的流程图。

图6c示出了根据本公开的一些方面的用于操作图4a-图4c中的nand存储器的方法的流程图。

图7示出了示出根据本公开的一些方面的nand存储器的某些部件的示意图。

将参考附图描述本公开的各个方面。

具体实施方式

尽管讨论了具体的构造和布置,但是应当理解,这样做仅仅是出于说明的目的。这样,在不脱离本公开的范围的情况下,可以使用其他构造和布置。此外,显然本公开也可以用于各种其他应用。如本公开中描述的功能和结构特征可以彼此组合、调整和修改,以及以未在附图中具体描绘的方式组合、调整和修改,使得这些组合、调整和修改在本公开的范围内。

一般地,术语可以至少部分地从上下文中的使用来理解。例如,至少部分地取决于上下文,如本文所使用的术语“一个或多个”可以用于以单数意义描述任何特征、结构或特性,或者可以用于以复数意义描述特征、结构或特性的组合。类似地,诸如“一”或“所述”的术语同样可以被理解为传达单数用法或传达复数用法,这至少部分地取决于上下文。另外,术语“基于”可以被理解为不一定旨在传达排他的一组因素,,并且可以代替地允许存在不一定明确地描述的附加因素,这同样至少部分地取决于上下文。

如本文所使用,术语“存储器串”是指在横向定向的衬底上串联连接的垂直定向的存储器单元晶体管串,使得所述存储器单元晶体管串在相对于衬底的垂直方向上延伸。如本文所用,术语“垂直/垂直地”意味着垂直于基底的横向表面。

为了增加存储容量,nand闪存存储器往往横向地包括多个管芯,每个管芯具有多个面。每个面被横向地划分为一个或多个存储器块,每个存储器块包括横向地延伸的多个栅极导电层。一个存储器块包括垂直地布置在若干层级中的若干栅极导电层,并且每个栅极导电层耦合到横向地分布在存储器块中的多个页中的存储器单元。随着栅极导电层的数量继续垂直地增加,以增加nand闪存存储器的存储容量,相邻栅极导电层之间的空间变得更小。相邻栅极导电层之间的干扰变突出。为了提高存储器单元的完整性和可读性,raid5已经广泛地用于nand闪存存储器中。通常,raid5采用存储器块中的条带化来将存储器块中的存储器数据划分为多个数据部分,在条带中的数据部分之间执行异或(xor)操作,以生成相应奇偶校验数据,并且将奇偶校验数据存储在存储器单元中。一个数据部分可以表示一个页中的存储器数据。一个条带往往包括位于二维中的数据部分,例如,横向地位于跨越不同管芯和不同面的不同存储器块中,并且垂直地位于相同存储器块的不同层级中。例如,对于4个面和4个管芯中的存储器块,条带可以包括128个横向地(例如,在所有的面和管芯中)和垂直地(例如,在多于一个层级中)分布的数据部分。横向地,条带可以包括不同面中的相同位置处的数据部分。垂直地,条带可以包括不同层级中的相同位置处的数据部分。最后的数据部分往往包括条带的奇偶校验数据。在条带的一个数据部分中编程故障的情况下,可以例如通过使用条带的奇偶校验数据和条带中的数据部分的其余数据部分执行xor操作来恢复受损数据部分。例如,对于具有128个数据部分的条带,127个数据部分用于存储存储器数据,并且一个数据部分用于存储条带的奇偶校验数据,因此使用这样的条带化配置的raid5的纠错能力可以被描述为(127+1)。

然而,raid5可以用于恢复条带中的仅一个受损数据部分。在条带中导致两个或更多个受损数据部分的情形下,具有如上所述条带配置的raid5不能恢复多于一个的受损数据部分。例如,可能在一个条带中导致多于一个的受损数据部分的一种情形是“多面故障”,多面故障可能由在并行编程多个面时的编程错误导致。在相同条带中,在不同面中的相同位置处的数据部分可能受损。可能在一个条带中导致多于一个的受损数据部分的另一种情形是“源极选择栅极(ssg)泄漏故障”,ssg故障由ssg的电流泄漏导致。ssg泄漏故障可能导致耦合到ssg的数据部分(例如,在多于一个层级的相同位置处)受损。如果一种或两种情形发生,则当前的条带化配置很容易在单个条带中具有多于一个的受损数据部分。结果,这些受损数据部分中的存储器数据可能丢失。raid5的条带化配置需要改进。

为了解决一个或多个上述问题,本公开介绍了一种解决方案,其中raid技术(例如,raid5)可以用于横向地和垂直地恢复多于一个的受损数据部分。在这些实施方式中,两个相邻栅极导电层被定义为一层,并且每个存储器块在垂直方上包括多个层。与其中条带包括在跨越面和管芯的存储器块中横向地和垂直地分布的数据部分的raid5相比,所提供的方法采用更短的条带。为每个相应条带生成临时奇偶校验数据。临时奇偶校验数据可以存储在临时存储单元中,并且用于恢复相应条带中的受损数据部分。临时奇偶校验数据可以用于生成用于所有面和管芯中的条带的奇偶校验数据组。在不再需要临时奇偶校验数据时,例如,在没有检测到编程故障或者所有编程故障被恢复时,可以将临时奇偶校验数据从临时存储单元去除。在nand存储器中不需要用于临时奇偶校验数据部分的附加存储空间。raid5的纠错能力可以被提高而不增加算法的复杂性。在示例中,对于4个面和4个管芯中的一个存储器块,raid5的纠错能力可以被描述为(127+x),其中,127表示存储有存储器数据的数据部分的数量,并且x表示其中发生编程故障的数据部分的数量,其中,x是大于1的正整数。也就是说,对于装置中的相同数量的存储器单元,可以恢复更多的受损存储器数据。可以提高装置的数据可靠性。

为了提高纠错能力,已经提出了各种条带化配置。这些条带化配置可以用于raid算法中,使得可以恢复由多面故障、ssg泄漏故障或两者导致的受损数据部分。在一些实施方式中,条带包括分布在相应面中和所有管芯中的存储器块中的多个层中的数据部分,并且为每个条带确定面临时奇偶校验数据部分。条带不包括在其他面中的数据部分。在检测到编程故障的情况下(例如,由于多面故障),相应条带的面奇偶校验部分可以用于定位和恢复受损数据部分。在一些实施方式中,条带包括分布在所有面中和所有管芯中的存储器块中的单个层中的数据部分,并且为每个条带确定层奇偶校验数据部分。条带不包括在其他层中的数据部分。条带可以形成在存储器块中的每个单个层中。在检测到编程故障的情况下(例如,由于ssg泄漏故障),相应条带的层奇偶校验部分可以用于定位和恢复受损数据部分。在一些实施方式中,条带包括分布在单个面中和所有管芯中的存储器块中的单个层中的数据部分,并且为每个条带生成奇偶校验数据部分。在检测到编程故障的情况下(例如,由于ssg泄漏故障和/或多面故障),相应条带的奇偶校验部分可以用于定位和恢复受损数据部分。

图1a示出了根据本公开的一些方面的其中操作所提供的方法的装置100的示意图。如图1a中所示,装置100包括在印刷电路板(pcb)102上的主机处理器104、闪存存储器控制器106、随机存取存储器(ram)110和nand存储器108。主机处理器104、闪存存储器控制器106、nand存储器108和ram110中的每一个都是具有其自己的封装并且安装在pcb102上的分立芯片。主机处理器104是用于执行nand存储器108的数据处理的专用处理器。例如,主机处理器104可以包括中央处理单元(cpu)和/或片上系统(soc),例如,应用处理器。数据在主机处理器104与闪存存储器控制器106之间以及在主机处理器104与ram110之间均通过相应互连链路(例如,处理器总线)传输。因此,主机处理器104可以控制ram110和闪存存储器控制器106的操作。nand存储器108可以包括配置在raid中的存储器单元阵列。nand存储器108是3dnand存储器或2dnand存储器,其通过另一互连链路与闪存存储器控制器106传递数据。ram110可以包括任何合适的静态随机存取存储器(sram)和/或动态随机存取存储器(dram)。

闪存存储器控制器106可以管理存储在闪存存储器(nand闪存存储器或nor闪存存储器)中的数据,并且与主机处理器104通信。在一些实施方式中,闪存存储器控制器106被设计为用于在低占空比环境中操作,如安全数字(sd)卡、紧凑型闪存(cf)卡、usb闪存驱动器、或者用于在诸如个人计算机、数字相机、移动电话等的电子设备中使用的其他介质。在一些实施方式中,闪存存储器控制器106被设计为用于在高占空比环境中操作,如用作用于移动设备(诸如智能电话、平板电脑、膝上型电脑等)的数据储存器的固态驱动器(ssd)或嵌入式多媒体卡(emmc)以及企业存储阵列。闪存存储器控制器106可以被配置为控制nand存储器108的操作,例如读取、写入、擦除和编程操作。闪存存储器控制器106还可以被配置为管理关于存储或要存储在nand存储器108中的数据的各种功能,包括但不限于坏块管理、垃圾收集、逻辑到物理地址转换、损耗均衡等。在一些实施方式中,闪存存储器控制器106还被配置为处理关于从nand存储器108读取的或者被写入到nand存储器108的数据的纠错码(ecc)。闪存存储器控制器106还可以执行任何其他合适的功能,例如,格式化闪存存储器。

图1b示出了根据一些实施方式的闪存存储器控制器106的示例性实施方式。闪存存储器控制器106可以通过生成控制信号来控制nand存储器108的操作,以控制nand存储器108中的存储器数据的条带化、计算和存储。与本公开一致,闪存存储器控制器106可以从主机处理器104接收信号以用于nand存储器108的操作。在一些实施方式中,闪存存储器控制器106可以包括处理器105、存储器109和储存器107。在一些实施例中,闪存存储器控制器106可以在单个设备中具有不同的模块、或者具有专用功能的单独设备,所述单个设备例如集成电路(ic)芯片(实施为例如专用集成电路(asic)或现场可编程门阵列(fpga))。在一些实施例中,闪存存储器控制器106的部件可以在集成设备中,或者分布在不同的位置处但是通过网络彼此通信。

处理器105可以包括任何适当类型的通用或专用微处理器、数字信号处理器或微控制器。处理器105可以被配置为专用于分析信号(例如,来自主机处理器104的信号)和/或控制扫描方案的独立处理器模块。替代地,处理器105可以被配置为用于执行与信号分析/扫描方案控制无关的其他功能的共享处理器模块。尽管在图1b中未示出,但是处理器105可以包括使用软件、硬件、中间件、固件或其任何组合来实施的多个功能单元或模块。多个功能单元可以基于来自主机处理器104的信号或者任何预先存储的控制数据来执行本公开的奇偶校验数据的条带化、计算和控制。

储存器107和存储器109可以包括任何适当类型的大容量储存器,其被提供以存储处理器105可能需要操作的任何类型的信息。存储器109和/或储存器107可以是易失性或非易失性、磁性、基于半导体、基于磁带、光学、可移动、不可移动或其他类型的存储设备或有形(即,非暂时性)计算机可读介质,包括但不限于rom、闪存存储器、动态ram、静态ram、硬盘、ssd、光盘等。储存器107和/或存储器109可以被配置为存储一个或多个计算机程序,所述计算机程序可以由处理器105执行,以执行本文公开的功能。例如,存储器109和/或储存器107可以被配置为存储可以由处理器105执行以形成raid条带、计算奇偶校验数据以及控制奇偶校验数据的存储的(一个或多个)程序。在一些实施方式中,储存器107和存储器109还可以被配置为存储/缓存由处理器105接收和/或使用的信息和数据。例如,储存器107和存储器109可以存储/缓存从主机处理器104接收的数据和/或在raid操作期间生成的数据(例如,临时奇偶校验数据)。

返回参考图1a,闪存存储器控制器106可以包括主机接口(i/f),主机接口(i/f)例如通过处理器总线操作地耦合到主机处理器104并且被配置为从主机处理器104接收指令。主机i/f可以包括串联附接scsi(sas)、并行scsi、pci高速(pcie)、nvm高速(nvme)、高级主机控制器接口(ahci),仅举几个例子。闪存存储器控制器106还可以包括管理模块和nand存储器接口(i/f)。在一些实施方式中,管理模块操作地耦合到主机i/f和nand存储器i/f,并且被配置为基于从主机处理器104接收的指令生成一个或多个控制信号以控制nand存储器108的操作(例如,读取、写入、擦除和编程操作),并且将控制信号发送到nand存储器i/f。例如,管理模块确定nand存储器108中的条带,并且执行计算,以确定临时奇偶校验数据并且恢复条带中的存储器数据。管理模块可以是任何合适的控制和状态机。在一些实施方式中,nand存储器i/f被配置为将控制信号传输到nand存储器108并且从nand存储器108接收状态信号。状态信号可以指示由nand存储器108执行的每个操作(例如,失败、成功、延迟等)的状态,状态信号可以作为反馈被发送回管理模块。nand存储器i/f可以包括单数据速率(sdr)nand闪存接口、开放nand闪存接口(onfi)、切换双数据速率(ddr)接口,仅举几个例子。

nand存储器108是具有3dnand存储器单元阵列形式的nand存储器单元阵列的nand闪存存储器。在一些实施方式中,nand存储器单元阵列是由字线和存储器串的相交形成的3dnand存储器单元阵列,字线和存储器串中的每一个在衬底上方穿过存储器堆叠层垂直地延伸。取决于3dnand技术(例如,存储堆叠层中的层/叠层的数量),存储器串通常包括32到256个nand存储器单元,其中的每一个nand存储器单元包括浮栅晶体管或电荷捕获晶体管。

nand存储器单元可以被组织成页,页然后被组织成存储器块,其中,每个nand存储器单元电连接到被称为位线(bl)的单独线。nand存储器单元中具有相同位置的所有单元可以由字线(wl)(即导电栅极层)通过控制栅极电连接。每个字线可以与多个页中的存储器单元的控制栅极电耦合。在一些实施方式中,面包含通过同一位线电连接的某一数量的存储器块。图7示出了根据一些实施方式的存储器块中的nand存储器108在横向方向上的截面图的示意图。如图7中所示,多个栅极导电层(即,gcl1、gcl2…)在垂直方向上布置在存储器块中。栅极导电层中的每一个横向地延伸。由单个栅极导电层和存储器串形成的存储器单元形成页。在一个存储器块中,每个栅极导电层可以耦合到多个页的存储器单元。也就是说,一个存储器块可以包括在单个层级上的多个页。两个相邻的栅极导电层形成本公开中定义的层。例如,gcl1和gcl2形成层1,gcl3和gcl4形成层2,等等。ssg可以各自在垂直方向上电耦合到多个栅极导电层(例如,多个存储器单元)。在一些实施方式中,nand存储器108包括多个管芯,每个管芯具有至少一个面。在图2、图3a、图3b和图4a-图4c以及相关描述中详细示出了nand存储器108的示例。

主机处理器104可以基于从闪存存储器控制器106传输的数据和/或信号来协调装置100中的不同模块/部分中的操作。主机处理器104可以基于从闪存存储器控制器106传输的数据和/或信号来控制ram110的操作。例如,主机处理器104可以从闪存存储器控制器106接收临时奇偶校验数据,并且将临时奇偶校验数据存储在ram110中以用于计算和/或参考。在不再需要临时奇偶校验数据时,主机处理器104还可以将临时奇偶校验数据从ram110去除。

在另一示例(未示出)中,闪存存储器控制器106和nand存储器108的芯片可以包括在同一封装(例如,通用闪存存储(ufs)封装或emmc封装)中,并且通过引线键合电连接。闪存存储器控制器106然后可以通过互连链路(例如,处理器总线)与主机处理器104传递数据,例如,互连链路由诸如ufs驱动器软件或mmc驱动器软件的软件驱动器驱动。

在一些实施方式中,装置100还包括外围电路(未示出,又称为控制和感测电路),外围电路包括用于促进nand存储器108的操作的任何合适的数字、模拟和/或混合信号电路。例如,外围电路可以包括页缓冲器、解码器(例如,行解码器或列解码器)、感测放大器、驱动器(例如,字线驱动器)、电荷泵、电流或电压参考或者电路的任何有源或无源部件(例如,晶体管、二极管、电阻器或电容器)中的一个或多个。

可以对被配置为多个条带的nand存储器108的存储器数据执行raid算法,以创建数据冗余。条带可以包括分布在nand存储器108的期望物理位置(例如,页、存储器块等)中的多个数据部分。可以生成临时奇偶校验数据,以用于检测和/或恢复相应条带的受损存储器数据。可选地,可以保留或去除临时奇偶校验数据。可以为所有条带中的存储器数据生成总奇偶校验数据。图2、图3a和图3b以及图4a-图4c示出了根据一些实施方式的在相应nand存储器中的三种不同条带化配置和对应的raid算法。图5a-图5d示出了根据本公开的一些方面的用于相应raid算法的临时奇偶校验数据储存器。图6a-图6c各自示出了根据本公开的一些方面的用于在相应条带化配置中使用raid算法来条带化以及执行数据恢复的方法的流程图。应当理解,方法600、620和640中所示的操作不是穷举的,并且在所示操作中的任何一个操作之前、之后或之间也可以执行其他操作。此外,操作中的一些可以同时地执行、或者以与图6a-图6c所示的顺序不同的顺序执行。

图2、图3a和图3b以及图4a-图4c中的nand存储器200、300和400各自是图1a中的nand存储器108的示例。对nand存储器200、300和400的操作可以由闪存存储器控制器(例如,闪存存储器控制器106)控制。为了便于说明,nand存储器200、300和400可以各自包括n个管芯(例如,die1、die2、…、dien),其中,n是至少为1的正整数。每个管芯可以被横向地划分为m个面(例如,pln1、pln2、…、plnm),m是至少为1的正整数。在一些实施方式中,m等于或大于2。在一些实施方式中,m大于或等于4,例如6或8。每个面可以被横向地划分为x个存储器块(b1、b2、…、bx),x是至少为1的正整数。每个存储器块可以包括多个存储器单元,多个存储器单元由若干栅极导电层(例如,横向地延伸)与多个存储器串(例如,垂直地延伸)的相交形成。在每个存储器块中垂直地布置的栅极导电层的数量可以等于或大于2。在一些实施方式中,相邻存储器块中的同一层级的栅极导电层可以彼此接触。每个存储器块可以被横向地划分为多个页。存储器数据可以存储在页、存储器块、面和管芯中的存储器单元中。在一些实施方式中,m等于4。在一些实施方式中,n等于4。在一些实施方式中,存储器块中的栅电极层的数量等于或大于16。

图2示出了根据本公开的一些方面的用于在nand存储器200中采用的raid算法的条带化配置,并且图5a示出了用于存储根据raid算法生成的临时奇偶校验数据的临时存储单元210。raid算法可以是raid5。在一些实施方式中,nand存储器200中的条带化可以用于在多面故障中恢复存储器数据。一起描述图2、图5a和图6a。

参考图6a,方法600开始于操作602,其中,确定在m个面的和n个管芯中的每个存储器块中的j个层,其中,j是至少为2的正整数。每个层包括一对相邻的栅极导电层。图2示出了用于方法600的对应配置。

如图2中所示,在每个面(例如,pln1、pln2、…、plnm)的存储器块b1中,可以在每个管芯die1、die2、…、dien中确定j个层l1、l2、…、lj。每个层可以包括一对相邻的栅极导电层。在一些实施方式中,存储器块b1包括至少16个栅极导电层,并且j等于或者大于8。闪存存储器控制器106可以执行该操作。

返回参考图6a,方法600进行至操作604,其中,确定m个条带,每个条带被配置在相应面中。

如图2中所示,可以确定m个条带201-1、201-2、…、201-(m-1)和201-m。m个条带中的每一个可以对应于相应面,并且包括存储在所有n个管芯中的相应面中的j个层中的j×n个数据部分。每个数据部分可以包括存储在存储器单元中的存储器数据,存储器单元由相应存储器块中的相应层(即,相邻栅极导电层对)与存储器块中的存储器串的相交形成。例如,条带201-1可以对应于面pln1,并且可以包括存储在n个管芯(即die1–dien)中的存储器块b1中的j个层中的j×n个数据部分,并且条带201-m可以对应于面plnm,并且可以包括存储在n个管芯(即die1–dien)中的存储器块b1中的j个层中的j×n个数据部分。条带201-1中的每个数据部分包括存储在存储器单元中的存储器数据,存储器单元由层l1中的两个栅极导电层与面pln1中的相应存储器块b1中的存储器串形成。话句话说,存储在管芯die1中的面pln1的存储器块b1中的层l1中的存储器数据可以形成条带201-1的第一数据部分,存储在管芯die2中的面pln1的存储器块b1中的层l1中的存储器数据可以形成条带201-1的第二数据部分,…,存储在管芯die1中的面pln1的存储器块b1中的层lj中的存储器数据可以形成条带201-1的第(j×n-(n-1))数据部分,…,并且存储在管芯dien中的面pln1的存储器块b1中的层lj中的存储器数据可以形成条带201-1的第(j×n)数据部分。在一些实施方式中,闪存存储器控制器106可以执行该操作。

如图2中所示,m个条带201-1、201-2、…、201-(m-1)和201-m各自被配置在相应面中,并且不包括另一面中的数据部分。也就是说,每个条带的数据部分仅被配置在相应面中,而不在另一面中,例如,不“跨面”。条带化配置可以确保在多个面的并行编程中发生的编程故障不会影响单个条带中的多于一个的数据部分。也就是说,多面故障可以导致单个条带中的至多一个的受损数据部分。因此,可以避免由多面故障导致的条带中的多于一个的受损数据部分。因此,可以使用条带的临时奇偶校验数据来恢复受损数据部分。下面提供细节。

返回参考图6a,方法600进行至操作606,其中,为m个条带确定m个面数据部分。

如图2所示,可以为m个条带确定m个面奇偶校验数据部分202-1、202-2、…、202-(m-1)、202-m。面奇偶校验数据部分中的每一个可以基于相应条带的数据部分生成。在一些实施方式中,在每个条带的j×n个数据部分之间执行异或(xor)操作,以生成相应面奇偶校验数据部分。例如,面奇偶校验数据部分202-1可以是对条带201-1中的所有j×n个数据部分进行xor操作的结果,面奇偶校验数据部分202-2可以是对条带201-2中的所有j×n个数据部分进行xor操作的结果,…,面奇偶校验数据部分202-(m-1)可以是对条带201-(m-1)中的所有j×n个数据部分进行xor操作的结果,并且面奇偶校验数据部分202-m可以是对条带201-m中的所有j×n个数据部分进行xor操作的结果。在一些实施方式中,闪存存储器控制器106可以执行该操作。

返回参考图6a,方法600进行至操作608,其中,临时存储单元被控制为存储m个面奇偶校验数据部分。

如图2中所示,临时存储单元210可以被控制为存储m个面奇偶校验数据部分202-1、202-2、…、202-(m-1)、202-m中的每一个。图5a示出了其中存储m个面奇偶校验数据部分的临时存储单元210的示图。临时存储单元210可以是允许m个面奇偶校验数据部分被存储期望时间量的任何合适介质中的存储空间。在各种实施方式中,临时存储单元210可以是ram110中的分区和/或nand存储器108中的专用存储空间。在一些实施方式中,临时存储单元210可以在存储器109和/或储存器107中。在一些实施方式中,临时存储单元210可以是耦合到装置100的外部存储空间。在一些实施方式中,临时存储单元210位于ram110中。在一些实施方式中,存储m个面奇偶校验数据部分的持续时间足够长,以便闪存存储器控制器106识别任何编程故障、定位受损数据部分、并且使用相应面奇偶校验数据部分来恢复受损数据部分。在一些实施方式中,在完成恢复操作或者没有检测到编程故障之后,去除m个面奇偶校验数据部分。在一些其他实施方式中,保留m个面奇偶校验数据部分。在一些实施方式中,闪存存储器控制器106可以执行该操作。

返回参考图6a,方法600进行至操作610,其中,检测由于多面故障导致的任何编程故障。如果检测到编程故障,则方法600进行至操作612,其中,使用相应面奇偶校验数据部分来恢复存储在其中发生多面故障的受损数据部分中的存储器数据。在受损数据部分的恢复之后,方法600进行至操作614,其中,根据m个面奇偶校验数据部分生成奇偶校验数据组。如果没有检测到编程故障,则方法600进行至操作614。

闪存存储器控制器106可以确定在面pln1–plnm的并行编程期间是否发生任何多面故障。如先前所解释的,由于多个面的并行编程的多面故障可能导致这些面的相同位置处的存储器单元中的存储器数据受损。结果,在一个或多个条带(即202-1、…、202-m)的相同位置处的数据部分可能受损。在一些实施方式中,闪存存储器控制器106可以使用每个条带的面奇偶校验数据部分来确定在相应条带的数据部分中是否发生任何多面故障。在一些实施方式中,闪存存储器控制器106可以在相应条带的数据部分与相应条带的面奇偶校验数据部分之间执行xor操作,以检测并且识别受损数据部分。可以确定每个(如果有的话)条带中的受损数据部分的位置。

如果在条带中检测到受损数据部分,则闪存存储器控制器106可以基于条带中的数据部分的其余数据部分(例如,未受损的数据部分)和条带的面奇偶校验数据部分来生成替换数据部分。在一些实施方式中,替换数据部分的生成包括在条带中的数据部分的其余数据部分与条带的面奇偶校验数据部分之间执行xor操作。闪存存储器控制器106可以用替换数据部分恢复受损数据部分,使得受损数据中的存储器数据可以被保留。在一些实施方式中,如果需要计算,例如用于识别和定位受损数据部分和/或生成替换数据部分,则闪存存储器控制器106可以从临时存储单元210访问面奇偶校验数据部分。

可以根据m个面奇偶校验数据部分生成奇偶校验数据组212,奇偶校验数据组212表示m个面和n个管芯中的存储器块b1中的j个层(例如,j×n×m个数据部分)的奇偶校验/冗余数据。在一些实施方式中,通过在m个面奇偶校验数据部分之间执行xor操作来获得奇偶校验数据组212。可以将奇偶校验数据组212存储在nand存储器200中的永久存储单元(例如,多个存储器单元)中。在一些实施方式中,可以将奇偶校验数据组212存储在条带201-m中的数据部分中。闪存存储器控制器106可以执行该操作。

在一些实施方式中,闪存存储器控制器106可以继续对m个面和n个管芯中的存储器块b1中的剩余层执行操作602-616。例如,可以将对应于存储器块b1的层l(j+1)到lk的面奇偶校验数据部分204-1、…、204-m存储在临时存储单元210中,以用于计算和/或参考,如图5a中所示。对m个面和n个管芯中的其他存储器块也可以执行相同操作。

参考图6a,方法600进行至操作616,其中,将m个面奇偶校验数据部分从临时存储单元去除。

在一些实施方式中,在(一个或多个)受损数据部分的恢复之后,闪存存储器控制器106可以将m个面奇偶校验数据部分从临时存储单元210去除。在一些实施方式中,如果没有检测到编程故障,则闪存存储器控制器106将m个面奇偶校验数据部分从临时存储单元210去除。通过使用相应面奇偶校验数据部分恢复不同面中的(一个或多个)受损数据部分,可以恢复由多面故障导致的不同面中的相同位置处的多于一个的受损数据部分。与其中一个条带包括跨面的数据部分的raid方法相比,增加了在这些面中可以恢复/保护的数据部分的数量,例如,增加到多于1。

图3a和图3b示出了根据本公开的一些方面的用于在nand存储器300中采用的raid算法的条带化配置,并且图5b示出了用于存储根据raid算法生成的临时奇偶校验数据的临时存储单元310。raid算法可以是raid5。在一些实施方式中,nand存储器300中的条带化可以用于在ssg泄漏故障中恢复存储器数据。一起描述图3a、图3b、图5b和图6b。

参考图6b,方法620开始于操作622,其中,确定在m个面和n个管芯中的存储器块中的j个层,j是至少为2的正整数。每个层包括一对相邻的栅极导电层。图3a和图3b示出了用于方法620的对应配置。闪存存储器控制器106可以执行该操作。该操作可以与操作602类似或相同,并且这里不再重复详细的描述。

返回参考图6b,方法620进行至操作624,其中,确定j个条带,每个条带被配置在m个面和n个管芯中的单个层中。

如图3a和图3b中所示,可以确定j个条带301-1、301-2、…、301-(j-1)和301-j。j个条带中的每一个可以对应于j个层中的相应一个。j个条带中的每一个可以包括存储在所有面和所有管芯中的相应单个层中的m×n个数据部分。每个数据部分可以包括存储在存储器单元中的存储器数据,存储器单元由相应存储器块中的相应层(即,相邻栅极导电层对)与存储器块中的存储器串的相交形成。例如,条带301-1可以对应于层l1,并且可以包括存储在m个面(即,pln1–plnm)和n个管芯(即,die1–dien)中的存储器块b1中的层l1中的m×n个数据部分,并且条带301-j可以对应于层lj,并且可以包括存储在m个面和n个管芯中的存储器块b1中的层lj中的m×n个数据部分。条带301-1中的每个数据部分包括存储在存储器单元中的存储器数据,存储器单元由m个面和n个管芯中的相应存储器块b1中的两个栅极导电层与存储器串形成。换句话说,存储在管芯die1中的面pln1的存储器块b1中的层l1中的存储器数据可以形成条带301-1的第一数据部分,存储在管芯die1中的面pln2的存储器块b1中的层l1中的存储器数据可以形成条带301-1的第(n+1)数据部分,…,存储在管芯die1中的面plnm的存储器块b1中的层l1中的存储器数据可以形成条带301-1的第(m×n-(n-1))数据部分,…,并且存储在管芯dien中的面plnm的存储器块b1中的层l1中的存储器数据可以形成条带301-1的第(m×n)数据部分。在一些实施方式中,闪存存储器控制器106可以执行该操作。

如图3a和图3b中所示,j个条带301-1、301-2、…、301-(j-1)和301-j各自被配置在相应层中,并且未被配置在另一层中。也就是说,j个条带中的每一个包括仅在存储器块中的单个层中的数据部分,并且不包括在另一层中的数据部分,例如,不“跨层”。条带化配置可以确保ssg泄漏故障不会导致单个条带中的多于一个的受损数据部分。ssg泄漏故障可以至多导致不同层中的受损数据部分,每个受损数据部分在不同条带中。因此,可以避免由ssg泄漏故障导致的单个条带中的超过两个的受损数据部分。受损数据部分各自可以使用条带的奇偶校验数据来恢复。下面提供细节。

返回参考图6b,方法620进行至操作626,其中,为j个条带确定j个层奇偶校验数据部分。

如图3a和图3b中所示,可以为j个条带确定j个层奇偶校验数据部分302-1、302-2、…、302-(j-1)、302-j。层奇偶校验数据部分中的每一个可以基于相应条带的数据部分生成。在一些实施方式中,在每个条带的m×n个数据部分之间执行异或(xor)操作,以生成相应层奇偶校验数据部分。例如,层奇偶校验数据部分302-1可以是对条带301-1的所有m×n个数据部分进行xor操作的结果,层奇偶校验数据部分302-2可以是对条带301-2的所有m×n个数据部分进行xor操作的结果,…,层奇偶校验数据部分302-(j-1)可以是对条带301-(j-1)的所有m×n个数据部分进行xor操作的结果,并且层奇偶校验数据部分302-j可以是对条带301-j的所有m×n个数据部分进行xor操作的结果。在一些实施方式中,闪存存储器控制器106可以执行该操作。

返回参考图6b,方法620进行至操作628,其中,临时存储单元被控制为存储j个层奇偶校验数据部分。

如图3a和图3b中所示,临时存储单元310可以被控制为存储j个层奇偶校验数据部分302-1、302-2、…、302-(j-1)、302-j中的每一个。图5b示出了其中存储j个层奇偶校验数据部分的临时存储单元310的示图。临时存储单元310可以是允许j个层奇偶校验数据部分被存储期望时间量的任何合适介质中的存储空间。在各种实施方式中,临时存储单元310可以是ram110中的分区和/或nand存储器108中的专用存储空间。在一些实施方式中,临时存储单元310可以是耦合到装置100的外部存储空间。在一些实施方式中,临时存储单元310位于ram110中。在一些实施方式中,存储j个层奇偶校验数据部分的持续时间足够长,以便闪存存储器控制器106识别任何编程故障、定位受损数据部分、并且使用相应层奇偶校验数据部分来恢复受损数据部分。在一些实施方式中,在完成恢复操作或者没有检测到编程故障之后,去除j个层奇偶校验数据部分。在一些其他实施方式中,保留j个层奇偶校验数据部分。在一些实施方式中,闪存存储器控制器106可以执行该操作。

返回参考图6b,方法620进行至操作630,其中,检测例如由于ssg泄露故障的任何编程故障。如果检测到编程故障,则方法620进行至操作632,其中,使用相应层奇偶校验数据部分来恢复存储在其中发生编程故障的受损数据部分中的存储器数据。在受损数据部分的恢复之后,方法620进行至操作634,其中,根据j个层奇偶校验数据部分生成奇偶校验数据组。如果没有检测到编程故障,则方法620进行至操作634。

闪存存储器控制器106可以确定是否发生了由于ssg泄漏故障的任何编程故障。如先前所解释的,由于ssg泄露故障的编程故障可能导致不同层级的相同位置处的存储器单元中的存储器数据受损。然而,图3a和图3b中所示的条带化可以确保条带中的仅单个数据部分(如果有的话)可能由于ssg泄漏故障而受损。ssg泄漏故障最多可能导致不同条带中的数据部分受损。在一些实施方式中,闪存存储器控制器106可以使用每个条带的层奇偶校验数据部分来确定在相应条带的数据部分中是否发生任何编程故障。在一些实施方式中,闪存存储器控制器106可以在相应条带的数据部分与相应条带的层奇偶校验数据部分之间执行xor操作,以检测并且识别受损数据部分。可以确定每个(如果有的话)条带中的受损数据部分的位置。

如果在条带中检测到受损数据部分,则闪存存储器控制器106可以基于条带中的数据部分的其余数据部分(例如,未受损的数据部分)和条带的层奇偶校验数据部分来生成替换数据部分。在一些实施方式中,替换数据部分的生成包括在条带中的数据部分的其余数据部分与条带的层奇偶校验数据部分之间执行xor操作。闪存存储器控制器106可以用替换数据部分恢复受损数据部分,使得受损数据中的存储器数据可以被保留。在一些实施方式中,如果需要计算,例如用于识别和定位受损数据部分和/或生成替换数据部分,则闪存存储器控制器106可以从临时存储单元310获得层奇偶校验数据部分。

可以根据j个层奇偶校验数据部分生成奇偶校验数据组312,奇偶校验数据组212表示m个面和n个管芯中的存储器块b1中的j个层(例如,j×n×m个数据部分)的奇偶校验/冗余数据。在一些实施方式中,通过在j个层奇偶校验数据部分之间执行xor操作来获得奇偶校验数据组312。可以将奇偶校验数据组312存储在nand存储器300中的永久存储单元(例如,多个存储器单元)中。闪存存储器控制器106可以执行该操作。

在一些实施方式中,闪存存储器控制器106可以继续对m个面和n个管芯中的存储器块b1中的剩余层执行操作622-636。例如,可以将对应于存储器块b1的层l(j+1)到lk的层奇偶校验数据部分302-(j+1)、…、302-(k-1)、302-k存储在临时存储单元210中,以用于计算和/或参考。对m个面和n个管芯中的其他存储器块也可以执行相同操作。

参考图6b,方法620进行至操作636,其中,将j个层奇偶校验数据部分从临时存储单元去除。

在一些实施方式中,在(一个或多个)受损数据部分的恢复以及奇偶校验数据组的生成之后,闪存存储器控制器106可以将j个层奇偶校验数据部分从临时存储单元310去除。在一些实施方式中,如果没有检测到编程故障,则闪存存储器控制器106将j个层奇偶校验数据部分从临时存储单元310去除。通过使用相应层奇偶校验数据部分恢复不同层中的(一个或多个)受损数据部分,可以恢复由由于在多于一个的层中的相同位置处的ssg泄露故障的编程故障导致的多于一个的受损数据部分。与其中一个条带包括跨层的数据部分的raid方法相比,增加了在这些层中可以恢复/保护的数据部分的数量,例如,增加到多于1。

图4a-图4c示出了根据本公开的一些方面的用于在nand存储器400中采用的raid算法的条带化配置,图5c示出了用于存储根据raid算法生成的临时奇偶校验数据的临时存储单元410,并且图5d示出了用于存储根据raid算法生成的临时奇偶校验数据的第二临时存储单元420。raid算法可以是raid5。在一些实施方式中,nand存储器400中的条带化配置可以用于恢复由ssg泄漏故障、多面故障或两者损害的存储器数据。一起描述图4a-图4c、图5c、图5d和图6c。

参考图6c,方法640开始于操作642,其中,确定m个面和n个管芯中的每个存储器块中的j个层,j是至少为2的正整数。每个层包括一对相邻的栅极导电层。图4a-图4c示出了用于方法640的对应配置。闪存存储器控制器106可以执行该操作。该操作可以与操作602类似或相同,并且这里不再重复详细的描述。

返回参考图6c,方法640进行至操作644,其中,确定m组条带,每个组具有j个条带。m组中的每一组对应于m个面中的相应一个。j个条带中的每一个被配置在n个管芯中的相应面中的单个层中。

如图4a-图4c中所示,可以确定j×m个条带,j×m个条带被配置在m组条带(即组401、…、组40m)中,每个组具有j个条带(即条带1、条带2、…、条带j)。m组中的每一组可以对应于m个面中的相应一个。j个条带中的每一个可以对应于相应面中的j个层中的相应一个。j个条带中的每一个可以包括存储在n个管芯中的相应单个层中的n个数据部分。每个数据部分可以包括存储在存储器单元中的存储器数据,存储器单元由相应存储器块中的相应层(即,相邻栅极导电层对)与存储器块中的存储器串的相交形成。例如,组401的条带1可以对应于面pln1中的存储器块b1中的层l1,并且可以包括存储在面pln1和n个管芯(即die1–dien)中的存储器块b1中的层l1中的n个数据部分;并且组40m的条带j可以对应于面plnm中的存储器块b1中的层lj,并且可以包括存储在面plnm和n个管芯中的存储器块b1中的层lj中的n个数据部分。条带中的每个数据部分包括存储在存储器单元中的存储器数据,存储器单元由相应面和n个管芯中的相应存储器块b1中的两个栅极导电层与存储器串形成。换句话说,对于m组条带中的每一组,存储在管芯die1中的存储器块b1中的层l1中的存储器数据可以形成条带1的第一数据部分,存储在管芯dien中的存储器块b1中的层l1中的存储器数据可以形成条带1的第n数据部分,…,存储在管芯die1中的存储器块b1中的层lj中的存储器数据可以形成条带j的第一数据部分,并且存储在管芯dien中的存储器块b1中的层lj中的存储器数据可以形成条带j的第n数据部分。在一些实施方式中,闪存存储器控制器106可以执行该操作。

如图4a-图4c中所示,m组条带各自被配置在相应面中,并且每个组中的j个条带各自被配置到单个相应层中。也就是说,每个条带被配置在单个面和单个层中。每个条带的数据部分因此仅被配置在单个层和单个面中,而不被配置在另一层或另一面中,例如,不“跨面”或“跨层”。条带化可以确保编程故障(例如,多面故障和/或ssg泄漏故障)可以仅损害条带中的单个数据部分。多面故障和/或ssg泄漏故障可以至多损害不同条带中的存储器数据。因此,可以避免由诸如ssg泄漏故障和/或多面故障的编程故障导致的条带中的多于一个的受损数据部分,并且可以使用条带的相应奇偶校验数据来恢复受损数据部分。下面提供细节。

返回参考图6c,方法640进行至操作646,其中,为m组条带确定m组奇偶校验数据部分,每一组奇偶校验数据部分具有j个奇偶校验数据部分。

如图4a-图4c中所示,可以确定m组奇偶校验数据部分,每一组奇偶校验数据部分具有j个奇偶校验数据部分。每一组奇偶校验数据部分可以对应于相应条带组,并且组中的j个奇偶校验数据部分中的每一个可以对应于相应组中的相应条带。如图4a-图4c中所示,第一组奇偶校验数据部分可以包括奇偶校验数据部分401-1、401-2、…、401-j;第(m-1)组奇偶校验数据部分可以包括奇偶校验数据部分40(m-1)-1、40(m-1)-2、…、40(m-1)-(j-1)、40(m-1)-j;并且第m组奇偶校验数据部分可以包括奇偶校验数据部分40m-1、40m-2、…、40m-(j-1)、40m-j。奇偶校验数据部分中的每一个可以基于相应条带的数据部分生成。在一些实施方式中,在每个条带的n个数据部分之间执行异或(xor)操作,以生成相应奇偶校验数据部分。例如,奇偶校验数据部分401-1可以是对条带组401的条带1的所有n个数据部分进行xor操作的结果,奇偶校验数据部分401-2可以是对条带组401的条带2的所有n个数据部分进行xor操作的结果,…,奇偶校验数据部分40m-1可以是对条带组40m的条带1的所有n个数据部分进行xor操作的结果,并且奇偶校验数据部分40m-j可以是对条带组40m的条带j的所有n个数据部分进行xor操作的结果。在一些实施方式中,闪存存储器控制器106可以执行该操作。

返回参考图6c,方法640进行至操作648,其中,临时存储单元被控制为存储m组奇偶校验数据部分。

如图4a-图4c中所示,临时存储单元410可以被控制为存储m组奇偶校验数据部分中的每一组。图5c示出了其中存储m组奇偶校验数据部分的临时存储单元410的示图。临时存储单元410可以是允许奇偶校验数据部分被存储期望时间量的任何合适介质中的存储空间。在各种实施方式中,临时存储单元410可以是ram110中的分区和/或nand存储器108中的专用存储空间。在一些实施方式中,临时存储单元410位于ram110中。在一些实施方式中,存储m组奇偶校验数据部分的持续时间足够长,以便闪存存储器控制器106识别任何编程故障、定位受损数据部分、并且使用相应层奇偶校验数据部分来恢复受损数据部分。在一些实施方式中,在完成恢复操作或者没有检测到编程故障之后,去除m组奇偶校验数据部分。在一些其他实施方式中,保留m组奇偶校验数据部分。在一些实施方式中,闪存存储器控制器106可以执行该操作。

在一些实施方式中,对于每一组奇偶校验数据部分,闪存存储器控制器106可以计算临时奇偶校验数据部分。可以确定m个临时奇偶校验数据部分。在一些实施方式中,对于每一组条带,闪存存储器控制器106顺次地计算奇偶校验数据部分(例如,形成条带1的奇偶校验数据部分到条带j的奇偶校验数据部分)以获得m组奇偶校验数据部分。对于每一组奇偶校验数据部分,闪存存储器控制器106可以执行(例如,条带2的)第二奇偶校验数据部分与(例如,条带1的)第一奇偶校验数据部分之间的xor操作,以生成临时奇偶校验部分;并且可以执行(例如,条带3的)第三奇偶校验数据部分与临时奇偶校验数据部分之间的xor操作,以生成新的临时奇偶校验部分。闪存存储器控制器106可以将临时奇偶校验数据部分存储在第二临时存储单元(未示出)中,并且用新的临时奇偶校验数据部分替换临时奇偶校验数据部分。第二临时存储单元可以是ram110中的分区和/或nand存储器108中的专用存储空间。在一些实施方式中,第二临时存储单元可以是耦合到装置100的外部存储空间。在一些实施方式中,第二临时存储单元位于ram110中。在一些实施方式中,第二临时存储单元与临时存储单元410在同一介质中。闪存存储器控制器106可以继续计算j个条带中的其余条带中的每一个的奇偶校验数据部分,并且为j个条带中的其余条带中的每一个生成新的临时奇偶校验数据部分。闪存存储器控制器106可以将每一组的j个奇偶校验数据部分存储在临时存储单元410中,并且对于这些条带中的每一个,用第二临时存储单元中的新的临时奇偶校验数据部分更新先前的临时奇偶校验数据部分。

例如,如图4a-图4c中所示,对于m组条带中的每一组,闪存存储器控制器106可以计算第一奇偶校验数据部分401-1、…、40(m-1)-1、40m-1。然后,闪存存储器控制器106可以计算第二奇偶校验数据部分401-2、…、40(m-1)-2、40m-2。然后,闪存存储器控制器106可以通过在第二奇偶校验数据部分与第一奇偶校验数据部分之间执行xor操作来计算每一组的临时奇偶校验数据部分(例如,411-1、412-1、…、41(m-1)-1、41m-1)。例如,闪存存储器控制器106可以确定411-1=401-1×401-2、412-1=402-1×402-2、…、41(m-1)-1=40(m-1)-1×40(m-1)-2、41m-1=40m-1×40m-2。临时奇偶校验数据部分411-1、412-1、…、41(m-1)-1、41m-1可以被存储在第二临时存储单元中。然后,闪存存储器控制器106可以计算第三奇偶校验数据部分401-3、402-3、…、40(m-1)-3、40m-3以及对应于每一组条带的新的临时奇偶校验数据部分。例如,闪存存储器控制器106可以确定411-2=411-1×401-3、412-2=412-1×402-3、…、41(m-1)-2=41(m-1)-1×40(m-1)-3、41m-2=41m-1×40m-3。闪存存储器控制器106可以用相应新的临时奇偶校验数据部分替换第二临时存储单元中的临时奇偶校验数据部分。在一些实施方式中,闪存存储器控制器106可以重复以上操作,直至每一组的最后一个条带。如图4c中所示,闪存存储器控制器106可以确定411-(j-1)=411-(j-2)×401-j、412-(j-1)=412-(j-1)×402-j、…、41(m-1)-(j-1)=41(m-1)-(j-2)×40(m-1)-j、41m-(j-1)=41m-(j-2)×40m-j。然后,可以获得m个临时奇偶校验数据部分,并且将m个临时奇偶校验数据部分存储在第二临时存储单元中,以用于计算和/或参考。

在一些实施方式中,对于n=2,n表示正整数,闪存存储器控制器106可以对每一组条带在第n奇偶校验数据部分与第(n-1)奇偶校验数据部分之间执行xor操作,以生成第(n-1)临时奇偶校验数据部分。然后,闪存存储器控制器106可以将第(n-1)临时奇偶校验数据部分存储到第二临时存储单元中。对于n>2,n表示正整数,闪存存储器控制器106可以对每一组条带在第n奇偶校验数据部分的奇偶校验数据部分与第(n-2)临时奇偶校验数据部分之间执行xor操作,以生成第(n-1)临时奇偶校验数据部分。闪存存储器控制器106可以将第(n-1)临时奇偶校验数据部分存储在第二临时存储单元中,并且用第(n-1)临时奇偶校验数据部分替换第(n-2)临时奇偶校验数据部分。在n等于l时,闪存存储器控制器106可以生成m个临时奇偶校验数据部分,每个临时奇偶校验数据部分对应于相应面(或条带组)。m个临时奇偶校验数据部分可以是411-(j-1)、412-(j-1)、…、41(m-1)-(j-1)、41m-(j-1),并且可以被存储在第二临时存储单元420中,如图5d中所示。闪存存储器控制器106可以在m个临时奇偶校验数据部分411-(j-1)、412-(j-1)、…、41(m-1)-(j-1)、41m-(j-1)之间执行xor操作,以生成与m个面和n个管芯中的j×n×m个数据部分对应的奇偶校验数据组。然后,闪存存储器控制器106可以将奇偶校验数据组存储在nand存储器400的存储器单元中的永久存储单元中。

返回参考图6c,方法640进行至操作650,其中,检测例如由于ssg泄露故障和/或多面故障的任何编程故障。如果检测到编程故障,则方法640进行至操作652,其中,使用相应奇偶校验数据部分来恢复存储在其中发生编程故障的受损数据部分中的存储器数据。在受损数据部分的恢复之后,方法640进行至操作654,其中,根据m组奇偶校验数据部分生成奇偶校验数据组。如果没有检测到编程故障,则方法640进行至操作654。

闪存存储器控制器106可以确定是否发生了例如由于ssg泄漏故障和/或多面故障的任何编程故障。如先前所解释的,ssg泄露故障可能导致不同层级的相同位置处的存储器单元中的存储器数据受损,并且多面故障可能导致在不同面的相同位置处的存储器单元中的存储器数据受损。然而,图4a-图4c中所示的条带化配置可以确保条带中的仅单个数据部分(如果有的话)可能由ssg泄漏故障和/或多面故障而受损。在一些实施方式中,闪存存储器控制器106可以使用每个条带的奇偶校验数据部分来确定在相应条带的数据部分中是否发生任何编程故障。在一些实施方式中,闪存存储器控制器106可以在相应条带的数据部分与相应条带的奇偶校验数据部分之间执行xor操作,以检测并且识别受损数据部分。可以确定每个(如果有的话)条带中的受损数据部分的位置。

如果在条带中检测到受损数据部分,则闪存存储器控制器106可以基于条带中的数据部分的其余数据部分(例如,未受损的数据部分)和条带的奇偶校验数据部分来生成替换数据部分。在一些实施方式中,替换数据部分的生成包括在条带中的数据部分的其余数据部分与条带的奇偶校验数据部分之间执行xor操作。闪存存储器控制器106可以用替换数据部分恢复受损数据部分,使得受损数据中的存储器数据可以被保留。在一些实施方式中,如果需要计算,例如用于识别和定位受损数据部分和/或生成替换数据部分,则闪存存储器控制器106可以从临时存储单元410访问奇偶校验数据部分。

可以根据m个临时奇偶校验数据部分生成奇偶校验数据组412,奇偶校验数据组412表示m个面和n个管芯中的存储器块b1中的j个层(例如,j×n×m个数据部分)的奇偶校验/冗余数据。在一些实施方式中,通过在m个临时奇偶校验数据部分之间执行xor操作来获得奇偶校验数据组412。可以将奇偶校验数据组412存储在nand存储器400中的永久存储单元(例如,多个存储器单元)中。闪存存储器控制器106可以访问第二临时存储单元并且执行该操作。

在一些实施方式中,闪存存储器控制器106可以继续对m个面和n个管芯中的存储器块b1中的剩余层执行操作642-656。奇偶校验数据部分和临时奇偶校验数据部分可以分别存储在临时存储单元410和第二临时存储单元中,以用于计算和/或参考。对m个面和n个管芯中的其他存储器块也可以执行相同操作。

返回参考图6c,方法640进行至操作656,其中,将m组奇偶校验数据部分从临时存储单元去除,并且将m个临时奇偶校验数据部分从第二临时存储单元去除。

在一些实施方式中,在(一个或多个)受损数据部分的恢复以及奇偶校验数据组的生成之后,闪存存储器控制器106可以去除j×m×n个奇偶校验数据部分和m个临时奇偶校验部分。在一些实施方式中,如果没有检测到编程故障,则闪存存储器控制器106去除j×m×n个奇偶校验数据部分和m个临时奇偶校验部分。通过使用相应奇偶校验数据部分恢复不同面和不同层中的(一个或多个)受损数据部分,可以恢复由m个面和n个管芯中的存储器块b1中的j个层中的编程故障导致的多于一个的受损数据部分。与其中一个条带包括跨面和层的数据部分的raid方法相比,增加了在这些面和层中可以恢复/保护的数据部分的数量,例如,增加到多于1。

本公开的一个方面提供了一种存储器装置。该装置包括在n个管芯中的存储有存储器数据的多个存储器单元。n个管芯中的每一个包括m个面。m个面中的每一个包括存储器块。n和m均为正整数。该装置还包括操作地耦合到多个存储器单元的控制器。该控制器被配置为确定在m个面中的每一个中并且在n个管芯中的每一个中的存储器块中的j个层,j个层中的每一个包括一对相邻的栅极导电层。j为正整数。该控制器还被配置为确定m组条带。m组条带中的每一组包括存储在m个面中的相应一个中的多个数据部分。该控制器还被配置为确定m组奇偶校验数据部分。m组奇偶校验数据部分中的每一组对应于m个条带中的相应一个。该控制器还被配置为控制临时存储单元以存储m组奇偶校验数据部分。

在一些实施方式中,该控制器被配置为确定m组条带包括m个条带。m组条带中的每一组包括单个条带,单个条带包括存储在m个面中的相应一个中的j×n个数据部分。j×n个数据部分中的每一个存储在j个层中的相应部分中。m组奇偶校验数据部分包括m个奇偶校验数据部分。m组奇偶校验数据部分中的每一组包括对应于相应面的单个奇偶校验数据部分。

在一些实施方式中,该控制器还被配置为响应于在m组条带中的一组中检测到编程故障,通过以下操作来恢复编程故障:定位其中发生编程故障的数据部分和相应条带,以及使用相应条带的奇偶校验数据部分和相应条带的数据部分的其余数据部分来生成用于数据部分的替换数据部分。

在一些实施方式中,该控制器还被配置为在相应条带的数据部分的其余数据部分与奇偶校验数据部分之间执行xor操作,以生成替换数据部分。

在一些实施方式中,该控制器还被配置为并行编程m个条带。编程故障包括在m个面中的每一个中的相同位置的数据部分中发生的多面故障。

在一些实施方式中,该控制器还被配置为在m个奇偶校验数据部分之间执行xor,以生成与m个条带中的j×n×m个数据部分对应的奇偶校验数据组,并且将奇偶校验数据组存储在多个存储器单元中的永久存储单元中。

在一些实施方式中,该控制器还被配置为在m个条带中的每一个的j×n个数据部分之间执行xor操作,以生成相应奇偶校验数据部分。

在一些实施方式中,该控制器被配置为确定m组条带包括j×m个条带。m组条带中的每一组包括j个条带。在一些实施方式中,该控制器被配置为确定j个条带包括j×n个数据部分。j个条带中的每一个包括n个数据部分,每个数据部分存储在相应面的相应层中的相应部分中。在一些实施方式中,该控制器被配置为确定m组奇偶校验数据部分包括j×m个奇偶校验数据部分。m组奇偶校验数据部分中的每一组包括j个奇偶校验数据部分,每个奇偶校验数据部分对应于相应面中的j个条带中的相应一个。

在一些实施方式中,该控制器还被配置为确定存储在相应单个面的单个层中的n个数据部分。

在一些实施方式中,该控制器还被配置为响应于在m组条带中的一组中检测到编程故障,通过以下操作来恢复编程故障:定位其中发生编程故障的数据部分和相应条带,以及使用相应条带的奇偶校验数据部分和相应条带的数据部分的其余数据部分来生成用于数据部分的替换数据部分。

在一些实施方式中,该控制器还被配置在相应条带的数据部分的其余数据部分与奇偶校验数据部分之间执行xor操作,以生成替换数据部分。

在一些实施方式中,该控制器还被配置为并行编程m组条带。在一些实施方式中,编程故障包括ssg泄漏故障或多面故障中的至少一个。

在一些实施方式中,该控制器还被配置为:对于j×m个条带中的每一个,在n个数据部分之间执行xor操作,以生成相应奇偶校验数据部分。

在一些实施方式中,该控制器还被配置为:对于m个面中的每一个,对于n=2,在第n奇偶校验数据部分与第(n-1)奇偶校验数据部分之间执行xor操作,以生成第(n-1)临时奇偶校验数据部分。在一些实施方式中,该控制器还被配置为将第(n-1)临时奇偶校验数据部分存储在第二临时存储单元中。在一些实施方式中,该控制器还被配置为:对于n>2,在第n奇偶校验数据部分与第(n-2)临时奇偶校验数据部分之间执行xor操作,以生成第(n-1)临时奇偶校验数据部分。在一些实施方式中,n为正整数。

在一些实施方式中,该控制器还被配置为:对于m个面中的每一个,将第(n-1)临时奇偶校验数据部分存储到第二临时存储单元中,以替换第(n-2)临时奇偶校验数据部分。

在一些实施方式中,该控制器还被配置为:响应于n=l,在与m个面中的每一个对应的第(n-1)临时奇偶校验数据部分之间执行xor操作,以生成与m个面和n个管芯中的j×n×m个数据部分对应的奇偶校验数据组。在一些实施方式中,该控制器还被配置为将奇偶校验数据组存储在多个存储器单元中的永久存储单元中。

在一些实施方式中,该控制器还被配置为在j×m个条带中的每一个的n个数据部分之间执行xor操作,以生成相应奇偶校验数据部分。

在一些实施方式中,该控制器还被配置为控制器还被配置为响应于以下中的至少一个将m组奇偶校验数据部分从临时存储单元去除:在m组条带中没有检测到编程故障,或者所有编程故障被恢复。

在一些实施方式中,临时存储单元在多个存储器单元外部。

在一些实施方式中,j等于8。

在一些实施方式中,多个存储器单元包括nand存储器单元,并且控制器包括闪存控制器。

在一些实施方式中,该装置还包括ram,并且临时存储单元位于ram中。

在一些实施方式中,m等于或大于4。

本公开的另一方面提供了一种存储器装置。该装置包括在n个管芯中的存储有存储器数据的多个存储器单元。n个管芯中的每一个包括m个面。m个面中的每一个包括存储器块。n和m均为正整数。该装置包括操作地耦合到多个存储器单元的控制器。该控制器被配置为确定在m个面中的每一个中并且在n个管芯中的每一个中的存储器块中的j个层。j个层中的每一个包括一对相邻的栅极导电层。j是至少为2的正整数。该控制器还被配置为确定j个条带,每个条带对应于m个面中的同一层级的m个层并且包括m×n个数据部分。m×n个数据部分中的每一个存储在相应m个层的相应部分中。该控制器还被配置为确定j个奇偶校验数据部分,每个奇偶校验数据部分对应于相应条带。该控制器还被配置为控制临时存储单元以存储j个奇偶校验数据部分。

在一些实施方式中,该控制器被配置为确定存储在m个面中的同一层级的单个层中的m×n个数据部分。

在一些实施方式中,该控制器还被配置为响应于在j个条带中的一个中检测到编程故障,通过以下操作来恢复编程故障:定位其中发生编程故障的数据部分,以及使用相应条带的奇偶校验数据部分和相应条带的数据部分的其余数据部分来生成用于数据部分的替换数据部分。

在一些实施方式中,该控制器还被配置为在相应条带的数据部分的其余数据部分与奇偶校验数据部分之间执行xor操作,以生成替换数据部分。

在一些实施方式中,编程故障包括ssg泄漏故障。

在一些实施方式中,该控制器还被配置为在j个条带中的每一个的m×n个数据部分之间执行xor操作,以生成相应奇偶校验数据部分。

在一些实施方式中,该控制器还被配置为在j个奇偶校验数据部分之间执行xor,以生成与m个条带中的j×n×m个数据部分对应的奇偶校验数据组,并且将奇偶校验数据组存储在多个存储器单元中的永久存储单元中。

在一些实施方式中,临时存储单元在多个存储器单元外部。

在一些实施方式中,该控制器还被配置为控制器还被配置为响应于以下中的至少一个将j个奇偶校验数据部分从临时存储单元去除:在j个条带中没有检测到编程故障,或者所有编程故障被恢复。

在一些实施方式中,j等于8。

在一些实施方式中,多个存储器单元包括nand存储器单元,并且控制器包括闪存控制器。

在一些实施方式中,该装置还包括ram,并且临时存储单元位于ram中。

在一些实施方式中,m等于或大于4。

提供了一种用于使用raid条带化来操作存储器装置的方法。该装置包括在n个管芯中的存储有存储器数据的多个存储器单元。n个管芯中的每一个包括m个面。m个面中的每一个包括存储器块。n和m均为正整数。该方法包括确定在m个面中的每一个中并且在n个管芯中的每一个中的存储器块中的j个层。j个层中的每一个包括一对相邻的栅极导电层。j为正整数。该方法还包括确定m组条带,m组条带中的每一组包括存储在m个面中的相应一个中的多个数据部分。该方法还包括确定m组奇偶校验数据部分。m组奇偶校验数据部分中的每一组对应于m个条带中的相应一个。该方法还包括控制临时存储单元以存储m组奇偶校验数据部分。

在一些实施方式中,m组条带包括m个条带。m组条带中的每一组包括单个条带,单个条带包括存储在m个面中的相应一个中的j×n个数据部分。j×n个数据部分中的每一个存储在j个层中的相应部分中。m组奇偶校验数据部分包括m个奇偶校验数据部分。m组奇偶校验数据部分中的每一组包括对应于相应面的单个奇偶校验数据部分。

在一些实施方式中,该方法还包括:响应于在m组条带中的一组中检测到编程故障,通过以下操作来恢复编程故障:定位其中发生编程故障的数据部分和相应条带,以及使用相应条带的奇偶校验数据部分和相应条带的数据部分的其余数据部分来生成用于数据部分的替换数据部分。

在一些实施方式中,生成替换数据部分包括在相应条带的数据部分的其余数据部分与奇偶校验数据部分之间执行xor操作。

在一些实施方式中,该方法还包括并行编程m个条带。编程故障包括在m个面中的每一个中的相同位置的数据部分中发生的多面故障。

在一些实施方式中,该方法还包括在m个奇偶校验数据部分之间执行xor,以生成与m个条带中的j×n×m个数据部分对应的奇偶校验数据组,并且将奇偶校验数据组存储在多个存储器单元中的永久存储单元中。

在一些实施方式中,该方法还包括在m个条带中的每一个的j×n个数据部分之间执行xor操作,以生成相应奇偶校验数据部分。

在一些实施方式中,m组条带包括j×m个条带。m组条带中的每一组包括j个条带。在一些实施方式中,j个条带包括j×n个数据部分。j个条带中的每一个包括n个数据部分,每个数据部分存储在相应面的相应层中的相应部分中。在一些实施方式中,m组奇偶校验数据部分包括j×m个奇偶校验数据部分。m组奇偶校验数据部分中的每一组包括j个奇偶校验数据部分,每个奇偶校验数据部分对应于相应条带中的j个条带中的相应一个。

在一些实施方式中,n个数据部分存储在相应单个面的单个层中。

在一些实施方式中,该方法还包括:响应于在m组条带中的一组中检测到编程故障,通过以下操作来恢复编程故障:定位其中发生编程故障的数据部分和相应条带,以及使用相应条带的奇偶校验数据部分和相应条带的数据部分的其余数据部分来生成用于数据部分的替换数据部分。

在一些实施方式中,生成该替换数据部分包括在相应条带的数据部分的其余数据部分与奇偶校验数据部分之间执行xor操作。

在一些实施方式中,该方法还包括并行编程m个条带。编程故障包括ssg泄漏故障或多面故障中的至少一个。

在一些实施方式中,该方法还包括对于j×m个条带中的每一个,在n个数据部分之间执行xor操作,以生成相应奇偶校验数据部分。

在一些实施方式中,该方法还包括:对于m个面中的每一个,对于n=2,在第n奇偶校验数据部分与第(n-1)奇偶校验数据部分之间执行xor操作,以生成第(n-1)临时奇偶校验数据部分,将第(n-1)临时奇偶校验数据部分存储在第二临时存储单元中。该方法还包括:对于n>2,在第n奇偶校验数据部分与第(n-2)临时奇偶校验数据部分之间执行xor操作,以生成第(n-1)临时奇偶校验数据部分。在一些实施方式中,n为正整数。

在一些实施方式中,该方法还包括:对于m个面中的每一个,将第(n-1)临时奇偶校验数据部分存储到第二临时存储单元中,以替换第(n-2)临时奇偶校验数据部分。

在一些实施方式中,该方法还包括:响应于n=l,在与m个面中的每一个对应的第(n-1)临时奇偶校验数据部分之间执行xor操作,以生成与m个面和n个管芯中的j×n×m个数据部分对应的奇偶校验数据组,以及将奇偶校验数据组存储在多个存储器单元中的永久存储单元中。

在一些实施方式中,该方法还包括在j×m个条带中的每一个的n个数据部分之间执行xor操作,以生成相应奇偶校验数据部分。

在一些实施方式中,该方法还包括响应于以下中的至少一个将m组奇偶校验数据部分从临时存储单元去除:在m组条带中没有检测到编程故障,或者所有编程故障被恢复。

本公开的另一方面还提供了一种用于使用raid条带化来操作存储器装置的方法。该装置包括在n个管芯中的存储有存储器数据的多个存储器单元。n个管芯中的每一个包括m个面。m个面中的每一个包括存储器块。n和m均为正整数。该方法包括确定在m个面中的每一个中并且在n个管芯中的每一个中的存储器块中的j个层。j个层中的每一个包括一对相邻的栅极导电层。j是至少为2的正整数。该方法还包括确定j个条带,每个条带对应于m个面中的同一层级的m个层并且包括m×n个数据部分。m×n个数据部分中的每一个存储在相应m个层的相应部分中。该方法还包括确定j个奇偶校验数据部分,每个奇偶校验数据部分对应于相应条带。该方法还包括控制临时存储单元以存储j个奇偶校验数据部分。

在一些实施方式中,m×n个数据部分存储在m个面中的同一层级的单个层中。

在一些实施方式中,该方法还包括响应于在j个条带中的一个中检测到编程故障,通过以下操作来恢复编程故障:定位其中发生编程故障的数据部分,以及使用相应条带的奇偶校验数据部分和相应条带的数据部分的其余数据部分来生成用于数据部分的替换数据部分。

在一些实施方式中,生成替换数据部分包括在相应条带的数据部分的其余数据部分与奇偶校验数据部分之间执行xor操作。

在一些实施方式中,编程故障包括ssg泄漏故障。

在一些实施方式中,该方法还包括在j个条带中的每一个的m×n个数据部分之间执行xor操作,以生成相应奇偶校验数据部分。

在一些实施方式中,该方法还包括在j个奇偶校验数据部分之间执行xor,以生成与m个条带中的j×n×m个数据部分对应的奇偶校验数据组,并且将奇偶校验数据组存储在多个存储器单元中的永久存储单元中。

在一些实施方式中,临时存储单元在多个存储器单元外部。

在一些实施方式中,该方法包括响应于以下中的至少一个将j个奇偶校验数据部分从临时存储单元去除:在j个条带中没有检测到编程故障,或者所有编程故障被恢复。

可以容易地修改具体实施方式的前述描述和/或使其适应于各种应用。因此,基于本文呈现的教导和指导,这种适应和修改旨在处于所公开的实施方式的等同物的含义和范围内。本公开的广度和范围不应由上述示例性实施方式中的任一个来限制,而应仅根据所附权利要求及其等同物来限定。

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