一种资料储存型闪存的数据恢复方法和装置与流程

文档序号:13735874阅读:188来源:国知局
一种资料储存型闪存的数据恢复方法和装置与流程

本发明涉及存储技术领域,尤其涉及一种资料存储型闪存的数据恢复方法和装置。



背景技术:

目前固态存储设备(如固态硬盘)的存储介质基本上都是资料存储型内存芯片nandflash,由于资料存储型内存芯片存在数据保存策略(dataretention)、读操作干扰(readdisturb)和磨损等负面因素,可能导致固态存储设备的数据出现被破坏的情况,即可能出现某个物理页的数据丢失的情况。

在固态存储设备整个生命周期的工作过程中,对资料存储型内存芯片的进行数据写入操作(即program,俗称编程),有可能在将数据写入资料存储型内存芯的某个物理页page时,会发生数据写入错误的情况。

例如emmc(embeddedmultimediacard,内嵌式存储器标准规格)的一些平台差异性,导致供电情况相差比较大,出现这类写入错误的情况更是普遍。当出现这类问题的时候,往往会导致用户数据的丢失,这对于需要稳定性高的固态存储设备的用户来说无疑是致命的打击。而目前针对资料存储型内存芯片nandflash出现数据写入错误时,采取的办法并不多,要么比较耗成本,要么会降低固态存储设备的的性能。比如目前常见的两种方法:

方案一:采取具有大缓存的缓冲器(buffer),保证执行完数据写入指令后,若发生数据写入错误时,其错误的数据还保留在缓存buffer中,这类恢复数据的方法比较简单和直接,但需要资源开销较大的缓冲器进行支持,因而成本比较高,不利于推广和应用。

方案二:每次都等待并确认编程成功以后再把buffer中的数据给冲掉,这样也是一种保险的方法进行数据保护。但是nandflash的编程时间一般普遍都比较长,所以采取这类方式会导致性能的降低,不利于用户的体验。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种资料储存型闪存的数据恢复方法、装置及计算机可读存储介质,旨在解决目前资料储存型闪存在数据被破坏而失效时,恢复失效数据造成资料储存型闪存的稳定性差和安全性不高的问题。

为实现上述目的,本发明提供一种资料储存型闪存的数据恢复方法,所述方法包括以下步骤:

将资料储存型闪存中的目标物理块设置为具有n个抽象页的抽象模型,所述n为资料储存型闪存的通道数量、各通道中使能端数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量、和所述目标物理块的物理页数量的乘积;

从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码;

在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。

优选地,所述从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码之后,所述方法还包括:

根据所述抽象模型建立对应的缓存模型,所述缓存模型包括多个缓存页,以及与所述校验信息页对应的缓存校验页,其中,各缓存页根据所述通道数和所述使能端的数量生成,所述缓存校验页设置有与所述物理校验码对应的缓存校验码;

接收外部的数据写入指令,将与所述数据写入指令对应的目标数据拆分为多个部分目标数据;

在当前部分目标数据写入与当前缓存页对应的抽象页时,将当前部分目标数据与已写入的部分目标数据进行异或运算,并将运算结果作为所述缓存校验页的缓存校验码;

在所述目标数据全部写入所述抽象模型之前,若所述抽象模型中出现部分目标数据丢失的待恢复抽象页时,则根据所述缓存校验码对所述待恢复抽象页进行数据恢复。

优选地,所述将当前部分目标数据与已写入的部分目标数据进行异或运算,并将运算结果作为所述缓存校验页的缓存校验码之后,所述方法还包括

在所述目标数据全部写入所述抽象模型之后,根据所述缓存校验码对所述校验信息页的物理校验码进行更新;

若所述抽象模型中出现部分目标数据丢失的待恢复抽象页时,则根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。

优选地,所述从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码,具体包括:

从所述n个抽象页中选取第n个抽象页作为所述校验信息页,为所述校验信息页设置物理校验码,所述物理校验码表征为所述抽象模型中各抽象页的有效数据的异或值;

相应地,所述在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复,具体包括:

在所述抽象模型中出现有效数据丢失的待恢复抽象页时,确定所述抽象模型中剩余抽象页的有效数据,根据所述剩余抽象页的有效数据及所述物理校验码对所述待恢复抽象页进行数据恢复。

优选地,所述从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码,具体包括:

对所述n个抽象页分别设置校验信息页,为各校验信息页分别设置物理校验码,各物理校验码表征为各抽象页的备份数据;

相应地,所述在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复,具体包括:

在所述抽象模型中出现有效数据丢失的待恢复抽象页时,确定所述待恢复抽象页对应的物理校验码,并根据所述对应的物理校验码对所述待恢复抽象页进行数据恢复。

优选地,所述将资料储存型闪存中的目标物理块设置为具有n个抽象页的抽象模型,具体包括:

确定所述资料储存型闪存中的目标物理块中物理页的数量;

获取所述资料储存型闪存的通道的数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量和各通道中能端段的数量;

根据所述物理页的数量、所述通道的数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量和各通道中能端段的数量将所述目标物理块设置为具有n个抽象页的抽象模型。

优选地,所述确定所述资料储存型闪存中的目标物理块中物理页的数量,具体包括:

接收外部输入的分页指令;

根据所述分页指令确定所述资料储存型闪存中所述目标物理块的各物理页的数量。

优选地,所述物理校验码通过以下公式计算获得:

其中,d1表示所述抽象模型中第1个抽象页的有效数据,d2表示所述抽象模型中第2个抽象页的有效数据,d3表示所述抽象模型中第3个抽象页的有效数据,dn表示所述抽象模型中第n个抽象页的有效数据,p表示各抽象页的有效数据进行异或运算后所生成的物理校验码;

相应地,所述缓存校验码通过以下公式计算获得:

其中,c1表示已写入所述抽象模型中第1个抽象页的部分目标数据,c2表示已写入所述抽象模型中第2个抽象页的部分目标数据,c3表示已写入所述抽象模型中第3个抽象页的部分目标数据,cn已写入表示所述抽象模型中第n个抽象页的部分目标数据,p'表示所缓存校验码。

此外,为实现上述目的,本发明还提出一种资料储存型闪存的数据恢复装置,所述装置包括:处理器,存储器及存储在所述存储器上并可在所述处理器上运行的资料储存型闪存的数据恢复程序;所述资料储存型闪存的数据恢复装置配置为实现如上文所述资料储存型闪存的数据恢复的方法的步骤。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述存储介质上存储所述资料储存型闪存的数据恢复程序,所述资料储存型闪存的数据恢复程序被处理器执行时实现如上文所述的资料储存型闪存的数据恢复方法的步骤。

本发明通过将资料储存型闪存中的目标物理块设置为具有n个抽象页的抽象模型,从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码,在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。进而能够针对资料储存型闪存中因数据被破坏而失效的数据进行恢复,在进行数据恢复的同时能够保证资料闪存的稳定性和安全性不受影响,即便缓存器的资源开销小,仍能够在写入数据出现错误的情况下对资料储存型闪存中的数据进行恢复。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的资料储存型闪存的数据恢复装置结构示意图;

图2为本发明资料储存型闪存的数据恢复方法第一实施例的流程示意图;

图3为本发明实施例中资料储存型闪存的目标物理块的分页模型示意图;

图4为本发明实施例中基于图3的分页模型示意图生成的抽象模型示意图;

图5为本发明实施例中为抽象模型示意图设置校验信息页后的模型示意图;

图6为本发明实施例中基于图5的抽象模型示意图生成的缓存模型示意图;

图7为本发明资料储存型闪存的数据恢复方法第二实施例的流程示意图;

图8为本发明实施例中缓存模型前两个缓存页与对应抽象模型的抽象页之间数据流向关系示意图;

图9为本发明实施例中缓存模型后两个缓存页与对应抽象模型的抽象页之间数据流向关系示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的资料储存型闪存的数据恢复装置的结构示意图。

如图1所示,该资料储存型闪存的数据恢复装置可以包括:处理器1001,例如cpu,用户接口1002,固态存储设备1003,存储器1004,通信总线1005。其中,用户接口1002可以连接包括显示屏(display)、输入单元比如键盘(keyboard),可选地用户接口1002还可以包括标准的有线接口、无线接口。存储器1004可以是稳定的存储器(non-volatilememory),同时可以包括eeprom(electricallyerasableprogrammableread-onlymemory)电可擦可编程只读存储器。通信总线1005用于实现这些组件之间的连接通信。固态存储设备1003可以是固态硬盘等固态存储设备。

本领域技术人员可以理解,图1中示出的资料储存型闪存的数据恢复装置的结构并不构成对资料储存型闪存的数据恢复装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1004中可以包括操作系统、硬盘控制模块、用户接口模块以及资料储存型闪存的数据恢复程序。

在图1所示的资料储存型闪存的数据恢复装置中,用户接口1002主要用于与用户进行交互;本发明应用服务器中的处理器1001、存储器1004可以设置在资料储存型闪存的数据恢复装置中,所述资料储存型闪存的数据恢复装置通过处理器1001调用存储器1004中存储的资料储存型闪存的数据恢复程序,并执行以下操作:

将资料储存型闪存中的目标物理块设置为具有n个抽象页的抽象模型,所述n为资料储存型闪存的通道数量、各通道中使能端数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量、和所述目标物理块的物理页数量的乘积;

从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码;

在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。

进一步地,处理器1001可以调用存储器1004中存储的资料储存型闪存的数据恢复程序,还执行以下操作:

根据所述抽象模型建立对应的缓存模型,所述缓存模型包括多个缓存页,以及与所述校验信息页对应的缓存校验页,其中,各缓存页根据所述通道数和所述使能端的数量生成,所述缓存校验页设置有与所述物理校验码对应的缓存校验码;

接收外部的数据写入指令,将与所述数据写入指令对应的目标数据拆分为多个部分目标数据;

在当前部分目标数据写入与当前缓存页对应的抽象页时,将当前部分目标数据与已写入的部分目标数据进行异或运算,并将运算结果作为所述缓存校验页的缓存校验码;

在所述目标数据全部写入所述抽象模型之前,若所述抽象模型中出现部分目标数据丢失的待恢复抽象页时,则根据所述缓存校验码对所述待恢复抽象页进行数据恢复。

进一步地,处理器1001可以调用存储器1004中存储的资料储存型闪存的数据恢复程序,还执行以下操作:

在所述目标数据全部写入所述抽象模型之后,根据所述缓存校验码对所述校验信息页的物理校验码进行更新;

若所述抽象模型中出现部分目标数据丢失的待恢复抽象页时,则根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。

进一步地,处理器1001可以调用存储器1004中存储的资料储存型闪存的数据恢复程序,还执行以下操作:

从所述n个抽象页中选取第n个抽象页作为所述校验信息页,为所述校验信息页设置物理校验码,所述物理校验码表征为所述抽象模型中各抽象页的有效数据的异或值;

在所述抽象模型中出现有效数据丢失的待恢复抽象页时,确定所述抽象模型中剩余抽象页的有效数据,根据所述剩余抽象页的有效数据及所述物理校验码对所述待恢复抽象页进行数据恢复。

进一步地,处理器1001可以调用存储器1004中存储的资料储存型闪存的数据恢复程序,还执行以下操作:

对所述n个抽象页分别设置校验信息页,为各校验信息页分别设置物理校验码,各物理校验码表征为各抽象页的备份数据;

在所述抽象模型中出现有效数据丢失的待恢复抽象页时,确定所述待恢复抽象页对应的物理校验码,并根据所述对应的物理校验码对所述待恢复抽象页进行数据恢复。

进一步地,处理器1001可以调用存储器1004中存储的资料储存型闪存的数据恢复程序,还执行以下操作:

确定所述资料储存型闪存中的目标物理块中物理页的数量;

获取所述资料储存型闪存的通道的数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量和各通道中能端段的数量;

根据所述物理页的数量、所述通道的数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量和各通道中能端段的数量将所述目标物理块设置为具有n个抽象页的抽象模型。

进一步地,处理器1001可以调用存储器1004中存储的资料储存型闪存的数据恢复程序,还执行以下操作:

接收外部输入的分页指令;

根据所述分页指令确定所述资料储存型闪存中所述目标物理块的各物理页的数量。

本实施例将资料储存型闪存中的目标物理块设置为具有n个抽象页的抽象模型,所述n为资料储存型闪存的通道数量、各通道中使能端数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量、和所述目标物理块的物理页数量的乘积;从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码;在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。本发明针对在资料储存型闪存配合资源开销较小的缓冲器时,能够对因数据被破坏而失效的数据进行恢复,并且在进行数据恢复的同时能够保证资料储存型闪存工作的稳定性和安全性不受影响。

基于上述硬件结构,提出本发明资料存储型闪存的数据恢复方法实施例。

参照图2,图2为本发明资料存储型闪存的数据恢复方法第一实施例的流程示意图。

在第一实施例中,所述资料存储型闪存的数据恢复方法包括以下步骤:

s10:将资料储存型闪存中的目标物理块设置为具有n个抽象页的抽象模型,所述n为资料储存型闪存的通道数量、各通道中使能端数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量、和所述目标物理块的物理页数量的乘积;

需要说明的是,本实施例统一以固态硬盘作为固态存储设备为例进行说明,并且。

可理解的是,在资料储存型闪存nandflash中内部存储组织结构是,每一个“芯片”有若干lun(逻辑存储单元)、每个lun包括若干个plane(存储矩阵)、每个plane包括若干block(物理块),每个block包括多个page(物理页),在一个nandflash芯片中,可以封装多个lun,lun是接收和执行flash命令的基本单元,比如一个“芯片”包括lun0和lun1,lun0和lun1可以同时接收和执行不同的命令。但在一个lun当中,一次只能执行一个命令,你不能对其中的某个page写的同时,又对其他page进行读访问。plane则是nandflash能够根据读、写、擦除等命令进行操作的最小单位,一个plane里面以矩阵的形式包含了若干个block,这是nandflash的最小擦除单位,其中包含了若干个page,这是nandflash的最小读写单位。

在本实施例中,假设将nandflash芯片中每个lun中每个plane的每个物理块block的物理页page个数设置为4个page(page0为每个物理块第一个物理页,page2为每个物理块第二个物理页,page3为每个物理块第三个物理页,page4为每个物理块第四个物理页),并以该nandflash芯片具有2个通道以及2个使能端为例子来说明;如图3所示,图3为每个lun中每个plane的目标物理块在固态硬盘控制器(ssdconroller)下的分页模型示意图,图中ch为通道,ch0为第一个通道,ch1为第二个通道;ce为使能端,ce0为各通道的第一个使能端,ce1为各通道的第二个使能端。

为了保证固态硬盘读写的最高性能,本实施例将根据图3所示的每个lun中各个plane的目标物理块的分页模型生成的图4所示的目标物理块的抽象模型,其中图3中不同通道的不同使能端的物理页page在经过绑定之后,形成如图4所示的抽象页(ch0ce0page0为该目标物理块的第一个物理页在第一个通道中第一个使能端的抽象页,ch1ce0page0为所述第一个物理页在第二个通道中第一个使能端的抽象页,ch0ce1page0为所述第一个物理页在第一个通道中第二个使能端的抽象页,ch1ce1page0为所述第一个物理页在第二个通道中第二个使能端的抽象页;ch0ce0page1为该目标物理块的第二个物理页在第一个通道中第一个使能端的抽象页……..依次类推,4个物理页,2个通道,2个使能端一共有16个抽象页);图4中每个lun中各个plane的目标物理块的抽象模型各抽象页页由上到下的顺序即为执行数据写入指令(编程)时,各抽象页被写入数据的顺序。

在具体实现中,当主机host发送数据到设备device时,则按照上述顺序对每个lun中各个plane的目标物理块的各个物理页page进行绑定操作。对于一个block(即目标目标物理块)来说,会将其绑定为具有n个抽象页的抽象模型,

其中,n=通道ch的数量*使能端ce的数量*lun的数量*plane的数量*block中page的数量。需要说明的是,为了方便描述,本实施例以当ch的数量=1,lun的数量=1,ce的数量=1,plane的数量=1时,且每个block具有4个抽象页page时为例进行说明,当然实际中“芯片”会有不同的ch数量、lun数量、ce数量、plane数量及一个block中page数量的组合;

s20:从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码;

s30:在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。

需要说明的是,可以通过两种方式选定校验信息页并设置物理校验码。

第一种方式为:最后一个抽象页为校验信息页,其数据为其余15个抽象页的校验码(可以做简单的异或操作),只要这16个抽象页中(包括校验信息页)有任意一个抽象页出现数据丢失等不可恢复的情况,都可以通过其余15个抽象进行恢复,通过所述第一种方式,牺牲16分之一的容量作为安全数据保护。就目前的固态硬盘所使用的nandflash芯片,一般而言一个物理块默认地至少会有256物理页,相应地,抽象物理块(所述抽象模型)也就默认地至少会有1024个抽象页,按照上述说法,每1024个抽象页中,最后一个抽象页会作为存放校验码的page(即raidpage)。这样固态硬盘会有大概千分之一的容量损失,基本上不会太影响用户的使用及推广。

第二种方式为:当然也可以对每一个抽象页都设置有一个校验信息页,为各校验信息页分别设置物理校验码,各物理校验码表征为各抽象页的备份数据,所述第二种方式即牺牲一半的容量来再进一步提高数据的安全性,其实这就是完全备份数据的情况,这样做虽然会牺牲一般的容量,但是数据保护能力以及恢复能力会更强。

在具体实现中,本实施例以上述第一种方式为例进行说明,从上述抽象模型中的16个抽象页中选取第16个抽象页即最后一个抽象页(对应图5中的ch1ce1page3raidpage)作为所述校验信息页,即参照图5,并为所述校验信息页(ch1ce1page3raidpage)设置物理校验码,所述物理校验码表征为所述抽象模型中各抽象页的有效数据的异或值;其中,所述物理校验码通过以下公式计算获得:

其中,d1表示所述抽象模型中第1个抽象页的有效数据,d2表示所述抽象模型中第2个抽象页的有效数据,d3表示所述抽象模型中第3个抽象页的有效数据,dn表示所述抽象模型中第n个抽象页的有效数据,p表示各抽象页的有效数据进行异或运算后所生成的物理校验码。

需要说明的是,为了方便描述,本实施例以当ch的数量=1,lun的数量=1,ce的数量=1,plane的数量=1时,且每个block具有4个抽象页page时为例进行说明,那么校验信息页为图5中的ch1ce1page3raidpage(即该目标物理块的第三个物理页在第二个通道中第二个使能端的对应的第一个lun的第一个plane的抽象页为校验信息页是校验信息页);

当然,我们也可以假设ch的数量=2,lun的数量=2,ce的数量=1,plane的数量=1时,且每个block具有4个抽象页page时的情况,那么这时校验信息页应该为ch1lun1plane1ce1page3raidpage(即该目标物理块的第三个物理页在第二个通道中第二个使能端的对应的第二个lun的第二个plane的抽象页为校验信息页是校验信息页)。

在主机通过硬盘控制检测到上述公式中d1到dn中有且仅有一个出现有效数据损坏丢失时(即出现待恢复抽象页),主机的处理器会通过固件版本确定该抽象模型中剩余抽象页的正确的有效数据,并根据所述剩余抽象页的有效数据及所述物理校验码p对所述待恢复抽象页进行数据恢复。

本实施例通过将资料储存型闪存中的目标物理块设置为具有n个抽象页的抽象模型,从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码;在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。本发明针对在资料储存型闪存配合资源开销较小的缓冲器时,能够对因数据被破坏而失效的数据进行恢复,并且在进行数据恢复的同时能够保证资料储存型闪存工作的稳定性和安全性不受影响。

参照图7,本发明一种资料储存型闪存的数据恢复方法的第二实施例,基于上述方法的第一实施例,图6以基于图2所示的实施例为例。

本实施例中,在步骤s20之后,所述方法还包括以下步骤:

s301:根据所述抽象模型建立对应的缓存模型,所述缓存模型包括多个缓存页,以及与所述校验信息页对应的缓存校验页,其中,各缓存页根据所述通道数和所述使能端的数量生成,所述缓存校验页设置有与所述物理校验码对应的缓存校验码;

可理解的是,参考图6为根据图5中的抽象模型建立对应的缓存模型,所述缓存模型会在缓冲器buffer中操作运行,所述缓存模型中具有四个缓存页以及一个缓存校验页raidbuff,这个四个缓存页分别为pagebuff0、pagebuff1、pagebuff2和pagebuff3;

其中,各缓存页根据所述通道数和所述使能端的数量生成,且在主机执行数据写入指令时,所述缓存器的缓存模型中的各缓存页和所述抽象模型的各抽象页有对应的数据流向关系:即缓存模型中的各缓存页分别对应不同通道的不同使能端,所述缓存模型中的四个缓存页pagebuff0、pagebuff1、pagebuff2、pagebuff3会依次缓存待写入的目标数据的各部分目标数据,依次按照图将部分目标数据传给对应抽象页所在的各通道的不同使能端:ch0ce0、ch1ce0、ch0ce1、ch1ce1。参考图8中(a)表示将第一批部分目标数据传给page0所在的各通道的不同使能端,(b)表示将第二批部分目标数据传给page1所在的各通道的不同使能端,图9中(c)表示将第三批部分目标数据传给page2所在的各通道的不同使能端,(d)表示将第四批部分目标数据传给page3所在的各通道的不同使能端。

在具体实现中,每个通道是至少要分配一个缓存页(pagebuff),分配给每个通道的缓存页越多则性能越好,但当分配到某个等级的时候,性能就不会再有提升的,这和nandflash具体的运转时间有关系。比如进行数据写入操作时将一个数据写入到物理页page的时间需要200微妙,而传输一个数据到相应物理页page的时间需要40微妙,当一个通道有4个使能端ce时,则为每个通道分配4个缓存页(pagebuff)时性能是最佳,但再分配更多的缓存页(pagebuff)也没有非常性能提升。

s302:接收外部的数据写入指令,将与所述数据写入指令对应的目标数据拆分为多个部分目标数据;

可理解的是,当主机接收到数据写入指令时,会将与所述数据写入指令对应的待写入数据(即目标数据)拆成多份缓存到所述缓存模型的各缓存页(pagebuff)中,然后通过缓冲器将各个部分目标数据依次写入对应的抽象模型中的各抽象页中。

s303:在当前部分目标数据写入与当前缓存页对应的抽象页时,将当前部分目标数据与已写入的部分目标数据进行异或运算,并将运算结果作为所述缓存校验页的缓存校验码;

s304:在所述目标数据全部写入所述抽象模型之前,若所述抽象模型中出现部分目标数据丢失的待恢复抽象页时,则根据所述缓存校验码对所述待恢复抽象页进行数据恢复。

需要说明的是,所述缓存校验码通过以下公式计算获得:

其中,c1表示已写入所述抽象模型中第1个抽象页的部分目标数据,c2表示已写入所述抽象模型中第2个抽象页的部分目标数据,c3表示已写入所述抽象模型中第3个抽象页的部分目标数据,cn已写入表示所述抽象模型中第n个抽象页的部分目标数据,p'表示所缓存校验码;而需要说明的是,在本实施例中,上述公式中n=16;

在具体实现中,例如在将c2写入第二个抽象页时,此前,c1已经写入第一个抽象页了,这时会将缓存校验页raidbuff的缓存校验码设置为然后下一步在将c3写入第三个抽象页时,这时会将缓存校验页raidbuff的缓存校验码设置为并将所述缓存校验页原先的缓存校验码覆盖掉(即对应步骤s303),如果此时c3出现编程错误数据丢失,主机的处理器会通过硬盘控制检测到编程失败时的情况,由于并没有将所述目标数据全部写入所述抽象模型(即没有完成此次编程,没有写满16个抽象页),主机的处理器会通过固件版本根据所述缓存校验码p'和d1、d2对d3进行恢复(即对应步骤s304)。

s304`:在所述目标数据全部写入所述抽象模型之后,根据所述缓存校验码对所述校验信息页的物理校验码进行更新;若所述抽象模型中出现部分目标数据丢失的待恢复抽象页时,则根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。

可理解的是,步骤s304`和步骤s304分别为两种不同的编程出错导致部分目标数据被破坏而失效的情况。

步骤s304`是在所述目标数据全部写入所述抽象模型之后(即写满16个抽象页),将所述抽象模型中校验信息页(ch1ce1page3raidpage)之前的物理校验码p用覆盖掉,此时物理校验码

当上述公式中c1到c16中有且仅有一个出现有效数据损坏丢失时(即待恢复抽象页),主机的处理器会通过固件版本确定该抽象模型中剩余抽象页的正确的有效数据,根据所述剩余抽象页的有效数据及所述物理校验码p对所述待恢复抽象页进行数据恢复。

本实施例通过根据所述抽象模型建立对应的缓存模型,并为所述缓存模型设置缓存校验页,在当前部分目标数据写入与当前缓存页对应的抽象页时,将当前部分目标数据与已写入的部分目标数据进行异或运算,并将运算结果作为所述缓存校验页的缓存校验码,进而能够针对资料储存型闪存中因编程错误而失效的部分目标数据进行恢复,在进行数据恢复的同时又能够保证资料闪存的稳定性和安全性不受影响,即便缓存器的资源开销小,仍能够在写入数据出现错误的情况下对资料储存型闪存中的数据进行恢复。

此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储所述资料储存型闪存的数据恢复程序,所述资料储存型闪存的数据恢复程序被处理器执行时实现如下操作:

将资料储存型闪存中的目标物理块设置为具有n个抽象页的抽象模型,所述n为资料储存型闪存的通道数量、各通道中使能端数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量、和所述目标物理块的物理页数量的乘积;

从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码;

在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。

进一步地,所述存储的资料储存型闪存的数据恢复程序被处理器执行时还实现如下操作:

根据所述抽象模型建立对应的缓存模型,所述缓存模型包括多个缓存页,以及与所述校验信息页对应的缓存校验页,其中,各缓存页根据所述通道数和所述使能端的数量生成,所述缓存校验页设置有与所述物理校验码对应的缓存校验码;

接收外部的数据写入指令,将与所述数据写入指令对应的目标数据拆分为多个部分目标数据;

在当前部分目标数据写入与当前缓存页对应的抽象页时,将当前部分目标数据与已写入的部分目标数据进行异或运算,并将运算结果作为所述缓存校验页的缓存校验码;

在所述目标数据全部写入所述抽象模型之前,若所述抽象模型中出现部分目标数据丢失的待恢复抽象页时,则根据所述缓存校验码对所述待恢复抽象页进行数据恢复。

进一步地,所述存储的资料储存型闪存的数据恢复程序被处理器执行时还实现如下操作:

在所述目标数据全部写入所述抽象模型之后,根据所述缓存校验码对所述校验信息页的物理校验码进行更新;

若所述抽象模型中出现部分目标数据丢失的待恢复抽象页时,则根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。

进一步地,所述存储的资料储存型闪存的数据恢复程序被处理器执行时还实现如下操作:

从所述n个抽象页中选取第n个抽象页作为所述校验信息页,为所述校验信息页设置物理校验码,所述物理校验码表征为所述抽象模型中各抽象页的有效数据的异或值;

在所述抽象模型中出现有效数据丢失的待恢复抽象页时,确定所述抽象模型中剩余抽象页的有效数据,根据所述剩余抽象页的有效数据及所述物理校验码对所述待恢复抽象页进行数据恢复。

进一步地,所述存储的资料储存型闪存的数据恢复程序被处理器执行时还实现如下操作:

对所述n个抽象页分别设置校验信息页,为各校验信息页分别设置物理校验码,各物理校验码表征为各抽象页的备份数据;

在所述抽象模型中出现有效数据丢失的待恢复抽象页时,确定所述待恢复抽象页对应的物理校验码,并根据所述对应的物理校验码对所述待恢复抽象页进行数据恢复。

进一步地,所述存储的资料储存型闪存的数据恢复程序被处理器执行时还实现如下操作:

确定所述资料储存型闪存中的目标物理块中物理页的数量;

获取所述资料储存型闪存的通道的数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量和各通道中能端段的数量;

根据所述物理页的数量、所述通道的数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量和各通道中能端段的数量将所述目标物理块设置为具有n个抽象页的抽象模型。

进一步地,所述存储的资料储存型闪存的数据恢复程序被处理器执行时还实现如下操作:

接收外部输入的分页指令;

根据所述分页指令确定所述资料储存型闪存中所述目标物理块的各物理页的数量。

本实施例将资料储存型闪存中的目标物理块设置为具有n个抽象页的抽象模型,所述n为资料储存型闪存的通道数量、各通道中使能端数量、各通道的逻辑存储单元的数量、各存储单元中存储矩阵的数量、和所述目标物理块的物理页数量的乘积;从所述n个抽象页中选定校验信息页,为所述校验信息页设置物理校验码;在所述抽象模型中出现有效数据丢失的待恢复抽象页时,根据所述校验信息页的物理校验码对所述待恢复抽象页进行数据恢复。本发明针对在资料储存型闪存配合资源开销较小的缓冲器时,能够对因数据被破坏而失效的数据进行恢复,并且在进行数据恢复的同时能够保证资料储存型闪存工作的稳定性和安全性不受影响。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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