本发明总体上涉及数据存储,以及更具体地,涉及一种能够基于raid来保护存储器中存储的数据的方法及其存储装置。
背景技术:
1、raid(redundant array of independent disks,独立磁盘冗余阵列)是将多个独立磁盘通过不同的组合方式组合在一起形成的磁盘阵列。由于raid可以通过数据校验/镜像功能提供容错,从而增强了数据存储的安全性。因此,raid已经广泛应用于数据存储和数据保护的各个领域中。
2、近年来,为了进一步提高闪速存储器件的位密度以及降低其成本,开发出了三维(3d)nand闪存存储器(3d nand flash memory device)。但是,在3d nand闪存存储器的编程过程中,有时会编程失败或数据编程错误,这时数据无法从3d nand闪存存储器读出,造成数据丢失。利用raid技术,可以恢复丢失的数据。具体地说,对编程成功的数据以及通过所有待编程的数据获得的校验码执行“异或”操作可以恢复丢失的数据。
3、如图1中所示,3d nand闪存存储器可以包括n个存储模块,每个存储模块包括(例如)2个存储块。为了提高编程速度,可以同时对多个存储块并行编程。但是,当对存储模块1中的存储块0编程失败时,还可能伴随导致存储模块1中的相邻存储块1的数据丢失。由于同时有两个存储块的数据丢失,如果只生成一个校验码,将无法利用raid技术恢复丢失的数据。
4、因此,需要一种用于存储器的数据保护方法及其存储装置,其能够在存储器中的多个存储块数据丢失时恢复丢失的数据。
技术实现思路
1、根据本公开的实施例,提供了一种用于存储器的数据保护方法,所述存储器包括多个存储模块,每个存储模块包括第一存储块和第二存储块,所述方法包括:在所述存储器的编程过程中,基于所述多个存储模块中的每个存储模块的相应第一存储块的存储数据来生成第一校验码,并且基于所述多个存储模块中的每个存储模块的相应第二存储块的存储数据来生成第二校验码;以及在所述存储器的编程过程之后,基于所述第一校验码和所述第二校验码来生成附加校验码,其中,所述附加校验码用于恢复所述多个存储模块的第一存储块和第二存储块中的其中一个存储块的数据。
2、在一些实施例中,所述存储模块为存储管芯或存储面。
3、在一些实施例中,每个存储模块的所述第一存储块和所述第二存储块为物理相邻的存储块。
4、在一些实施例中,对所述多个存储模块中的每个存储模块的相应第一存储块的存储数据执行异或操作来生成所述第一校验码,对所述多个存储模块中的每个存储模块的相应第二存储块的存储数据执行异或操作来生成所述第二校验码,并且对所述第一校验码和所述第二校验码执行异或操作来生成所述附加校验码。
5、在一些实施例中,还包括将所述附加校验码存储至所述存储器。
6、在一些实施例中,所述存储器为3d nand闪存存储器。
7、在一些实施例中,还包括步骤:在所述多个存储模块的第一存储块和第二存储块中的其中一个存储块发生数据丢失的情况下,使用所述附加校验码以及所述多个存储模块的第一存储块和第二存储块中存储的未丢失的数据来恢复所述一个存储块的数据。
8、在一些实施例中,在将所述附加校验码存储至所述存储器之前,所述第一校验码和所述第二校验码被存储在相应的缓存中。
9、在一些实施例中,还包括步骤:在将所述附加校验码存储至所述存储器之后,从所述缓存中删除所述第一校验码和所述第二校验码。
10、在一些实施例中,还包括步骤:在从所述缓存中删除所述第一校验码和所述第二校验码之前,基于raid技术并且使用所述第一校验码和所述第二校验码对所述多个存储模块的第一存储块和第二存储块中的一个或多个存储块的数据进行恢复操作。
11、根据本公开的实施例,提供了一种存储器系统,包括:存储器,所述存储器包括多个存储模块,并且每个所述存储模块包括第一存储块和第二存储块;以及控制器,所述控制器连接至所述存储器并且被配置为:在所述存储器的编程过程中,基于所述多个存储模块中的每个存储模块的相应第一存储块的存储数据来生成第一校验码,并且基于所述多个存储模块中的每个存储模块的相应第二存储块的存储数据来生成第二校验码;以及在所述存储器的编程过程之后,基于所述第一校验码和所述第二校验码来生成附加校验码,其中,所述附加校验码用于恢复所述多个存储模块的第一存储块和第二存储块中的其中一个存储块的数据。
12、在一些实施例中,所述存储模块为存储管芯或存储面。
13、在一些实施例中,每个存储模块的所述第一存储块和所述第二存储块为物理相邻的存储块。
14、在一些实施例中,所述控制器被配置为对所述多个存储模块中的每个存储模块的相应第一存储块的存储数据执行异或操作来生成所述第一校验码,对所述多个存储模块中的每个存储模块的相应第二存储块的存储数据执行异或操作来生成所述第二校验码,并且对所述第一校验码和所述第二校验码执行异或操作来生成所述附加校验码。
15、在一些实施例中,所述控制器还被配置为将所述附加校验码存储至所述存储器。
16、在一些实施例中,所述存储器为3d nand闪存存储器。
17、在一些实施例中,所述控制器被配置为在所述多个存储模块的第一存储块和第二存储块中的其中一个存储块发生数据丢失的情况下,使用所述附加校验码以及所述多个存储模块的第一存储块和第二存储块中存储的未丢失的数据来恢复所述一个存储块的数据。
18、在一些实施例中,所述控制器还被配置为在将所述附加校验码存储至所述存储器之前,将所述第一校验码和所述第二校验码存储在相应的缓存中。
19、在一些实施例中,所述控制器还被配置为在将所述附加校验码存储至所述存储器之后,从所述缓存中删除所述第一校验码和所述第二校验码。
20、在一些实施例中,所述控制器还被配置为在从所述缓存中删除所述第一校验码和所述第二校验码之前,基于raid技术并且使用所述第一校验码和所述第二校验码对所述多个存储模块的第一存储块和第二存储块中的一个或多个存储块的数据进行恢复操作。
21、根据本公开的实施例,提供了一种计算机可读存储介质,在其上存储有程序代码,当所述程序代码由处理器执行时,使得所述处理器执行根据本发明所述的方法。
1.一种用于存储器的数据保护方法,所述存储器包括多个存储模块,每个存储模块包括第一存储块和第二存储块,所述方法包括:
2.根据权利要求1所述的方法,其中,所述存储模块为存储管芯或存储面。
3.根据权利要求1所述的方法,其中,每个存储模块的所述第一存储块和所述第二存储块为物理相邻的存储块。
4.根据权利要求1所述的方法,其中,对所述多个存储模块中的每个存储模块的相应第一存储块的存储数据执行异或操作来生成所述第一校验码,对所述多个存储模块中的每个存储模块的相应第二存储块的存储数据执行异或操作来生成所述第二校验码,并且对所述第一校验码和所述第二校验码执行异或操作来生成所述附加校验码。
5.根据权利要求1所述的方法,还包括将所述附加校验码存储至所述存储器。
6.根据权利要求1所述的方法,其中,所述存储器为3d nand闪存存储器。
7.根据权利要求1所述的方法,还包括:
8.根据权利要求5所述的方法,其中,在将所述附加校验码存储至所述存储器之前,所述第一校验码和所述第二校验码被存储在相应的缓存中。
9.根据权利要求8所述的方法,还包括:
10.根据权利要求1所述的方法,还包括:
11.根据权利要求1所述的方法,还包括:
12.一种存储器系统,包括:
13.根据权利要求12所述的存储器系统,其中,所述存储模块为存储管芯或存储面。
14.根据权利要求12所述的存储器系统,其中,每个存储模块的所述第一存储块和所述第二存储块为物理相邻的存储块。
15.根据权利要求12所述的存储器系统,其中,所述控制器被配置为对所述多个存储模块中的每个存储模块的相应第一存储块的存储数据执行异或操作来生成所述第一校验码,对所述多个存储模块中的每个存储模块的相应第二存储块的存储数据执行异或操作来生成所述第二校验码,并且对所述第一校验码和所述第二校验码执行异或操作来生成所述附加校验码。
16.根据权利要求12所述的存储器系统,所述控制器还被配置为将所述附加校验码存储至所述存储器。
17.根据权利要求12所述的存储器系统,其中,所述存储器为3d nand闪存存储器。
18.根据权利要求12所述的存储器系统,其中,所述控制器被配置为:在所述多个存储模块的第一存储块和第二存储块中的其中一个存储块发生数据丢失的情况下,使用所述附加校验码以及所述多个存储模块的第一存储块和第二存储块中存储的未丢失的数据来恢复所述一个存储块的数据。
19.根据权利要求16所述的存储器系统,其中,所述控制器还被配置为在将所述附加校验码存储至所述存储器之前,将所述第一校验码和所述第二校验码存储在相应的缓存中。
20.根据权利要求19所述的存储器系统,其中,所述控制器还被配置为在将所述附加校验码存储至所述存储器之后,从所述缓存中删除所述第一校验码和所述第二校验码。
21.根据权利要求12所述的存储器系统,其中,所述控制器还被配置为基于raid技术并且使用所述第一校验码和所述第二校验码对所述多个存储模块的第一存储块和第二存储块中的一个或多个存储块的数据进行恢复操作。
22.根据权利要求12所述的存储器系统,其中,所述控制器还被配置为利用所述第一校验码和所述第二校验码恢复因编程失败而丢失的数据。
23.一种计算机可读存储介质,在其上存储有程序代码,当所述程序代码由处理器执行时,使得所述处理器执行根据权利要求1至11中的任一项所述的方法。