本发明实施例涉及信息技术领域,尤其涉及一种数据保护方法、装置及存储介质。
背景技术:
在某些特殊领域,有些数据及文件非常重要,如果数据丢失或者出错往往会造成重大损失,但由于电子产品的特点决定了,不可能有完全可靠的存储设备,并且也没有一种方法能够确保所有数据都不会丢失或者出错。
传统的对存储设备中存储单元的数据读写,存储单元根据主设备(host)的写命令将来自host的数据存储起来,以及根据host的读命令向host返回相应的存储数据。但是,在实际中,由于这种存储并非完全可靠,存储单元中存储的数据可能会丢失或出错。常规的存储设备保护,需要专门的驱动及应用软件的支持,系统运行效率不高。
技术实现要素:
有鉴于此,本发明实施例的目的是提供一种数据保护方法、装置及存储介质,以实现高效的存储设备数据保护。
为解决上述技术问题,本发明实施例提供方案如下:
本发明实施例提供一种数据保护方法,所述方法包括:
在接收到主设备发送的携带地址和待存储数据的写命令时,将所述待存储数据写入存储单元中与所述地址对应的第一存储空间,将与所述待存储数据对应的保护数据写入保护单元中与所述地址对应的第二存储空间;
在接收到主设备发送的携带所述地址的读命令时,根据所述第一存储空间中的存储数据和所述第二存储空间中的存储数据,确定所述待存储数据的复原数据;
将所述复原数据作为所述读命令的响应数据。
进一步的,所述第二存储空间包括至少两个存储子空间;
所述将与所述待存储数据对应的保护数据写入保护单元中与所述地址对应的第二存储空间包括:将所述保护数据分别写入所述至少两个存储子空间;
所述根据所述第一存储空间中的存储数据和所述第二存储空间中的存储数据,确定所述待存储数据的复原数据包括:根据所述第一存储空间中的存储数据和所述第二存储空间中的每个存储子空间中的存储数据,确定所述复原数据。
进一步的,所述方法还包括:按照一数据转换模式,对所述待存储数据进行转换处理,得到所述保护数据;
所述根据所述第一存储空间中的存储数据和所述第二存储空间中的每个存储子空间中的存储数据,确定所述复原数据包括:
按照所述数据转换模式,对所述第二存储空间中的第一存储子空间中的存储数据进行针对所述转换处理的反转换处理,得到第一反转换处理后数据;
判断所述第一存储空间中的存储数据与所述第一存储子空间对应的反转换处理后数据是否一致,获取一第一判断结果;
当所述第一判断结果为是时,将所述第一存储空间中的存储数据确定为所述复原数据;
当所述第一判断结果为否时,对所述第二存储空间中的第二存储子空间中的存储数据进行针对所述转换处理的反转换处理,得到第二反转换处理后数据,并根据所述第一存储空间中的存储数据、所述第一反转换处理后数据和所述第二反转换处理后数据,确定所述复原数据。
进一步的,所述根据所述第一存储空间中的存储数据、所述第一反转换处理后数据和所述第二反转换处理后数据,确定所述复原数据包括:
判断所述第一反转换处理后数据与所述第二反转换处理后数据是否一致,获取一第二判断结果;
当所述第二判断结果为是时,将所述第一反转换处理后数据和所述第二反转换处理后数据中的任一个确定为所述复原数据;
当所述第二判断结果为否时,将所述第一存储空间中的存储数据确定为所述复原数据。
进一步的,所述保护数据为针对所述待存储数据的纠检错数据;
所述根据所述第一存储空间中的存储数据和所述第二存储空间中的存储数据,确定所述待存储数据的复原数据包括:
根据所述纠检错数据对所述第一存储空间中的存储数据进行检错运算,获取一检错结果;
当检错结果为未出错时,将所述第一存储空间中的存储数据确定为所述复原数据;
当检错结果为出错时,根据纠检错数据对所述第一存储空间中的存储数据进行纠错处理,得到纠错处理后数据,将所述纠错处理后数据确定为所述复原数据。
进一步的,所述保护数据为所述待存储数据的两个以上副本数据;
所述根据所述第一存储空间中的存储数据和所述第二存储空间中的存储数据,确定所述待存储数据的复原数据包括:
判断所述第一存储空间中的存储数据与所述第二存储空间中任一副本数据对应的存储数据是否一致;
在判断结果为一致的情况下,将所述第一存储空间中的存储数据确定为所述复原数据;
在判断结果为不一致的情况下,判断所述第二存储空间中所述两个以上副本数据对应的存储数据是否一致;
在判断结果为是的情况下,将副本数据对应的存储数据确定为所述复原数据;在判断结果为否的情况下,将所述第一存储空间中的存储数据确定为所述复原数据。
进一步的,所述数据转换模式由所述主设备配置得到。
本发明实施例还提供了一种数据保护装置,所述装置包括:
写入模块,用于在接收到主设备发送的携带地址和待存储数据的写命令时,将所述待存储数据写入存储单元中与所述地址对应的第一存储空间,并且,
将与所述待存储数据对应的保护数据写入保护单元中与所述地址对应的第二存储空间;
确定模块,用于在接收到主设备发送的携带所述地址的读命令时,根据所述第一存储空间中的存储数据和所述第二存储空间中的存储数据,确定所述待存储数据的复原数据;
响应模块,用于将所述复原数据作为所述读命令的响应数据。
本发明实施例还提供了一种数据保护装置,包括存储器和处理器,所述存储器中存储有数据保护指令,所述处理器通过执行所述数据保护指令以实现上述任一项方法。
本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被设置为执行上述任一项方法。
本发明实施例还提供了一种存储设备,包括主设备、接口控制单元、存储单元和保护单元,所述接口控制单元与主设备、存储单元和保护单元分别连接,所述接口控制单元包括以上所述的数据保护装置。
从以上所述可以看出,本发明实施例至少具有如下有益效果:
通过将与待存储数据对应的保护数据写入保护单元,在接收到相应的读命令时,根据保护单元和存储单元中的存储数据确定待存储数据的复原数据,将之作为读命令的响应数据,从而实现了高效的存储设备数据保护。
附图说明
图1为本发明实施例提供的一种数据保护方法的步骤流程图;
图2为常规存储设备设计结构示意图;
图3a为带实时保护功能的存储设备设计结构示意图;
图3b为图3a中接口控制单元的实现示意图;
图4为带实时保护的存储设备数据写入流程示意图;
图5为带实时保护的存储设备数据读取流程示意图;
图6为数据自动修复流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明实施例进行详细描述。
图1为本发明实施例提供的一种数据保护方法的步骤流程图,参照图1,本发明实施例提供一种数据保护方法,该方法包括如下步骤:
步骤101,在接收到主设备发送的携带地址和待存储数据的写命令时,将该待存储数据写入存储单元中与该地址对应的第一存储空间,并且,
将与该待存储数据对应的保护数据写入保护单元中与该地址对应的第二存储空间;
步骤102,在接收到主设备发送的携带该地址的读命令时,根据该第一存储空间中的存储数据和该第二存储空间中的存储数据,确定该待存储数据的复原数据;
步骤103,将该复原数据作为该读命令的响应数据。
可见,通过将与待存储数据对应的保护数据写入保护单元,在接收到相应的读命令时,根据保护单元和存储单元中的存储数据确定待存储数据的复原数据,将之作为读命令的响应数据,从而实现了高效的存储设备数据保护。
其中,主设备可以由cpu、pcimaster等可以主动发起数据操作的设备组成。
存储单元和保护单元可以由各种存储设备组成,存储设备的各类例如:sdram、flash、eeprom存储芯片或闪存卡等外部存储设备。
该保护数据可以包括该待存储数据的纠检错数据,则该根据该第一存储空间中的存储数据和该第二存储空间中的存储数据,确定该待存储数据的复原数据具体可以包括:
根据该第二存储空间中的纠检错数据对该第一存储空间中的存储数据进行检错运算,获取一检错结果;
当检错结果为未出错时,将该第一存储空间中的存储数据确定为该复原数据;
当检错结果为出错时,根据纠检错数据对该第一存储空间中的存储数据进行纠错处理,得到纠错处理后数据,并将该纠错处理后数据确定为该复原数据。
或者,该保护数据也可以包括该待存储数据的两个以上副本数据,则该根据该第一存储空间中的存储数据和该第二存储空间中的存储数据,确定该待存储数据的复原数据具体可以包括:
判断该第一存储空间中的存储数据与该第二存储空间中任一副本数据对应的存储数据是否一致,如果一致,则将该第一存储空间中的存储数据确定为该复原数据;否则,判断该第二存储空间中该两个以上副本数据对应的存储数据是否一致,如果是,则将副本数据对应的存储数据确定为该复原数据,否则将该第一存储空间中的存储数据确定为该复原数据。
在本发明实施例中,该保护单元可以包括至少两个保护子单元,该第二存储空间可以包括至少两个保护子单元各自与该地址对应的存储子空间;
该将与该待存储数据对应的保护数据写入保护单元中与该地址对应的第二存储空间具体可以包括:
将该保护数据分别写入该至少两个存储子空间;
该根据该第一存储空间中的存储数据和该第二存储空间中的存储数据,确定该待存储数据的复原数据具体包括:
根据该第一存储空间中的存储数据和该第二存储空间中的每个存储子空间中的存储数据,确定该复原数据。
进一步地,该方法还可以包括:
按照一数据转换模式,对该待存储数据进行转换处理,得到该保护数据;
该根据该第一存储空间中的存储数据和该第二存储空间中的每个存储子空间中的存储数据,确定该复原数据具体可以包括:
按照该数据转换模式,对该第二存储空间中的第一存储子空间中存储的数据进行针对该转换处理的反转换处理,得到第一反转换处理后数据;
判断该第一存储空间中的存储数据与该第一存储子空间对应的反转换处理后数据是否一致,获取一第一判断结果;
当该第一判断结果为是时,将该第一存储空间中的存储数据确定为该复原数据;
当该第一判断结果为否时,对该第二存储空间中的第二存储子空间中的存储数据进行针对该转换处理的反转换处理,得到第二反转换处理后数据,并根据该第一存储空间中的存储数据、该第一反转换处理后数据和该第二反转换处理后数据,确定该复原数据。
其中,数据转换模式例如:对数据进行翻转,或者通过某些纠错算法进行处理等等。
该根据该第一存储空间中的存储数据、该第一反转换处理后数据和该第二反转换处理后数据,确定该复原数据具体可以包括:
判断该第一反转换处理后数据与该第二反转换处理后数据是否一致,获取一第二判断结果;
当该第二判断结果为是时,将该第一反转换处理后数据和该第二反转换处理后数据中的任一个确定为该复原数据;
当该第二判断结果为否时,将该第一存储空间中的存储数据确定为该复原数据。
这里,该至少两个保护子单元例如:至少两个存储读写模块。由于至少两个存储读写模块数据同时出错的可能性非常小,因此就实现了可靠的数据存储保护。
此外,该数据转换模式可以为预设的默认模式,或者,也可以由主设备配置得到,例如,由主设备通过该写命令中携带的模式指示信息配置得到。
为将本发明实施例进一步阐述明白,下面给出本发明实施例的优选实施方式。
图2为常规存储设备设计结构示意图,参照图2,主设备(host)直接将数据写入存储单元中某地址对应的存储空间,并从该存储空间读取数据。
图3a为本优选实施方式的带实时保护功能的存储设备设计结构示意图,图3b为图3a中接口控制单元的实现示意图,参照图3a和图3b,接口控制单元分别与主设备、存储单元和保护单元连接,接口控制单元将数据直接下发给存储单元,并将数据通过转换单元进行转换后,将转换后的数据写入保护单元。
与图3a和图3b相应,本优选实施方式的带实时保护的存储设备数据写入流程如图4所示,具体步骤如下:
步骤401,本次处理流程开始;
步骤402,host下发写命令到接口转换单元;
步骤403,接口转换单元将接收到的地址直接送到下面的存储设备;
步骤404,接口转换单元将接收到数据直接送到下面的存储设备;
步骤405,接口转换单元按照自身默认配置的数据转换模式或者host通过写命令为其配置的数据转换模式,将接收到的数据进行转换后送到保护单元;
步骤406,本次流程结束。
图5为本优选实施方式的带实时保护的存储设备数据读取流程示意图,参照图5,带实时保护的存储设备数据读取流程的具体步骤如下:
步骤501,本次处理流程开始;
步骤502,host下发数据读取命令到接口转换单元;
步骤503,接口转换单元将地址直接下发到存储单元及保护单元;
步骤504,接口转换单元按照写入流程中采用的转换模式,将由保护单元读取回的数据进行反转换后,得到转换后的数据,并将转换后的数据与从存储单元读取回的数据进行比较,如果一致则直接返回从存储单元读取回的数据给host,流程结束;如果不一致,则检测到错误发生,进入如图6所示的数据自动修复流程。
图6为本优选实施方式的数据自动修复流程示意图,参照图6,数据自动修复流程的具体步骤如下:
步骤601,本次处理流程开始;
步骤602,接口转换单元同时将两个转换单元(设为转换单元1和转换单元2)中的数据进行还原,形成还原数据1和还原数据2;
步骤603,比较还原数据1和还原数据2,如果不一致,则说明还原数据错误,直接返回从存储单元读取回的数据给host;
步骤604,比较还原数据1和还原数据2,如果一致,则确认还原数据正确;根据还原数据对存储单元数据进行修复,并返回还原数据1或还原数据2(即图中的“准确数据”)给host;
步骤605,该流程结束。
本发明实施例还提供一种数据保护装置,该装置包括:
写入模块,用于在接收到主设备发送的携带地址和待存储数据的写命令时,将该待存储数据写入存储单元中与该地址对应的第一存储空间,并且,
将与该待存储数据对应的保护数据写入保护单元中与该地址对应的第二存储空间;
确定模块,用于在接收到主设备发送的携带该地址的读命令时,根据该第一存储空间中的存储数据和该第二存储空间中的存储数据,确定该待存储数据的复原数据;
响应模块,用于将该复原数据作为该读命令的响应数据。
可见,通过将与待存储数据对应的保护数据写入保护单元,在接收到相应的读命令时,根据保护单元和存储单元中的存储数据确定待存储数据的复原数据,将之作为读命令的响应数据,从而实现了高效的存储设备数据保护。
其中,该保护单元可以包括至少两个保护子单元,该第二存储空间可以包括该至少两个保护子单元各自与该地址对应的存储子空间;
该写入模块具体可以包括:
写入单元,用于在接收到主设备发送的携带地址和待存储数据的写命令时,将该待存储数据写入存储单元中与该地址对应的第一存储空间,并且,
将该保护数据分别写入该至少两个保护子单元各自与该地址对应的存储子空间;
该确定模块具体可以包括:
确定单元,用于在接收到主设备发送的携带该地址的读命令时,根据该第一存储空间中的存储数据和该第二存储空间中的每个存储子空间中的存储数据,确定该复原数据。
进一步地,该装置还可以包括:
转换模块,用于按照一数据转换模式,对该待存储数据进行转换处理,得到该保护数据;
该确定单元具体可以包括:
转换子单元,用于按照该数据转换模式,对该第二存储空间中的第一存储子空间中存储的数据进行针对该转换处理的反转换处理,得到第一反转换处理后数据;
第一判断子单元,用于判断该第一存储空间中的存储数据与该第一存储子空间对应的反转换处理后数据是否一致,获取一第一判断结果;
第一确定子单元,用于当该第一判断结果为是时,将该第一存储空间中的存储数据确定为该复原数据;
第二确定子单元,用于当该第一判断结果为否时,对该第二存储空间中的第二存储子空间中的存储数据进行针对该转换处理的反转换处理,得到第二反转换处理后数据,并根据该第一存储空间中的存储数据、该第一反转换处理后数据和该第二反转换处理后数据,确定该复原数据。
其中,该第二确定子单元具体可以包括:
第二判断子单元,用于判断该第一反转换处理后数据与该第二反转换处理后数据是否一致,获取一第二判断结果;
第三确定子单元,用于当该第二判断结果为是时,将该第一反转换处理后数据和该第二反转换处理后数据中的任一个确定为该复原数据;
第四确定子单元,用于当该第二判断结果为否时,将该第一存储空间中的存储数据确定为该复原数据。
本发明实施例还提供一种数据保护装置,包括存储器和处理器,该存储器中存储有数据保护指令,该处理器通过执行该数据保护指令以实现如下步骤:
在接收到主设备发送的携带地址和待存储数据的写命令时,将该待存储数据写入存储单元中与该地址对应的第一存储空间,将与该待存储数据对应的保护数据写入保护单元中与该地址对应的第二存储空间;
在接收到主设备发送的携带该地址的读命令时,根据该第一存储空间中的存储数据和该第二存储空间中的存储数据,确定该待存储数据的复原数据;
将该复原数据作为该读命令的响应数据。
本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,该计算机可执行指令被设置为执行如下步骤:
s1:在接收到主设备发送的携带地址和待存储数据的写命令时,将该待存储数据写入存储单元中与该地址对应的第一存储空间,将与该待存储数据对应的保护数据写入保护单元中与该地址对应的第二存储空间;
s2:在接收到主设备发送的携带该地址的读命令时,根据该第一存储空间中的存储数据和该第二存储空间中的存储数据,确定该待存储数据的复原数据;
s3:将该复原数据作为该读命令的响应数据。
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述步骤s1、s2以及s3。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
本发明实施例还提供一种存储设备。该存储设备包括主设备、接口控制单元、存储单元和保护单元,该接口控制单元与主设备、存储单元和保护单元分别连接,该接口控制单元包括以上该的数据保护装置。
其中,接口控制单元可以由可编程逻辑(pld)或asic芯片组成。
常规存储设备保护,一般通过软件加硬件的方案来实现,一方面成本比较高,最关键的是需要专门的软件进行支持,对于常规产品开发提出了特别的要求;本发明实施例提供的上述存储设备,适用于嵌入式系统或者其他中小型设备中,实现简单,对驱动及应用软件无任何特别的要求,完全由硬件实现,系统运行效率非常高。
以上该仅是本发明实施例的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明实施例原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明实施例的保护范围。