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

系统数据保护方法、装置、可读存储介质及电子设备与流程

2022-03-23 04:33:15 来源:中国专利 TAG:


1.本发明涉及存储器领域,特别是涉及一种系统数据保护方法、装置、可读存储介质及电子设备。


背景技术:

2.目前主流的闪存类存储产品,都有专门的物理块(block)用来存放系统数据。这些用于存放系统数据的物理块又被称为系统块,用于存储包括固件代码和系统配置信息等系统数据。在产品工作过程中,会不定时地从系统块中读取固件代码,并将其放置在静态随机存取存储器(static random-access memory,sram)中运行。
3.然而,当闪存储存产品在经过长时间的运行或者高低温后,系统块会存在失效的风险。这时就会导致无法正常从系统块读出系统数据,最终使得闪存存储产品无法正常工作。


技术实现要素:

4.本发明所要解决的技术问题是:提供一种系统数据保护方法、装置、可读存储介质及电子设备,提高系统数据的可靠性。
5.为了解决上述技术问题,本发明采用的技术方案为:一种系统数据保护方法,包括步骤:判断是否接收到扫描指令,若是,则遍历系统内储存有系统数据的所有系统块以及影子块,当遍历到目标系统块或目标影子块时,读取所述目标系统块或目标影子块中的数据,判断读取参数是否在预设范围内,若否,则将所述目标系统块或目标影子块添加至风险数据块集合;判断所述扫描步骤是否完成,若完成,则对所述风险数据块集合执行恢复步骤。
6.为了解决上述技术问题,本发明采用的另一技术方案为:一种系统数据保护装置,包括:第一判断模块,用于判断是否接收到扫描指令,若是,则遍历系统内储存有系统数据的所有系统块以及影子块,当遍历到目标系统块或目标影子块时,读取所述目标系统块或目标影子块中的数据,判断读取参数是否在预设范围内,若否,则将所述目标系统块或目标影子块添加至风险数据块集合;第二判断模块,用于判断所述扫描步骤是否完成,若完成,则对所述风险数据块集合执行恢复步骤。
7.为了解决上述技术问题,本发明采用的另一技术方案为:一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的一种系统数据保护方法中的各个步骤。
8.为了解决上述技术问题,本发明采用的另一技术方案为:一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计
算机程序,所述处理器执行所述计算机程序时实现如上述的一种系统数据保护方法中的各个步骤。
9.本发明的有益效果在于:通过在系统内增设影子块,并将系统数据存储在系统块内以及影子块内,从而实现对系统数据的备份;同时,通过对系统内存储有系统数据的所有系统块和影子块进行扫描,将存在失效风险的系统块以及影子块提前标记并整合至风险数据块集合中,再对失效的系统块和影子块进行恢复,从而不仅能够提前标识并标记系统块的风险,而且能够对风险数据块进行恢复,更有效地保证系统数据的可靠性。
附图说明
10.图1为本发明实施例的一种系统数据保护方法的步骤流程图;图2为本发明实施例的一种系统数据保护方法中扫描机制的步骤流程图;图3为本发明实施例的一种系统数据保护方法中状态机机制的步骤流程图;图4为本发明实施例的一种数据写入装置的结构示意图;图5为本发明实施例的一种电子设备的结构示意图。
具体实施方式
11.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
12.请参照图1,一种系统数据保护方法,包括步骤:判断是否接收到扫描指令,若是,则遍历系统内储存有系统数据的所有系统块以及影子块,当遍历到目标系统块或目标影子块时,读取所述目标系统块或目标影子块中的数据,判断读取参数是否在预设范围内,若否,则将所述目标系统块或目标影子块添加至风险数据块集合;判断所述扫描步骤是否完成,若完成,则对所述风险数据块集合执行恢复步骤。
13.由上述描述可知,本发明的有益效果在于:通过在系统内增设影子块,并将系统数据存储在系统块内以及影子块内,从而实现对系统数据的备份;同时,通过对系统内存储有系统数据的所有系统块和影子块进行扫描,将存在失效风险的系统块以及影子块提前标记并整合至风险数据块集合中,再对失效的系统块和影子块进行恢复,从而不仅能够提前标识并标记系统块的风险,而且能够对风险数据块进行恢复,更有效地保证系统数据的可靠性。
14.进一步地,所述对所述风险数据块集合执行恢复步骤包括:获取:根据所述风险数据块集合获取待恢复的所述风险数据块以及对应的目标数据块;复制:根据所述风险数据块的类型获取与所述风险数据块的类型对应的空系统块或空影子块,并将所述目标数据块内的系统数据复制到对应的所述空系统块或空影子块上;释放:将所述风险数据块释放。
15.由上述描述可知,通过从风险数据块集合中获取待恢复的风险数据块以及对应的目标数据块,根据风险数据块的类型在获取对应的空系统块或空影子块,并通过复制的方
式将目标数据块内的系统数据复制到对应的空系统块或空影子块内,避免通过具有风险的数据块进行修复出现系统数据丢失或损坏的情况,提高系统数据可靠性。
16.进一步地,根据所述风险数据块的类型获取与所述风险数据块的类型对应的空系统块或空影子块包括:从系统块资源池内获取所述空系统块;或从影子块资源池内获取所述空影子块;所述将所述风险数据块释放包括:将所述风险数据块释放至对应的所述系统块资源池或影子块资源池内。
17.由上述描述可知,通过在系统内增设系统块资源池以及影子块资源池,从而当存储有系统数据的系统块或影子块出现隐患时,能够从系统块资源池获取空系统块或从影子块资源池内获取空影子块对存在隐患的风险数据块进行替换,同时将替换后的风险数据块释放至对应的系统块资源池或影子块资源池内,保证系统块资源池或影子块资源池内始终存在一定数量的空系统块或空影子块,避免没有足够数量的空系统块或影子块用于替换风险数据块,从而提高系统的稳定性。
18.进一步地,所述对所述风险数据块集合执行恢复步骤还包括:设置状态机,所述状态机包括空闲状态、初始化状态、复制状态和释放状态;执行所述获取步骤时,将所述状态机的状态由所述空闲状态设置为所述初始化状态;执行所述复制步骤时,将所述状态机的状态由所述初始化状态设置为所述复制状态;执行所述释放步骤时,将所述状态机的状态由所述复制状态设置为所述释放状态。
19.由上述描述可知,通过增设状态机并将状态机的状态与恢复步骤中的获取步骤、复制步骤以及释放步骤进行对应,从而当风险数据块在恢复过程中出现掉电退出等情况时,能够根据状态机标记的状态对恢复过程进行重启并继续执行对应的步骤,提高了系统的稳定性。
20.进一步地,所述状态机还包括异常状态;所述复制步骤中还包括:判断是否复制成功,若成功,则执行所述释放步骤并将所述状态机设置为所述释放状态;若失败,则判断是否异常退出,若是,则将所述状态机设置为所述异常状态并报错;若否,则进行异常判断。
21.由上述描述可知,当判断复制过程异常退出时将对应的状态机状态设置为异常状态,从而保证了只有当风险数据块被空系统块或空影子块替换成功后才执行释放步骤,提高系统稳定性;并且,当复制失败但为异常退出时,则对异常进行分析,提高对异常的处理能力。
22.进一步地,所述若否,则进行异常判断包括:判断所述空系统块或空影子块是否异常,若异常,则重新执行所述复制步骤;若正常,则判断所述目标数据块是否异常,若是,则重新执行所述获取步骤;判断是否异常退出包括:
若所有所述目标数据块都存在异常,则执行异常退出。
23.由上述描述可知,通过复制过程失败后对复制失败的原因进行判断,并根据不同的失败原因对应不同的执行步骤,如失败原因为空系统块或空影子块存在异常,则重新获取空系统块或空影子块后继续执行复制过程,又如当前目标数据块存在异常,则重新从风险数据块集合获取另一目标数据块进行复制操作,从而提高了恢复过程的适应性,能够在不同的异常情况下继续执行复制步骤。
24.进一步地,所述状态机还包括校验状态;所述若成功,则执行所述释放步骤并将所述状态机设置为所述释放状态之前包括:将所述目标数据块以及复制后的所述空系统块和空影子块进行比对校验,并将所述状态机设置为所述校验状态;对完成所述校验的所述风险数据块执行所述释放步骤。
25.由上述描述可知,通过对完成复制的目标数据块以及复制后的所述空系统块和空影子块进行校验,保证经过复制后的系统块和影子块内的数据为正常的系统数据且一致,即成功完成风险数据块的替换,从而进一步保证了系统的稳定性。
26.请参照图3,本发明另一实施例提供了一种系统数据保护装置,包括:第一判断模块,用于判断是否接收到扫描指令,若是,则遍历系统内储存有系统数据的所有系统块以及影子块,当遍历到目标系统块或目标影子块时,读取所述目标系统块或目标影子块中的数据,判断读取参数是否在预设范围内,若否,则将所述目标系统块或目标影子块添加至风险数据块集合;第二判断模块,用于判断所述扫描步骤是否完成,若完成,则对所述风险数据块集合执行恢复步骤。
27.本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的一种系统数据保护方法中的各个步骤。
28.请参照图4,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的一种系统数据保护方法中的各个步骤。
29.本发明上述一种系统数据保护方法、装置、计算机可读存储介质及电子设备能够适用于各种类型的闪存类存储产品,如emmc、ufs、ssd等,以下通过具体实施方式进行说明:请参照图1,一种系统数据保护方法,包括步骤:请参照表1,s0、预先在系统内增设一个系统块资源池、一个影子块资源池、影子块、扫描机制和恢复机制,完成设置后执行以下步骤:s1、判断是否接收到扫描指令,若是,则遍历系统内储存有系统数据的所有系统块以及影子块,当遍历到目标系统块或目标影子块时,读取所述目标系统块或目标影子块中的数据,判断读取参数是否在预设范围内,若否,则将所述目标系统块或目标影子块添加至风险数据块集合;s2、判断所述扫描步骤是否完成,若完成,则对所述风险数据块集合执行恢复步骤;请参照图2,具体的:系统定时发出扫描指令,当接收到扫描指令后进行扫描,定时
去读取系统内储存有系统数据的所有所述系统块或影子块的某一个page(页);如当前读取所有所述系统块或影子块的page100;若当前在读取某一所述系统块或影子块的page100时出现了读失败或者hecc/unc(校验错误)的情况,则将当前所述系统块或影子块标记为风险数据块;若所有所述系统块或影子块的page100全部读取成功,则正常退出扫描;整个扫描过程一直持续产品的生命周期,并且扫描的page号是递增的,比如当前次扫描page100,则下一次扫描page101;步骤s2中,所述风险数据块集合执行恢复步骤包括:获取:根据所述风险数据块集合获待恢复的所述风险数据块以及对应的目标数据块;所述目标数据块为与所述风险数据块具有相同系统数据的系统块或影子块,即源数据块;一份系统数据由两个系统块和一个影子块储存;复制:根据所述风险数据块的类型获取与所述风险数据块的类型对应的空系统块或空影子块,若所述风险数据块的类型为所述系统块,则从所述系统块资源池内获取所述空系统块,若所述风险数据块的类型为所述影子块,则从所述影子块资源池内获取所述空影子块;并将所述目标数据块内的系统数据复制到对应的所述空系统块或空影子块上;释放:将所述风险数据块释放至对应的所述系统块资源池或影子块资源池内。
30.表1实施例二本实施例与实施例一的不同在于,将上述恢复步骤与状态机的状态进行对应;请参照表2和图3,设置状态机,所述状态机包括空闲状态、初始化状态、复制状态、释放状态、校验状态和异常状态等不同的状态标识;不同状态之间的转化如图2所示,以下对具体的转化步骤进行说明:在执行所述获取步骤时,将所述状态机的状态由所述空闲状态设置为所述初始化状态;在执行所述复制步骤时,将所述状态机的状态由所述初始化状态设置为所述复制状态;在执行所述释放步骤时,将所述状态机的状态由所述复制状态设置为所述释放状态;同时,在所述复制步骤中还包括:判断是否复制成功,若成功,则s21、执行所述释放步骤并将所述状态机设置为所述释放状态;若失败,则s22、判断是否若所有所述目标数据块都存在异常,若是,则s221、将所述状态机设置为所述异常状态并报错;若否,则s222进行异常判断:判断所述空系统块或空影子块是否异常,若异常,则重新执行所述复制步骤;若正常,则判断所述目标数据块是否异常,若是,则重新执行所述获取步骤;其中,执行步骤s21之前还包括:步骤s02、将所述目标数据块以及复制后的所述空
系统块和空影子块进行比对校验,并将所述状态机设置为所述校验状态;若校验成功,则执行步骤s21;若校验失败,则执行步骤s221;实施例三将上述的系统数据保护方法应用在实际场景中;请参照表3,根据不同恢复步骤流程以及目标数据块的类型创建不同的结构成员;启动恢复流程后,判断当前标识sispreclaimentry.u16damageispblk是否为有效,同时标识sispreclaimentry.u08reclaimstate的状态不为reclaim_state_done,若均二者均满足则表示上次的恢复流程未结束,并根据当前状态机的状态继续从上次中断的流程执行对应的恢复步骤;若当前标识sispreclaimentry.u16damageispblk为无效,同时sispreclaimentry.u08reclaimstate的状态为reclaim_state_idle,表示当前恢复流程并不是由上次未完成的恢复流程中途退出,则从头开始进行恢复流程;从头开始进行恢复流程时:获取步骤:遍历ga32damageispblk[n],并取出第一个待恢复的风险数据块(影子块或系统块)并取出与所述风险数据块对应的第一个有效的所述目标数据块,给标识sispreclaimentry.u32crrntdamgeispblk赋值,判断并标记当前风险数据块(damageblk)的类型,同时更新状态机为reclaim_state_start;复制步骤:根据当前damage blk的类型申请一个新数据块(new blk)作为替换块,同时把状态机设置为reclaim_state_copy;当damage blk是系统块时,则从系统块资源池获取一个空系统块作为替换块;当damage blk是影子块时,则从影子块资源池中申请一个空影子块作为替换块;并将damage blk内page0-pagelast的数据复制到所述空系统块或空影子块上;判断复制是否成功,若失败,则执行步骤s22、判断是否所有的源数据块的对应page都出现unc,若是则执行步骤s221、异常退出,标记状态机为reclaim_state_err;若否,则执行步骤s222、进行异常判断:其中,包括异常1:在进行复制之前,如出现擦除替换块报错,则异常退出,并标记状态机为reclaim_state_copy,即重新申请一个新数据块作为替换块;异常2:在复制过程中,用于拷贝数据的源数据块也报unc,则重新在ga32goodispblk[n]内查找下一个有效的源数据块进行数据拷贝,如果所有的源数据块的对应page都出现unc,则表示无法读取正确数据,将状态机标记为reclaim_state_err;异常3:若复制过程中,出现替换块报programmer,则异常退出,并标记状态机为reclaim_state_copy,即重新申请一个新数据块作为替换块;若复制成功,则执行步骤s02、比较源数据块和new blk的整个数据块的crc校验,并更新状态机为reclaim_state_copy_done;若步骤s02执行成功,则执行步骤s21、擦除并释放damage blk,同时并更新状态机为reclaim_state_chk_done;成功完成擦除和释放步骤后更新状态机为reclaim_state_free_done;最后更新完成复制步骤的有效的系统块或影子块,标记状态机为reclaim_state_done;若校验失败,则执行步骤s21、更新状态机为reclaim_state_err;
同时,在整个复制过程的读取和写入流程中,都需要加入vdt和超时异常处理;上述恢复过程中可以采用对所述风险数据块集合内的所有风险数据块完成复制过程后再统一执行释放步骤;或每一风险数据块完成复制过程后就进行释放。
[0031]
表2表3:新增结构成员
实施例四请参照图4,一种系统数据保护装置,包括:第一判断模块,用于判断是否接收到扫描指令,若是,则遍历系统内储存有系统数据的所有系统块以及影子块,当遍历到目标系统块或目标影子块时,读取所述目标系统块或目标影子块中的数据,判断读取参数是否在预设范围内,若否,则将所述目标系统块或目标影子块添加至风险数据块集合;
第二判断模块,用于判断所述扫描步骤是否完成,若完成,则对所述风险数据块集合执行恢复步骤。
[0032]
实施例五一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的一种系统数据保护方法中的各个步骤。
[0033]
实施例六请参照图5,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的一种系统数据保护方法中的各个步骤。
[0034]
综上所述,本发明提供的一种系统数据保护方法、装置、可读储存介质及电子设备,通过在系统内增设系统块资源池、影子块资源池、影子块、扫描机制以及恢复机制,将系统数据存储在系统块内以及影子块内,从而实现对系统数据的备份;同时,扫描机制通过对系统内存储有系统数据的所有系统块和影子块进行扫描,将存在失效风险的系统块以及影子块提前标记并整合至风险数据块集合中后,再通过恢复机制对失效的系统块和影子块进行恢复,同时将状态机的状态与恢复步骤中的各个步骤结合,从而不仅能够提前标识并标记系统块的风险,对风险数据块进行恢复,更有效地保证系统数据的可靠性,而且当风险数据块在恢复过程中出现掉电退出等情况时,能够根据状态机标记的状态对恢复过程进行重启并继续执行对应的步骤,提高了系统的稳定性。
[0035]
在本技术所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0036]
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
[0037]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0038]
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0039]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
[0040]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0041]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

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

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

相关文献