一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种存储系统、操作方法及控制器与流程

2022-05-27 01:00:36 来源:中国专利 TAG:


1.本技术涉及半导体技术领域,尤其涉及一种存储系统、操作方法及控制器。


背景技术:

2.非易失性存储器已广泛用于个人计算机、电信、消费电子和其它领域。电可擦除可编程只读存储器(eeprom)和闪存是其中最广泛使用的非易失性存储器。
3.根据存储器阵列的结构配置,可以将存储器件分为单存储平面类型和多存储平面类型。单存储平面类型存储器件包括被组织成单个存储平面的存储器阵列,而多存储平面类型存储器件包括被组织成多个存储平面的存储器阵列。当对多存储平面类型存储器件进行编程时,可以同时对两个或更多个存储平面进行编程以提高编程效率,这种同时对两个或更多个存储平面进行编程的编程方式称为多平面编程(multi-plane program)。
4.采用多面编程模式固然能提高编程效率,但不可避免的会存在相邻平面干扰(neighbor plane disturb,npd)的问题,例如,采用多平面编程的情况下,如果一个存储平面的当前字线发生编程失败(programming status failed,psf),经常会影响同时编程的其它多个存储平面的字线的编程。因此,相邻平面干扰带来的数据恢复问题成为了亟待解决的问题。


技术实现要素:

5.有鉴于此,本技术实施例为解决现有技术中存在的至少一个问题而提供一种存储系统、操作方法及控制器。
6.为达到上述目的,本技术实施例的技术方案是这样实现的:
7.第一方面,本技术实施例提供一种存储系统,包括:
8.存储装置,所述存储装置包括多个存储芯片;所述多个存储芯片中的每个存储芯片均包括按照同一编号规则进行编号的多个存储平面;所述多个存储平面中的每个存储平面均包括按照同一编号规则进行编号的多个存储串;
9.控制器,其与所述存储装置通信;
10.所述控制器被配置为:接收写入数据;对编号相同的存储串对应的写入数据执行第一校验操作,以生成对应不同编号存储串的第一奇偶校验数据;每个第一奇偶校验数据均包括对应于不同存储平面的第一子校验数据;基于所述第一奇偶校验数据执行数据恢复操作。
11.在一种可选的实施方式中,所述控制器还被配置为:针对每个第一奇偶校验数据,对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,以生成对应不同存储串的第二奇偶校验数据;基于所述第一奇偶校验数据和所述第二奇偶校验数据执行数据恢复操作。
12.在一种可选的实施方式中,所述控制器还被配置为:将所述写入数据写入到所述存储装置中,以及将所述第一奇偶校验数据和所述第二奇偶校验数据存储至所述存储装置
中的冗余阵列校验存储区中。
13.在一种可选的实施方式中,所述多个存储平面中的每个存储平面均包括按照同一编号规则进行编号的多条字线;所述多条字线中的每条字线均包括按照同一编号规则进行编号的多个存储串;
14.第一校验操作包括:针对每条字线,将编号相同的存储平面且编号相同的存储串对应的写入数据进行异或操作,得到对应不同存储串的第一校验数据;所述第一校验数据包括对应于不同存储平面第二子校验数据。
15.在一种可选的实施方式中,第一校验操作包括:对各条字线中编号相同的存储串对应的第一校验数据进行异或操作,得到对应不同存储串的第一奇偶校验数据。
16.在一种可选的实施方式中,所述第二校验操作包括:针对每条字线中的每个第一校验数据,对各个所述第二子校验数据进行异或操作,得到对应当前字线的不同存储串的第二校验数据。
17.在一种可选的实施方式中,所述第二校验操作包括:对编号相同的存储串对应的第二校验数据进行异或操作,得到对应不同存储串的第二奇偶校验数据。
18.在一种可选的实施方式中,所述多个存储串中的每个存储串均包括按照同一编号规则进行编号的多个逻辑存储页;第二子校验数据包括对应不同逻辑存储页的第三子校验数据;第二校验操作包括:针对每个存储串,将第一校验数据中编号相同的逻辑存储页对应的第三子校验数据进行异或操作,得到对应存储串的不同逻辑存储页的第三校验数据。
19.在一种可选的实施方式中,第二校验操作包括:针对每个存储串,根据每个存储串的各个逻辑存储页的第三校验数据生成对应当前存储串的第二校验数据。
20.在一种可选的实施方式中,所述控制器具体被配置为:在当前存储平面出现编程失败的情况下,基于所述第一奇偶检验数据执行所述数据恢复操作以恢复所述写入数据。
21.在一种可选的实施方式中,所述控制器具体被配置为:在多个存储平面出现编程失败的情况下,基于所述第一奇偶检验数据和所述第二奇偶检验数据执行所述数据恢复操作以恢复所述写入数据。
22.在一种可选的实施方式中,还包括:第一缓存器和第二缓存器;所述第一缓存器和所述第二缓存器用于存储第一校验数据和第二校验数据。
23.第二方面,本技术实施例提供一种操作方法,所述方法应用于存储装置,所述存储装置包括多个存储芯片;所述多个存储芯片中的每个存储芯片均包括按照同一编号规则进行编号的多个存储平面;所述多个存储平面中的每个存储平面均包括按照同一编号规则进行编号的多个存储串;所述方法包括:
24.接收写入数据;对编号相同的存储串对应的写入数据执行第一校验操作,以生成对应不同编号存储串的第一奇偶校验数据;每个第一奇偶校验数据均包括对应于不同存储平面的第一子校验数据;基于所述第一奇偶校验数据执行数据恢复操作。
25.在一种可选的实施方式中,所述方法还包括:针对每个第一奇偶校验数据,对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,以生成对应不同存储串的第二奇偶校验数据;所述基于所述第一奇偶校验数据执行数据恢复操作,包括:基于所述第一奇偶校验数据和所述第二奇偶校验数据执行数据恢复操作。
26.在一种可选的实施方式中,所述方法还包括:将所述第一奇偶校验数据和所述第
二奇偶校验数据存储至所述存储装置中的冗余阵列校验存储区中。
27.在一种可选的实施方式中,所述刷新命令为单一存储体刷新命令的情况下,所述方法还包括:根据所述单一存储体刷新命令对进行刷新的存储体进行计数。
28.在一种可选的实施方式中,所述多个存储平面中的每个存储平面均包括按照同一编号规则进行编号的多条字线;所述多条字线中的每条字线均包括按照同一编号规则进行编号的多个存储串;所述对编号相同的存储串对应的写入数据执行第一校验操作,包括:针对每条字线,将编号相同的存储平面且编号相同的存储串对应的写入数据进行异或操作,得到对应不同存储串的第一校验数据;所述第一校验数据包括对应于不同存储平面第二子校验数据。
29.在一种可选的实施方式中,所述对编号相同的存储串对应的写入数据执行第一校验操作,还包括:对各条字线中编号相同的存储串对应的第一校验数据进行异或操作,得到对应不同存储串的第一奇偶校验数据。
30.在一种可选的实施方式中,第二校验数据包括对应于不同存储平面的第二子校验数据;所述对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,包括:针对每条字线中的每个第一校验数据,对各个所述第二子校验数据进行异或操作,得到对应当前字线的不同存储串的第二校验数据。
31.在一种可选的实施方式中,所述对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,还包括:对编号相同的存储串对应的第二校验数据进行异或操作,得到对应不同存储串的第二奇偶校验数据。
32.在一种可选的实施方式中,所述多个存储串中的每个存储串均包括按照同一编号规则进行编号的多个逻辑存储页;第二子校验数据包括对应不同逻辑存储页的第三子校验数据;所述对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,还包括:针对每个存储串,将第一校验数据中编号相同的逻辑存储页对应的第三子校验数据进行异或操作,得到对应存储串的不同逻辑存储页的第三校验数据。
33.在一种可选的实施方式中,所述对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,还包括:针对每个存储串,根据每个存储串的各个逻辑存储页的第三校验数据生成对应当前存储串的第二校验数据。
34.在一种可选的实施方式中,所述基于所述第一奇偶校验数据执行数据恢复操作,包括:在当前存储平面出现编程失败的情况下,基于所述第一奇偶检验数据执行所述数据恢复操作以恢复所述写入数据。
35.在一种可选的实施方式中,所述基于所述第一奇偶校验数据和所述第二奇偶校验数据执行数据恢复操作,包括:在多个存储平面出现编程失败的情况下,基于所述第一奇偶校验数据和所述第二奇偶校验数据执行所述数据恢复操作以恢复所述写入数据。
36.第三方面,本技术实施例提供一种控制器,所述控制器用于实现如第二方面任意一项所述的操作方法。
37.本实施例提供了一种存储系统、操作方法及控制器,所述存储系统包括:存储装置,所述存储装置包括多个存储芯片;所述多个存储芯片中的每个存储芯片均包括按照同一编号规则进行编号的多个存储平面;所述多个存储平面中的每个存储平面均包括按照同一编号规则进行编号的多个存储串;控制器,其与所述存储装置通信;所述控制器被配置
为:接收写入数据;对编号相同的存储串对应的写入数据执行第一校验操作,以生成对应不同编号存储串的第一奇偶校验数据;每个第一奇偶校验数据均包括对应于不同存储平面的第一子校验数据;基于所述第一奇偶校验数据执行数据恢复操作。本实施例中,基于对应不同编号存储串的第一奇偶校验数据且每个第一奇偶校验数据均包括对应于不同存储平面的第一子校验数据,因此,基于第一奇偶校验数据可以实现多个存储平面出现编程失败的情况下的各个存储平面的数据恢复。
附图说明
38.在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本技术申请的一些实施方式,而不应将其视为是对本技术范围的限制。
39.图1为根据本技术的一些方面的具有存储装置的示例性系统100的块图;
40.图2a为本技术实施例一具有存储系统的示例性存储器卡的示意图;
41.图2b为本技术实施例一具有存储系统的示例性固态驱动器(ssd)的示意图;
42.图3a至图3h为本技术实施例提供的操作方法示意图;
43.图4为本技术实施例提供的一种操作方法的实现流程示意图。
具体实施方式
44.下面将参照附图更详细地描述本技术公开的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术,而不应被这里阐述的具体实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术公开的范围完整的传达给本领域的技术人员。
45.在下文的描述中,给出了大量具体的细节以便提供对本技术更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本技术可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本技术发生混淆,对于本领域公知的一些技术特征未进行描述;即,这里不描述实际实施例的全部特征,不详细描述公知的功能和结构。
46.此外,附图仅为本技术的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
47.附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
48.在此使用的术语的目的仅在于描述具体实施例并且不作为本技术的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所
有组合。
49.示出的实施例被绘制成闪存设备、并入闪存设备的存储系统以及相关的操作方法。然而,这些例子仅仅表示可能落入本技术构思范围内的许多不同类型的非易失性存储器。因此,本领域技术人员将看到,使用具体绘制为闪存设备的实施例的本技术的教导可以延伸至其它形式的非易失性存储器。
50.例如,根据本技术构思的实施例的非易失性存储器可以是nand(与非)闪存、垂直nand闪存(vertical nand flash memory)、nor(或非)闪存、电阻式随机存取存储器(resistive random access memory,rram)、相变随机存取存储器(phase-change random access memory,pram)、磁电阻式随机存取存储器(magneto-resistive random access memory,mram)、铁电随机存取存储器(ferroelectric random access memory,fram)以及自旋转移力矩随机存取存储器(spin transfer torque random access memory,stt-ram)。此外,可以以三维(3d)阵列结构来实现根据本技术构思的实施例的非易失性存储器。
51.图1示出了根据本技术的一些方面的具有存储装置的示例性系统100的块图。系统100可以是移动电话、台式计算机、膝上型计算机、平板计算机、车辆计算机、游戏控制台、打印机、定位设备、可穿戴电子设备、智能传感器、虚拟现实(vr)设备、增强现实(ar)设备或者其中具有储存器的任何其他合适的电子设备。如图1中所示,系统100可以包括主机108和存储系统102,存储系统102包括存储装置和控制器(controller)106,存储装置包括一个或多个存储芯片104。主机108可以是电子设备的处理器(例如,中央处理单元(cpu))或者片上系统(soc)(例如,应用处理器(ap))。主机108可以被配置为将数据发送到存储芯片104或从存储芯片104接收数据。这里,存储芯片104即为存储器。
52.存储芯片104可以是本技术中公开的任何存储器。如下文详细公开的,存储芯片104(例如,非易失性存储器)可以在擦除操作期间具有来自耦合到未选定字线的驱动晶体管(例如,串驱动器)的减小的漏电流,这允许驱动晶体管的进一步尺寸缩小。
53.根据一些实施方式,控制器106耦合到存储装置和主机108,并且被配置为控制存储装置。控制器106可以管理存储在存储芯片104中的数据,并且与主机108通信。在一些实施方式中,控制器106被设计为用于在低占空比环境中操作,如安全数字(sd)卡、紧凑型闪存(cf)卡、通用串行总线(usb)闪存驱动器、或用于在诸如个人计算器、数字相机、移动电话等的电子设备中使用的其他介质。在一些实施方式中,控制器106被设计为用于在高占空比环境ssd或嵌入式多媒体卡(emmc)中操作,ssd或emmc用作诸如智能电话、平板计算机、膝上型计算机等的移动设备的数据储存器以及企业存储装置。控制器106可以被配置为控制存储芯片104的操作,例如读取、擦除和编程操作。控制器106还可以被配置为管理关于存储在或要存储在存储芯片104中的数据的各种功能,包括但不限于坏块管理、垃圾收集、逻辑到物理地址转换、损耗均衡等。在一些实施方式中,控制器106还被配置为处理关于从存储芯片104读取的或者被写入到存储芯片104的数据的纠错码(ecc)。控制器106还可以执行任何其他合适的功能,例如,格式化存储芯片104。控制器106可以根据特定通信协议与外部设备(例如,主机108)通信。例如,控制器106可以通过各种接口协议中的至少一种与外部设备通信,接口协议例如usb协议、mmc协议、外围部件互连(pci)协议、pci高速(pci-e)协议、高级技术附件(ata)协议、串行ata协议、并行ata协议、小型计算机小型接口(scsi)协议、增强型小型磁盘接口(esdi)协议、集成驱动电子设备(ide)协议、firewire协议等。
54.控制器106和一个或多个存储芯片104可以集成到各种类型的存储设备中,例如,包括在相同封装(例如,通用闪存存储(ufs)封装或emmc封装)中。也就是说,存储系统102可以实施并且封装到不同类型的终端电子产品中。在如图2a中所示的一个示例中,控制器106和单个存储芯片104可以集成到存储器卡202中。存储器卡202可以包括pc卡(pcmcia,个人计算机存储器卡国际协会)、cf卡、智能媒体(sm)卡、存储器棒、多媒体卡(mmc、rs-mmc、mmcmicro)、sd卡(sd、minisd、microsd、sdhc)、ufs等。存储器卡202还可以包括将存储器卡202与主机(例如,图1中的主机108)耦合的存储器卡连接器204。在如图2b中所示的另一示例中,控制器106和多个存储芯片104可以集成到ssd 206中。ssd 206还可以包括将ssd 206与主机(例如,图1中的主机108)耦合的ssd连接器208。在一些实施方式中,ssd 206的存储容量和/或操作速度大于存储器卡202的存储容量和/或操作速度。
55.在本实施例中,存储芯片104中的每一个可包含一或多个存储单元阵列。一种类型的存储单元,例如单层单元(slc)可每单元存储一个位。其它类型的存储单元,如多层单元(mlc)、三层单元(tlc)、四层单元(qlc)和五层单元(plc)可每单元存储多个位。在一些实施例中,存储器104中的每一个可包含一或多个存储单元阵列,例如slc、mlc、tlc、qlc或此类存储单元阵列的任何组合。在一些实施例中,特定存储器可包含存储单元的slc部分、mlc部分、tlc部分、qlc部分或plc部分。在每个存储单元的存储位数包括两位时,所述存储单元可以是两层单元(multi-level cell,mlc)。这里,每个存储单元可以存储两位数据,其存储状态有00,01,10,11四种。此时,存储芯片的一个物理页对应两个逻辑存储页,该两个逻辑存储页可以分为高页(upper page)和低页(lower page)。在每个存储单元的存储位数包括三位时,所述存储单元可以是三层单元(triple-level cell,tlc)。这里,每个存储单元可以存储三位数据,其存储状态有000、001、010、100、011、110、101、111八种。此时,存储芯片的一个物理页对应三个逻辑存储页,该三个逻辑存储页可以分为高页、中页(middle page)和低页。在每个存储单元的存储位数包括四位时,所述存储单元可以是四层单元(quad-level cell,qlc)。这里,每个存储单元可以存储四位数据,其存储状态有0000、0001、0010、0100、1000、1100、1010、1001、0011、0101、0110、1101、1110、1011、0111、1111十六种。此时,存储芯片的一个物理页对应四个逻辑存储页,即高页、中页、低页和额外页(extra page,xp)。
56.本实施例中以存储器104中的存储单元为tlc为例进行说明。
57.在本实施例中,所述存储器包括多个存储芯片;所述多个存储芯片中的每个存储芯片均包括按照同一编号规则进行编号的多个存储平面;所述多个存储平面中的每个存储平面均包括按照同一编号规则进行编号的多条字线;所述多条字线中的每条字线均包括按照同一编号规则进行编号的多个存储串;所述多个存储串中的每个存储串均包括按照同一编号规则进行编号的多个逻辑存储页。在一具体实例中,所述存储器包括多个存储芯片,例如die0至dien。每个存储芯片均包括按照同一编号规则进行编号的4个存储平面,例如存储平面0(plane0)、存储平面1(plane1)、存储平面2(plane2)和存储平面3(plane3)。每个存储平面均包括按照同一编号规则进行编号的多条字线,例如字线1(wl1)至字线m(wlm)。每条字线耦接多个存储单元,通过位线将多个存储单元划分成多个存储串(string);每条字线对应多个存储串,每条字线均包括按照同一编号规则进行编号的6个存储串,例如存储串0(string0)、存储串1(string1)、存储串2(string2)、存储串3(string3)、存储串4(string4)和存储串5(string5)。每个存储串均包括按照同一编号规则进行编号的3个逻辑存储页,例
如逻辑存储页0(page0)、逻辑存储页1(page1)和逻辑存储页2(page2),在实际应用时,page0可以为低页(lp),page1可以为中页(mp),page2可以为高页(up)。
58.在本实施例中,存储系统还可以包括磁盘阵列(redundant arrays of independent disks,raid)组件,所述raid组件可用于实现数据冗余并将奇偶校验数据存储在存储系统的控制器的缓存器中,以用于执行由主机写入的写入数据的数据恢复操作。
59.在本实施例中,控制器从主机接收写入命令,并接收主机下发的写入数据。控制器将写入数据写入到存储器中。
60.图3a至图3h为本技术实施例提供的存储系统的操作方法示意图,需要说明的是,图图3a至图3h以每个存储芯片包括4个存储平面(plane0-plane3),每条字线包括6个存储串(string0-string5),每个存储串包括3个逻辑存储页(lp、mp和up)为例进行说明。
61.在对一条字线中的存储串执行写入操作时,一般会按照一定的顺序进行写入数据的写入,如从编号最小的存储串开始,根据存储串的编号增大的顺序依次写入,直至编号最大的存储串;或者从编号最大的存储串开始编写,根据存储串的编号减小的顺序依次写入,直至编号最小的存储串。本实施例中以从编号最小的存储串开始,根据存储串的编号增大的顺序依次写入为例进行说明。
62.控制器对一个存储芯片中多个存储平面进行多平面编程,即同时对多个存储平面进行编程,将写入数据按照string0-string5的顺序,依次写入多个存储平面中。在将写入数据写入到存储器的过程中,控制器还将当前字线中编号相同的存储平面且编号相同的存储串对应的写入数据进行异或操作,得到对应不同存储串的第一校验数据,具体过程为:
63.如图3a所示,以wlk(k≥1且k<n)为起始字线进行编程。控制器将写入数据写入到die0的4个存储平面(plane0-plane3)的当前字线的string0中,并将4个存储平面中string0对应的写入数据存储至第一缓存器中。这里,d0至d2用于存储plane0的string0对应的写入数据,d3至d5用于存储plane1的string0对应的写入数据,d6至d8用于存储plane2的string0对应的写入数据,d9至db用于存储plane3的string0对应的写入数据。d0至db中的每者可以存储一个逻辑存储页的数据。d0至d2用于分别存储plane0的string0中写入的3逻辑存储页数据(lp、mp和up),d3至d5用于分别存储plane1的string0中写入的3逻辑存储页数据(lp、mp和up),d6至d8用于分别存储plane2的string0中写入的3逻辑存储页数据(lp、mp和up),d9至db用于分别存储plane3的string0中写入的3逻辑存储页(lp、mp和up)。此时仅需占用缓存器12page的内存。
64.在本实施例中,所述第一缓存器为控制器的缓存器,或者为外部系统的缓存器。所述第一缓存器可以为ram缓存器,具体地可以为dram缓存器。这里,当第一缓存器设置在主机中时,具体可以是主机高速缓冲存储器(host memory buffer,hmb)。hmb是主机在内存中专门划出一部分空间给固态硬盘(solid state drives,ssd)用,ssd可以把它当成自己的dram使用,由于hmb访问速度相对快,可以最大程度的减小性能损失,因此常用于备份缓存。当第一缓存器为控制器中的缓存器时,第一缓存器可以是在控制器中专门设置的一块区域用于缓存数据,也可以是将控制器的一部分dram作为第一缓存器。
65.如图3b所示,将写入数据写入到各个存储芯片中,控制器将写入数据分别写入到die1-dien的4个存储平面(plane0-plane3)的当前字线的string0中,并将每个存储芯片中的4个存储平面中string0对应的写入数据分别与缓存器中存储的die0的4个存储平面中
string0对应的写入数据进行异或操作,得到对应当前字线的存储串string0的第一校验数据。并将第一缓存器中的当前字线的存储串string0的第一校验数据存储到第二缓存器中。
66.在本实施例中,第二缓存器可以为存储装置的备份缓存器,或者为控制器中不同于第一缓存器的缓存器,或者为外部系统中不同于第一缓存器的缓存器。备份缓存器具体可以为存储单元为slc的缓存器。第二缓存器可以为ram缓存器,具体地可以为dram缓存器。当第二缓存器为控制器中的缓存器时,第二存储器可以是在控制器中专门设置的一块区域用于缓存数据,也可以是将控制器的一部分dram作为第二缓存器。
67.在本实施例中,所述第一校验数据包括对应于不同存储平面第二子校验数据,具体地,第一校验数据包括4个第二子校验数据。对应当前字线的存储串string0的第一校验数据包括对应于4个存储平面的第二子校验数据,具体而言,d0至d2中存储的数据为对应于plane0的第二子校验数据,d3至d5中存储的数据为对应于plane1的第二子校验数据,d6至d8中存储的数据为对应于plane2的第二子校验数据,d9至db中存储的数据为对应于plane3的第二子校验数据。
68.参照图3a和图3b的过程,将写入数据分别写入到各个存储芯片的4个存储平面的当前字线(wlk)中的string1-string5中。并将每个存储芯片中的编号相同的存储平面且编号相同的存储串对应的写入数据进行异或操作,以得到对应string1-string5的第一校验数据。每个存储串对应的第一校验数据均包括对应于4个不同存储平面(plane0-plane3)的第二子校验数据。需要说明的是,每得到一个存储串对应的第一校验数据,就将该第一校验数据从第一缓存器存储至第二缓存器。
69.如图3c所示,如果多个存储平面出现编程失败,还需进一步对每个第一校验数据中的各个所述第二子校验数据进行异或操作,得到对应当前字线的不同存储串的第二校验数据,并将第二校验数据存储至第二缓存器。具体而言,针对每个第一校验数据,对plane0的第二子校验数据(d0至d2中存储的数据)、plane1的第二子校验数据(d3至d5中存储的数据)、plane2的第二子校验数据(d6至d8中存储的数据)和plane3的第二子校验数据(d9至db中存储的数据)进行异或操作以得到当前字线的不同存储串的第二校验数据。
70.由于每个第二子校验数据由3逻辑存储页数据(lp、mp和up)组成,即第二子校验数据包括对应不同逻辑存储页的第三子校验数据;具体而言,d0、d1和d2中存储的数据分别为plane0的第二子校验数据中lp、mp和up对应的第三子校验数据;d3、d4和d5中存储的数据分别为plane1的第二子校验数据中lp、mp和up对应的第三子校验数据;d6、d7和d8中存储的数据分别为plane2的第二子校验数据中lp、mp和up对应的第三子校验数据;d9、da和db中存储的数据分别为plane3的第二子校验数据中lp、mp和up对应的第三子校验数据。对每个第一校验数据中的各个所述第二子校验数据进行异或操作,具体可以为:针对每个第一校验数据,将编号相同的逻辑存储页对应的第三子校验数据进行异或操作,得到对应当前字线的不同逻辑存储页的第三校验数据。而由3个逻辑存储页的第三校验数据即可得到对应当前字线的不同存储串的第二校验数据。
71.在本实施例中,针对每个存储串,根据每个存储串的各个逻辑存储页的第三校验数据生成对应当前存储串的第二校验数据。具体可以为:每个存储串包括3个第三校验数据,分别为对应于lp的第三校验数据、对应于mp的第三校验数据和对应于up的第三校验数据;针对每个存储串,根据lp、mp和up对应的3个第三校验数据,即可构成对应当前存储串的
第二校验数据。
72.如图3d和图3e所示,所示,当编程到下一字线wlk 1时,将存储在第二缓存器中的第一校验数据存储至第一缓存器中。具体而言,对当前字线(wlk 1)中string0进行数据写入时,将存储在第二缓存器中的对应于string0的第一校验数据存储至第一缓存器中,从而可以将wlk 1中的string0对应的写入数据与wlk中的string0的第一校验数据进行异或操作。这里,string0对应的写入数据分为4个存储平面(plane0-plane3)的写入数据,而string0的第一校验数据也包括对应于不同存储平面第二子校验数据。因此在将string0对应的写入数据与string0的第一校验数据进行异或操作时,分别将4个存储平面的string0对应的写入数据与对应存储平面的第二子校验数据进行异或操作即可。
73.如图3f所示,将写入数据写入到各个存储芯片中,控制器将写入数据分别写入到die1-dien的4个存储平面(plane0-plane3)的当前字线的string0中,并将每个存储芯片中的4个存储平面中string0对应的写入数据分别与缓存器中存储的string0对应的第一校验数据进行异或操作,得到对应wlk至wlk 1的存储串string0的第一校验数据,并该第一校验数据从第一缓存器存储到第二缓存器中。
74.参照图3d至图3f的过程,将写入数据分别写入到各个存储芯片的4个存储平面的当前字线(wlk 1)中的string1-string5中。并将每个存储芯片中的编号相同的存储平面且编号相同的存储串对应的写入数据进行异或操作,以得到对应string1-string5的第一校验数据。每个存储串对应的第一校验数据均包括对应于4个不同存储平面(plane0-plane3)的第二子校验数据。需要说明的是,每得到一个存储串对应的第一校验数据,就将该第一校验数据从第一缓存器存储至第二缓存器。
75.需要说明的是,完成哪条字线的数据写入时,第二缓存器中存储的对应不同存储串的第一校验数据为该字线至起始字线的不同存储串的所有写入数据对应的第一校验数据。
76.本实施例中,每得到对应字线(wlk和wlk 1)的一个存储串对应的第一校验数据,还需对每个第一校验数据中的各个所述第二子校验数据进行异或操作,得到对应字线(wlk和wlk 1)的不同存储串的第二校验数据,并将该第二校验数据存储至第二缓存器。
77.参照图3a至图3e的过程,不断进行第一校验数据和第二校验数据的更新,直到本次写入数据的最后一次数据写入,如图3g所示,若最后一次数据写入的字线为wlk x(k x小于n),则通过各条字线中编号相同的存储平面且编号相同的存储串对应的写入数据的异或操作,可以得到对应不同存储串和不同存储平面的第一子校验数据,根据编号相同的存储串的第一子校验数据,即可得到第一奇偶校验数据。通过各条字线中编号相同的存储平面且编号相同的存储串对应的写入数据的异或操作也可以看做是各条字线(wlk至wlk x)中编号相同的存储串对应的第一校验数据之间的异或操作,可以得到对应不同存储串的第一奇偶校验数据。如果多个存储平面出现编程失败,则进一步通过每个第一奇偶校验数据中的各个所述第一子校验数据的异或操作,可以得到对应不同存储串的第二奇偶校验数据。通过每个第一奇偶校验数据中的各个所述第一子校验数据的异或操作,可以得到对应不同存储串的第二奇偶校验数据也可以看做是各条字线(wlk至wlk x)中编号相同的存储串对应的第二校验数据的异或操作,可以得到对应不同存储串的第二奇偶校验数据。
78.每个第一奇偶校验数据均包括对应于不同存储平面的第一子校验数据,具体地,
第一奇偶校验数据包括4个第一子校验数据,分别为对应于plane0的第一子校验数据、对应于plane1的第一子校验数据、对应于plane2的第一子校验数据和对应于plane3的第一子校验数据。
79.在本实施例中,第一奇偶校验数据包括12page的数据,第二奇偶校验数据包括3page的数据。而第二奇偶校验数据又可以通过第一奇偶校验数据得到,从而本实施例中通过6
×
12page共72page大小的备份即可实现存储装置中所有存储芯片的数据恢复。如此,本技术实施例中第一缓存器和第二缓存器的存储空间大于等于72page即可。
80.如图3h所示,在本次写入数据结束后,得到对应不同存储串的第一奇偶校验数据和第二奇偶校验数据,此时将对应不同存储串的第一奇偶校验数据和第二奇偶校验数据存储至所述存储装置中。这里,第一奇偶校验数据和第二奇偶校验数据可以存储至所述存储装置中预留的用于存储校验数据的冗余阵列校验(raid rarity)存储区中。该冗余阵列校验存储区的存储空间可以根据实际需求而确定,例如冗余阵列校验存储区的存储空间为72page。
81.本实施例中,第二缓存器仅作为第一校验数据和第二校验数据的暂存缓存器,在完成数据写入后,最终得到的第一奇偶校验数据和第二奇偶校验数据会从第一缓存器中存储至存储装置中,此时第二缓存器的存储空间得以释放。
82.本实施例中,基于对应不同编号存储串的第一奇偶校验数据和基于第一奇偶校验数据中第一子校验数据得到的第二奇偶校验数据,可以实现多个存储平面出现编程失败的情况下的各个存储平面的数据恢复。
83.以下结合表1的内容对本实施例中数据恢复操作进行描述。如表1所示,以存储芯片die0为例进行说明,在该存储芯片中,在对第2条字线(wl2)中的存储串string2中的存储单元的低页、中页、高页执行从plane0到plane3的一次多平面编程中,plane0中的第2条字线(wl2)中的string2中的存储单元的低页、中页、高页发生编程状态失败。在这种情况下,不仅plane0中的第2条字线(wl2)上的存储串发生干扰,plane1至plane3中的相同字线(wl2)上的存储串也发生干扰。plane0中的第2条字线(wl2)中的string0至string2中的存储单元以及plane1至plane3中的第2条字线(wl2)中的string0至string2中的存储单元数据受损。
84.表1
[0085][0086]
存储系统在编程操作中如果操作时序和电路稳定性存在问题可能造成数据出错,或者随着时间的推移,存储在存储系统中的存储芯片中的存储单元中的电荷的慢慢流逝的特点决定也可能会造成数据出错。
[0087]
在存储系统中出现少量数据失效或者特定模式下的数据出错时,可以通过ecc编码校验的方式对少量失效数据进行纠错和恢复。ecc是可以用于存储系统的差错检测和修正算法。目前三维nand存储器中数据恢复比较通用的方式是低密度奇偶校验码(low density parity check code,ldpc),其广义上也是一种ecc编码校验的方式,ldpc可以纠
正不止一位错误,ldpc的纠错力度大概为200多位/4千字节,如果一个存储页大概为16千字节,那么ldpc能纠正一个存储页上大概上千位的出错。然而当一个存储页中出错的位数超过ldpc纠错的范围时,无法通过ldpc的方式对出错的数据进行恢复。
[0088]
在编程状态失败的情况下,当ecc编码校验的方式无法对失效数据进行纠错和恢复时,存储系统中对于被破坏数据的恢复,传统上有重读(read retry)和独立冗余磁盘阵列(redundant arrays of independent disks,raid)两种方法。重读的本质是一种纠错机制,当数据出现ecc不可纠正的读取错误时,通过尝试偏离正常阈值电压的方式找到最接近的阈值电压,试图正确读出数据。独立冗余磁盘阵列是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术,数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性,在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等,对磁盘阵列的操作与单个硬盘一模一样,不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。
[0089]
对于以上如表1示出的相邻平面干扰问题引起的数据破坏,重读完全无效,独立冗余磁盘阵列的方式又包括存储面级别的raid和芯片级别的raid,芯片级别的raid可以对相邻平面干扰问题引起的破坏数据进行恢复,但存储系统的配置成本较高;而配置成本较低的存储平面级别的raid的方式只能恢复一个存储平面内的故障,如果多个存储平面出现编程失败,存储平面级别的raid将无法恢复数据。因此,相邻平面干扰问题的存在会引起被破坏的数据没法完全恢复而导致数据丢失的问题。
[0090]
示例性的,当数据写入到表1所示的情况时,此时得到的对应不同存储串的第一奇偶校验数据如表2所示。
[0091]
表2
[0092]
fs0fs0p0fs0p1fs0p2fs0p3fs1fs1p0fs1p1fs1p2fs1p3fs2fs2p0fs2p1fs2p2fs2p3fs3fs3p0fs3p1fs3p2fs3p3fs2fs2p0fs2p1fs2p2fs2p3fs3fs3p0fs3p1fs3p2fs3p3
[0093]
如表2所示,fs0-fs5分别为string0-string5的第一奇偶校验数据,fs0p0-fs0p3分别为fs0的4个对应不同存储平面的第一子校验数据,
……
,fs5p0-fs5p3分别为fs5的4个对应不同存储平面的第一子校验数据。针对fs0,fs0p0由plane0-wl1-string0和plane0-wl2-string0的写入数据进行异或操作得到,fs0p1由plane1-wl1-string0和plane1-wl2-string0的写入数据进行异或操作得到,fs0p2由plane2-wl1-string0和plane2-wl2-string0的写入数据进行异或操作得到,fs0p3由plane3-wl1-string0和plane3-wl2-string0的写入数据进行异或操作得到。fs1和fs2中的第一子校验数据的构成和fs0中的第一子校验数据的构成类似,在此不再赘述。针对fs3,fs0p3由plane0-wl1-string3的写入数据得到,fs0p1由plane1-wl1-string3的写入数据得到,fs0p2由plane2-wl1-string3的写入数据得到,fs0p3由plane3-wl1-string3的写入数据得到。fs4和fs5中的第一子校验数据的构成和fs3中的第一子校验数据的构成类似,在此不再赘述。fs0p0-fs0p3分别包括3page
的数据,则fs0-fs5分别包括12page的数据。
[0094]
在本实施例中,ss0-ss5分别为string0-string5的第二奇偶校验数据。ss0由fs0p0、fs0p1、fs0p2和fs0p3进行异或操作得到,
……
,ss5由fs5p0、fs5p1、fs5p2和fs5p3进行异或操作得到。由于fs0p0-fs0p3分别包括3page的数据,因此,得到的ss0-ss5也分别3page的数据。
[0095]
在本实施例中,当plane0中的wl2中的string2有编程异常时,针对plane1-plane3,由于每个存储平面中string0-string2中均仅有一个存储串存在编程干扰导致的编程异常,从而利用第一奇偶检验数据和plane1-plane3中的string0-string2的编程正常的写入数据,就可以对plane1-plane3中的wl2中的string0-string2的写入数据进行恢复。具体地,以plane1中的wl2中的string0为例,利用fs0中的fs0p1和plane1中的string0的编程正常的写入数据,可以对plane1中的wl2中的string0的写入数据进行恢复,即利用fs0p1和plane1中的wl2中的string0的写入数据进行异或操作即可得到plane1中的wl2中的string0的写入数据。plane1-plane3中的wl2中的string1-string2的数据恢复和string0数据恢复过程类似,在此不再赘述。
[0096]
由于此时plane0中仅有wl2中的string0-string2存在编程干扰和编程异常,从而利用第二奇偶检验数据和plane1-plane3中的string0-string2的编程正常的写入数据,就可以对plane0中的wl2中的string0-string2的写入数据进行恢复。具体地,以string0为例,利用ss0和plane1-plane3中的string0的写入数据,可以对plane0中的wl2中的string0的写入数据进行恢复,即利用ss0和plane1-plane3中的string0的写入数据进行异或操作即可得到plane0中的wl2中的string0的写入数据。plane0中的wl2中的string1-string2的数据恢复和string0数据恢复过程类似,在此不再赘述。
[0097]
本实施例中,在当前存储平面出现编程失败的情况下,基于所述第一奇偶检验数据执行所述数据恢复操作以恢复所述写入数据。
[0098]
本实施例中,在多个存储平面出现编程失败的情况下,基于所述第一奇偶检验数据和所述第二奇偶检验数据执行所述数据恢复操作以恢复所述写入数据。
[0099]
本实施例中,通过各个存储串对应的第一奇偶校验数据和第二奇偶检验数据即可实现多个存储平面出现编程失败的情况下的各个存储平面的数据恢复。而第二奇偶校验数据又可以通过第一奇偶校验数据得到,从而仅需花费6个存储串对应的第一奇偶校验数据的存储空间(72page),即可实现多个存储芯片的数据恢复。
[0100]
基于上述存储系统,本技术实施例还提供一种操作方法,所述方法应用于存储装置,所述存储装置包括多个存储芯片;所述多个存储芯片中的每个存储芯片均包括按照同一编号规则进行编号的多个存储平面;所述多个存储平面中的每个存储平面均包括按照同一编号规则进行编号的多个存储串;如图4所示,所述方法包括:
[0101]
步骤401:接收写入数据;
[0102]
步骤402:对编号相同的存储串对应的写入数据执行第一校验操作,以生成对应不同编号存储串的第一奇偶校验数据;每个第一奇偶校验数据均包括对应于不同存储平面的第一子校验数据;
[0103]
步骤403:基于所述第一奇偶校验数据执行数据恢复操作。
[0104]
在本实施例中,所述方法还包括:针对每个第一奇偶校验数据,对所述第一奇偶校
验数据中的所述第一子校验数据执行第二校验操作,以生成对应不同存储串的第二奇偶校验数据;步骤403包括:基于所述第一奇偶校验数据和所述第二奇偶校验数据执行数据恢复操作。
[0105]
本实施例中,基于对应不同编号存储串的第一奇偶校验数据和基于第一奇偶校验数据中第一子校验数据得到的第二奇偶校验数据,可以实现多个存储平面出现编程失败的情况下的各个存储平面的数据恢复。
[0106]
在本实施例中,所述方法还包括:将所述第一奇偶校验数据和所述第二奇偶校验数据存储至所述存储装置中的冗余阵列校验存储区中。
[0107]
在本实施例中,所述多个存储平面中的每个存储平面均包括按照同一编号规则进行编号的多条字线;所述多条字线中的每条字线均包括按照同一编号规则进行编号的多个存储串;所述对编号相同的存储串对应的写入数据执行第一校验操作,包括:针对每条字线,将编号相同的存储平面且编号相同的存储串对应的写入数据进行异或操作,得到对应不同存储串的第一校验数据;所述第一校验数据包括对应于不同存储平面第二子校验数据。
[0108]
在本实施例中,所述对编号相同的存储串对应的写入数据执行第一校验操作,还包括:对各条字线中编号相同的存储串对应的第一校验数据进行异或操作,得到对应不同存储串的第一奇偶校验数据。
[0109]
在本实施例中,第二校验数据包括对应于不同存储平面的第二子校验数据;所述对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,包括:针对每条字线中的每个第一校验数据,对各个所述第二子校验数据进行异或操作,得到对应当前字线的不同存储串的第二校验数据。
[0110]
在本实施例中,所述对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,还包括:对编号相同的存储串对应的第二校验数据进行异或操作,得到对应不同存储串的第二奇偶校验数据。
[0111]
在本实施例中,所述多个存储串中的每个存储串均包括按照同一编号规则进行编号的多个逻辑存储页;第二子校验数据包括对应不同逻辑存储页的第三子校验数据;所述对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,还包括:针对每个存储串,将第一校验数据中编号相同的逻辑存储页对应的第三子校验数据进行异或操作,得到对应存储串的不同逻辑存储页的第三校验数据。
[0112]
在本实施例中,所述对所述第一奇偶校验数据中的所述第一子校验数据执行第二校验操作,还包括:针对每个存储串,根据每个存储串的各个逻辑存储页的第三校验数据生成对应当前存储串的第二校验数据。
[0113]
在本实施例中,所述基于所述第一奇偶校验数据执行数据恢复操作,包括:在当前存储平面出现编程失败的情况下,基于所述第一奇偶校验数据执行所述数据恢复操作以恢复所述写入数据。
[0114]
在本实施例中,所述基于所述第一奇偶校验数据和所述第二奇偶校验数据执行数据恢复操作,包括:在多个存储平面出现编程失败的情况下,基于所述第一奇偶校验数据和所述第二奇偶校验数据执行所述数据恢复操作以恢复所述写入数据。
[0115]
需要说明的是,以上操作方法的描述,与上述存储系统实施例的描述是类似的,具
有同存储系统实施例相似的有益效果,因此不做赘述。对于本技术实施例操作方法中未披露的技术细节,请参照本技术实施例中存储系统的描述而理解。
[0116]
基于上述操作方法,本技术实施例还提供一种控制器,所述控制器用于实现上述的操作方法。
[0117]
本实施例提供了一种存储系统及其操作方法,所述存储系统包括:存储装置,所述存储装置包括多个存储芯片;所述多个存储芯片中的每个存储芯片均包括按照同一编号规则进行编号的多个存储平面;所述多个存储平面中的每个存储平面均包括按照同一编号规则进行编号的多个存储串;控制器,其与所述存储装置通信;所述控制器被配置为:接收写入数据;对编号相同的存储串对应的写入数据执行第一校验操作,以生成对应不同编号存储串的第一奇偶校验数据;每个第一奇偶校验数据均包括对应于不同存储平面的第一子校验数据;基于所述第一奇偶校验数据执行数据恢复操作。本实施例中,基于对应不同编号存储串的第一奇偶校验数据且每个第一奇偶校验数据均包括对应于不同存储平面的第一子校验数据,因此,基于第一奇偶校验数据可以实现多个存储平面出现编程失败的情况下的各个存储平面的数据恢复。
[0118]
本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本技术所提供的几个装置实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的装置实施例。
[0119]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献