非易失性存储介质的数据更新方法、装置及存储介质与流程

文档序号:18163830发布日期:2019-07-13 09:28阅读:271来源:国知局
非易失性存储介质的数据更新方法、装置及存储介质与流程

本发明涉及存储介质技术领域,尤其涉及一种非易失性存储介质的数据更新方法、装置及存储介质。



背景技术:

目前,微控制单元(microcontrollerunit,mcu)在电子测量和控制领域得到了广泛的应用,而在嵌入式测量和控制系统中,通常有一些系统状态数据、运行参数或测量数据需要保存在非易失性存储器中。非易失性存储介质目前已被广泛应用于集成电路(integratedcircuit,ic)卡,手机、电脑、平板、游戏机、医疗设备、通信设备等等终端设备中。终端设备在实际应用中不可避免的会出现数据的修改,然后存储到非易失性存储介质中,由于非易失性存储介质需要先擦除,再写入。若终端设备不做任何防护的话,如果在写入的过程中发生了掉电,那么重新上电后,会出现数据丢失,进而影响终端设备的可靠运行。

现有技术中,为了防止在写入过程中发生掉电进而使数据丢失,通常通过检测系统供电电源,在供电电源发生掉电时,利用储能单元向非易失性存储介质提供电源,进而来保证写入数据的完整性,重新上电后,有效避免了数据丢失。

然而,现有技术中,通过在供电电源发生掉电时,利用储能单元向非易失性存储介质提供电源,需要增加新的硬件设施,成本较高。



技术实现要素:

本发明提供一种非易失性存储介质的数据更新方法、装置及存储介质,不仅实现了非易失性存储介质的数据更新,而且实现了非易失性存储介质的掉电保护,且有效降低了成本。

第一方面,本申请提供一种非易失性存储介质的数据更新方法,包括:

s1、获取非易失性存储介质上的第一管理块,第一管理块包括:多个数据块的最新特征信息,多个数据块包括第一数据块和第二数据块,第一数据块为待更新数据块,第二数据块为可更新数据块,可更新数据块为空白数据块或无效数据块。s2、根据第一管理块获取第一数据块;s3、根据第一管理块确定第二数据块;s4、根据第一数据块,更新非易失性存储介质上的第二数据块;s5、生成第二管理块信息,第二管理块信息包括多个数据块的更新特征信息;s6、根据第二管理块信息,更新非易失性存储介质上的第二管理块。

本方案中,一方面,根据第一管理块确定第二数据块,并根据第一数据块更新第二数据块,实现了数据块的更新,且若在更新第二数据块的过程中发生掉电,由于第二管理块内容未更新,则在上电后可以重新根据第一管理块获取第一数据块;另一方面,通过生成第二管理块信息,并更新第二管理块,实现了对多个数据块的管理,且若在更新第二管理块的过程中发生掉电,则由于未更新第二管理块,因此在上电后可以重新根据第一管理块获取第一数据块,不仅实现了非易失性存储介质的数据更新,而且实现了非易失性存储介质的掉电保护,而且由于未增加任何硬件设施,降低了成本。

可选的,非易失性存储介质包括数据区和管理区,数据区包括至少两个数据块,管理区包括至少两个管理块。

可选的,多个数据块的最新特征信息包括:

多个数据块中每个数据块的地址、标识和状态;其中,数据块的地址用于查询数据块,数据块的标识用于标识数据块是否为损坏块,数据块的状态包括已使用状态或未使用状态。

可选的,在获取非易失性存储介质上的第一管理块之前,还包括:

获取非易失性存储介质上的所有管理块对应的计数器原码和计数器反码,其中,每个管理块对应一个计数器原码和一个计数器反码,计数器原码用于记录管理块的使用次数,每个计数器反码用于校验该管理块对应的计数器原码的准确性;针对每个计数器原码,根据其对应的计数器反码校验该计数器原码;确定所有被校验成功的计数器原码,并将所有被校验成功的计数器原码中最大的计数器原码对应的管理块确定为第一管理块。

本方案中,通过所有管理块对应的计数器原码和计数器反码获取第一管理块,可以有效避免读取所有管理块,进而快速获取第一管理块。

可选的,在获取非易失性存储介质上的第一管理块之后,还包括:

对第一管理块进行校验;若校验失败,则对非易失性储存介质初始化。

本方案中,通过对第一管理块进行校验,保证了获取第一数据块的可靠性。

可选的,根据第一数据块,更新非易失性存储介质上的第二数据块之后,还包括:

s7、读取第二数据块;s8、校验第二数据块;s9、若对第二数据块校验失败,则将第二数据块的标识更新为第一标识,第一标识用于标识第二数据块为损坏块,并重复步骤s3、s4、s7、s8、s9,直至对第二数据块校验成功为止。

本方案中,通过对第二数据块进行校验,可以有效保证第二数据块的完整性,并通过若对第二数据块校验失败,则将第二数据块的标识更新为第一标识,第一标识用于标识第二数据块为损坏块,保证了在非易失性存储介质中某个数据块出现损坏时,不影响非易失性存储介质的正常使用,增加了非易失性存储介质的可靠性和使用寿命。

可选的,在根据第二管理块信息,更新非易失性存储介质上的第二管理块之前,还包括:

根据第一管理块的索引,查找第一管理块的下一个管理块;确定下一个管理块为第二管理块。

本方案中,通过根据第一管理块的索引确定下一个管理块为第二管理块,实现了非易失性存储介质中多个管理块的均衡擦写,进而可以有效延长非易失性存储介质的使用寿命。

可选的,在根据第二管理块信息,更新非易失性存储介质上的第二管理块之前,还包括:

根据第一管理块的索引随机选取除第一管理块以外的管理块;确定随机选取除第一管理块以外的管理块为第二管理块。

本方案中,通过确定随机选取除第一管理块以外的管理块为第二管理块,实现了非易失性存储介质中多个管理块的均衡擦写,进而可以有效延长非易失性存储介质的使用寿命。

可选的,根据第一管理块确定第二数据块,包括:

根据第一数据块的地址,查找第一数据块的下一个数据块;判断下一个数据块的状态是否为未使用状态;若下一个数据块的状态是未使用状态,则判断下一个数据块是否存在第二标识,第二标识用于标识下一个数据块为损坏块;若下一个数据块不存在第二标志,则确定下一数据块为第二数据块。

本方案中,通过根据第一数据块的地址,查找第一数据块的下一个数据块,并对下一个数据块的状态和标识进行判断,最终确定第二数据块,不仅保证了第二数据块为未使用状态且不是损坏块,而且实现了非易失性存储介质中多个数据块的均衡擦写,进而可以有效延长非易失性存储介质的使用寿命。

可选的,根据第一管理块确定第二数据块,包括:

根据第一数据块的地址,随机选取除第一数据块以外的数据块,作为待确定数据块;判断待确定数据块的状态是否为未使用状态;若待确定数据块的状态是未使用状态,则判断待确定数据块是否存在第三标识,第三标识用于标识待确定数据块为损坏块;若待确定数据块不存在第三标识,则确定待确定数据块为第二数据块。

本方案中,通过根据第一数据块的地址,随机选取除第一数据块以外的数据块,作为待确定数据块,并对待确定数据块的状态和标识进行判断,最终确定第二数据块,不仅保证了第二数据块为未使用状态且不是损坏块,而且实现了非易失性存储介质中多个数据块的均衡擦写,进而可以有效延长非易失性存储介质的使用寿命。

下面将介绍装置、mcu、设备、存储介质及计算机程序产品,其效果可参考方法部分的效果,下面对此不再赘述。

第二方面,本申请提供一种非易失性存储介质的数据更新装置,包括:

第一获取模块,用于获取非易失性存储介质上的第一管理块,第一管理块包括:多个数据块的最新特征信息,多个数据块包括第一数据块和第二数据块,第一数据块为待更新数据块,第二数据块为可更新数据块,可更新数据块为空白数据块或无效数据块;第一确定模块,用于根据第一管理块获取第一数据块;第二确定模块,用于根据第一管理块确定第二数据块;第一更新模块,用于根据第一数据块,更新非易失性存储介质上的第二数据块;第一生成模块,用于生成第二管理块信息,第二管理块信息包括多个数据块的更新特征信息;第二更新模块,用于根据第二管理块信息,更新非易失性存储介质上的第二管理块。

可选的,非易失性存储介质包括数据区和管理区,数据区包括至少两个数据块,管理区包括至少两个管理块。

可选的,多个数据块的最新特征信息包括:

多个数据块中每个数据块的地址、标识和状态;其中,数据块的地址用于查询数据块,数据块的标识用于标识数据块是否为损坏块,数据块的状态包括已使用状态或未使用状态。

可选的,本申请提供的非易失性存储介质的数据更新装置,还包括:

第二获取模块,用于获取非易失性存储介质上的所有管理块对应的计数器原码和计数器反码,其中,每个管理块对应一个计数器原码和一个计数器反码,计数器原码用于记录管理块的使用次数,每个计数器反码用于校验该管理块对应的计数器原码的准确性;第一校验模块,用于针对每个计数器原码,根据其对应的计数器反码校验该计数器原码;第三确定模块,用于确定所有被校验成功的计数器原码,并将所有被校验成功的计数器原码中最大的计数器原码对应的管理块确定为第一管理块。

可选的,本申请提供的非易失性存储介质的数据更新装置,还包括:

第二校验模块,用于对第一管理块进行校验;第一处理模块,用于若校验失败,则对非易失性储存介质初始化。

可选的,本申请提供的非易失性存储介质的数据更新装置,还包括:

读取模块,用于读取第二数据块;第三校验模块,用于校验第二数据块;第二处理模块,若对第二数据块校验失败,则将第二数据块的标识更新为第一标识,第一标识用于标识第二数据块为损坏块,并重新根据第一管理块获取第二数据块,直至对第二数据块校验成功为止。

可选的,本申请提供的非易失性存储介质的数据更新装置,还包括:

查找模块,用于根据第一管理块的索引,查找第一管理块的下一个管理块;第四确定模块,用于确定下一个管理块为第二管理块。

可选的,本申请提供的非易失性存储介质的数据更新装置,还包括:

选取模块,用于根据第一管理块的索引随机选取除第一管理块以外的管理块;第五确定模块,用于确定随机选取除第一管理块以外的管理块为第二管理块。

可选的,第二确定模块,包括:

查找子模块,用于根据第一数据块的地址,查找第一数据块的下一个数据块;第一判断子模块,用于判断下一个数据块的状态是否为未使用状态;第二判断子模块,用于若下一个数据块的状态是未使用状态,则判断下一个数据块是否存在第二标识,第二标识用于标识下一个数据块为损坏块;第一确定子模块,用于若下一个数据块不存在第二标志,则确定下一数据块为第二数据块。

可选的,第二确定模块,包括:

选取子模块,用于根据第一数据块的地址,随机选取除第一数据块以外的数据块,作为待确定数据块;第三判断子模块,用于判断待确定数据块的状态是否为未使用状态;第四判断子模块,用于若待确定数据块的状态是未使用状态,则判断待确定数据块是否存在第三标识,第三标识用于标识待确定数据块为损坏块;第二确定子模块,用于若待确定数据块不存在第三标识,则确定待确定数据块为第二数据块。

第三方面,本申请实施例提供一种mcu,用于执行如上述第一方面或第一方面可选方式的非易失性存储介质的数据更新方法。

第四方面,本申请提供一种终端,包括第三方面所述的mcu。

第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得服务器执行如第一方面或第一方面可选方式的非易失性存储介质的数据更新方法。

第六方面,本发明实施例提供一种计算机程序产品,包括:可执行指令,可执行指令用于实现如第一方面或第一方面可选方式的非易失性存储介质的数据更新方法。

本发明提供的本申请提供一种非易失性存储介质的数据更新方法、装置及存储介质,该方法包括:获取非易失性存储介质上的第一管理块,第一管理块包括:多个数据块的最新特征信息,多个数据块包括第一数据块和第二数据块,第一数据块为待更新数据块,第二数据块为可更新数据块。根据第一管理块获取第一数据块;根据第一管理块确定第二数据块;根据第一数据块,更新非易失性存储介质上的第二数据块;生成第二管理块信息,第二管理块信息包括多个数据块的更新特征信息;根据第二管理块信息,更新非易失性存储介质上的第二管理块。一方面,根据第一管理块确定第二数据块,并根据第一数据块更新非易失性存储介质上的第二数据块,实现了数据块的更新,且若在更新第二数据块的过程中发生掉电,由于第二管理块内容未更新,则在上电后可以重新根据第一管理块获取第一数据块;另一方面,通过生成第二管理块信息,并更新第二管理块,实现了对多个数据块的管理,且若在更新第二管理块的过程中发生掉电,则由于未更新第二管理块,因此在上电后可以重新根据第一管理块获取第一数据块,不仅实现了非易失性存储介质的数据更新,而且实现了非易失性存储介质的掉电保护,而且由于未增加任何硬件设施,降低了成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的非易失性存储介质的数据更新方法的流程示意图;

图2是本申请实施例提供的非易失性存储介质的空间分配示意图;

图3是本申请另一实施例提供的非易失性存储介质的数据更新方法的流程示意图;

图4是本申请再一实施例提供的非易失性存储介质的数据更新方法的流程示意图;

图5是本申请一实施例提供的非易失性存储介质的数据更新装置的结构示意图;

图6是本申请又一实施例提供的非易失性存储介质的数据更新装置的结构示意图;

图7是本申请另一实施例提供的非易失性存储介质的数据更新装置的结构示意图;

图8是本申请再一实施例提供的非易失性存储介质的数据更新装置的结构示意图;

图9是本申请又再一实施例提供的非易失性存储介质的数据更新装置的结构示意图;

图10是本申请又另一实施例提供的非易失性存储介质的数据更新装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

非易失性存储介质目前已被广泛应用于ic卡,手机、电脑、平板、游戏机、医疗设备、通信设备等等终端设备中。终端设备在实际应用中不可避免的会出现数据的修改,然后存储到非易失性存储介质中,由于非易失性存储介质需要先擦除,再写入。若终端设备不做任何防护的话,如果在写入的过程中发生了掉电,那么重新上电后,会出现数据丢失,进而影响终端设备的可靠运行。为了防止在写入过程中发生掉电进而使数据丢失,目前通常通过检测系统供电电源,在供电电源发生掉电时,利用储能单元向非易失性存储介质提供电源,进而来保证写入数据的完整性,重新上电后,有效避免了数据丢失,但现有技术需要增加新的硬件设施,成本较高,未解决上述技术问题,本申请提供一种非易失性存储介质的数据更新方法、装置及存储介质。

以下,对本发明实施例的示例性应用场景进行介绍。

在终端设备的使用过程中,可能会需要对数据进行修改,例如,在使用终端设备中的应用程序时,修改设置信息等,修改后的设置信息需要存储至非易失性存储介质中,其中,本申请实施例对非易失性存储介质的具体类型不做限制。另外,终端设备可以是mcu、中央处理器(centralprocessingunitprocessor,cpu)、个人电脑(personalcomputer,简称:pc)或者移动终端等,该移动终端也可以称为用户设备(userequipment,简称:ue)、接入终端、用户单元、用户站、移动站、移动台、用户终端、终端、无线通信设备、用户代理或用户装置。移动终端可以是智能手机、蜂窝电话、无绳电话、平板电脑、个人数字处理(personaldigitalassistant,简称:pda)设备、具有无线通信功能的手持设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备等,本发明实施例对终端设备的类型不做限制。基于此,本申请提供一种非易失性存储介质的数据更新方法、装置及存储介质。

图1是本申请一实施例提供的非易失性存储介质的数据更新方法的流程示意图,该方法可以由非易失性存储介质的数据更新方法装置执行,该装置可以通过软件和/或硬件的方式实现,例如:该装置可以是终端设备的部分或全部,终端设备可以是上述任意终端设备,下面以mcu为执行主体对非易失性存储介质的数据更新方法进行说明,如图1所示,本发明实施例中的方法可以包括:

s1、mcu获取非易失性存储介质上的第一管理块,第一管理块包括:多个数据块的最新特征信息,多个数据块包括第一数据块和第二数据块,第一数据块为待更新数据块,第二数据块为可更新数据块。

mcu获取非易失性存储介质上的第一管理块至内存中,非易失性存储介质可以包括多个管理块,其中,管理块的数量至少为两个,本发明实施例对管理块的具体数量设置不做限制,另外,本发明实施例对管理块的大小也不做限制,只要能够满足用户需求即可。可选的,非易失性存储介质包括数据区和管理区,数据区包括至少两个数据块,管理区包括至少两个管理块。图2是本申请实施例提供的非易失性存储介质的空间分配示意图,以非易失性存储介质包括三个管理块、四个数据块为例,如图2所示,每个管理块中可以包括计数器原码、计数器反码、多个数据块的特征信息和校验模块,可选的,多个数据块的特征信息可以包括多个数据块中每个数据块的地址、标识和状态,其中,数据块的地址用于查询所述数据块,数据块的标识用于标识所述数据块是否为损坏块,数据块的状态包括已使用状态或未使用状态。

可选的,数据块的特征信息还可以包括多个数据块中每个数据块的类型,其中,数据块的类型用于表示数据块的内容特征,例如,数据块的类型为指纹模板,则该数据块为指纹模板的相关数据。

可选的,在获取非易失性存储介质上的第一管理块之后,还包括:

对第一管理块进行校验;若校验失败,则对非易失性储存介质初始化。

其中,可以通过第一管理块中的校验模块对第一管理块进行校验,若校验失败,则mcu对非易失性存储介质初始化,或上报第一管理块校验失败消息至终端,本发明实施例对此不做限制。

对第一管理模块进行校验的方式可以通过循环冗余校验(cyclicredundancycheck,crc)或检验和等方式,本发明实施例对此不做限制,只要能够实现对第一管理模块进行校验即可。

由于非易失性存储介质可能包括多个管理块,多个管理块分别包括不同数据更新期间多个数据块的特征信息,例如,管理块1中包括了在第一次更新数据之前多个数据块的特征信息,设置管理块1中的计数器原码,并对管理块1中的计数器补码做对应更新,例如,管理块1中的计数器原码可以为1;管理块2中包括了在第一次更新数据之后多个数据块的特征信息,则管理块2中的计算器原码在数据块1的计数器原码的基础上加1,例如,管理块2中的计数器原码可以为2,并更新管理块2中的计数器反码;管理块3中包括了在第二次更新数据之后多个数据块的特征信息,则管理块3中的计数器原码在数据块2的计数器原码的基础上加1,例如,管理块3中的计数器原码可以为3,并更新管理块3中的计数器反码;若最后一次更新为第二次更新,则管理块3中包括了多个数据块的最新特征信息。由于第一管理块包括多个数据块的最新特征信息,因此在上述举例中,管理块3即为第一管理块。

第一管理块中包括多个数据块的最新特征信息,其中,第一数据块为待更新数据块,例如,如图2所示,若需要更新的数据为指纹模板,且数据块0为指纹模板信息,则第一数据块为数据块0。第二数据块为可更新数据块,可更新数据块为可以将mcu内存中的数据块更新至非易失性存储介质上的数据块,且在更新该数据块之后不影响系统正常运行。其中,可更新数据块包括空白数据块和无效数据块,空白数据块和无效数据块均为数据块的状态为未使用状态的数据块,例如,如图2所示,若数据块3的状态为未使用状态,且数据块3为无效数据,则数据块3为无效数据块,可以作为第二数据块,另外,若数据块2的状态也为未使用状态,且数据块2为空白数据,则数据块2为空白数据块,也可以作为第二数据块,本发明实施例对如何确定第二数据块的方法不做限制。

s2、mcu根据第一管理块获取第一数据块。

mcu根据第一管理块确定第一数据块,可以根据需要更新的数据类型和第一管理块中多个数据块的最新特征信息中数据块的类型,获取与需要更新的数据类型相同类型的数据块的地址,然后mcu根据数据块的地址确定第一数据块,并获取第一数据块至内存中。例如,需要更新的数据内容为指纹模板,根据第一管理块中的数据信息,查询数据块的类型为指纹模板的数据块,然后获取数据块的类型为指纹模板的数据块的地址,确定第一数据块,并获取第一数据块至内存中。

s3、mcu根据第一管理块确定第二数据块。

mcu根据第一管理块确定第二数据块,在一种可能的实施方式中,根据第一数据块的地址,查找第一数据块的下一个数据块;判断下一个数据块的状态是否为未使用状态;若下一个数据块的状态是未使用状态,则判断下一个数据块是否存在第二标识,第二标识用于标识下一个数据块为损坏块;若下一个数据块不存在第二标志,则确定下一数据块为第二数据块。

示例性的,如图2所示,例如第一数据块为数据块0,则第一数据块的下一个数据块可以为数据块1,根据第一管理块中数据块1的特征信息中的数据块的状态,判断数据块1是否为未使用状态,如果数据块1是未使用状态,则根据第一管理块中数据块1的特征信息中的数据块的标识,判断数据块1是否存在第二标识,若数据块1不存在第二标识,则确定数据块1为第二数据块。

如果数据块1是使用状态,则查找数据块1的下一个数据块,即数据块2是否为未使用状态,如果数据块2为未使用状态,则判断数据块2的标识,是否存在第二标识,直到寻找到数据块的状态为未使用状态且数据块的标识不存在第二标识的数据块,并确定为第二数据块。

本方案中,通过根据第一数据块的地址,查找第一数据块的下一个数据块,并对下一个数据块的状态和标识进行判断,最终确定第二数据块,不仅保证了第二数据块为未使用状态且不是损坏块,而且实现了非易失性存储介质中多个数据块的均衡擦写,进而可以有效延长非易失性存储介质的使用寿命。

mcu根据第一管理块确定第二数据块,在另一种可能的实施方式中,mcu根据第一数据块的地址,随机选取除第一数据块以外的数据块,作为待确定数据块;判断待确定数据块的状态是否为未使用状态;若待确定数据块的状态是未使用状态,则判断待确定数据块是否存在第三标识,第三标识用于标识待确定数据块为损坏块;若待确定数据块不存在第三标识,则确定待确定数据块为第二数据块。

示例性的,如图2所示,例如第一数据块为数据块0,然后随机选取数据块1、数据块2或数据块3,例如,随机选取了数据块2作为待确定数据块,根据第一管理块中数据块2的特征信息中的数据块的状态,判断数据块2是否为未使用状态,如果数据块2是未使用状态,则根据第一管理块中数据块2的特征信息中的数据块的标识,判断数据块2是否存在第三标识,若数据块2不存在第三标识,则确定数据块2为第二数据块。

如果数据块2是使用状态,则随机选取除数据块0和数据块2的数据块,例如选取了数据块1为待确定数据块,则继续判断数据块1是否为未使用状态,如果数据块1为未使用状态,则判断数据块1的标识,是否存在第三标识,直到寻找到数据块的状态为未使用状态且数据块的标识不存在第三标识的数据块,并确定为第二数据块。

本方案中,通过根据第一数据块的地址,随机选取除第一数据块以外的数据块,作为待确定数据块,并对待确定数据块的状态和标识进行判断,最终确定第二数据块,不仅保证了第二数据块为未使用状态且不是损坏块,而且实现了非易失性存储介质中多个数据块的均衡擦写,进而可以有效延长非易失性存储介质的使用寿命。

s4、mcu根据第一数据块,更新非易失性存储介质上的第二数据块。

以第一数据块为数据块0,第二数据块为数据块3为例,数据块0为待更新数据块,mcu获取数据块0至内存中,并根据实际需求对数据块0进行修改,形成修改后的数据块0,在更新数据块3之前,数据块3为无效数据块,在更新第二数据块的过程中,先擦除第二数据块中的信息,然后写入修改后的信息,因此,在更新非易失性存储介质上的数据块3时,首先擦除数据块3中的信息,然后mcu将内存中修改后的数据块0写入非易失性存储介质上的数据块3中。若在更新第二数据块的过程中发生掉电,即若在将修改后的数据块0写入数据块3的过程中发生掉电,由于第二管理块内容未更新,则在上电后,第一管理块依然是包括多个数据块的最新特征信息的管理块,可以根据第一管理块获取第一数据块,另外,由于第一数据块未执行擦除,因此,第一数据块依然保留更新之前的数据信息,避免了数据丢失。

s5、mcu生成第二管理块信息,第二管理块信息包括多个数据块的更新特征信息。

经过上述步骤,mcu更新了非易失性存储介质上的第二数据块,则需要mcu在内存中对第一管理块信息进行修改,并将修改后的第一管理块信息生成第二管理块信息。具体修改内容如下:更新第一数据块的类型为初始值,更新第一数据块的状态为未使用状态,更新第二数据块的类型,第二数据块的具体类型根据更新后的数据类型确定,本发明实施例对此不做限制,更新第二数据块的状态为使用状态,并且,还需要对管理区的计数器原码以及计数器反码进行更新,生成第二管理块信息。

s6、根据第二管理块信息,更新非易失性存储介质上的第二管理块。

mcu根据内存中的第二管理块信息,更新非易失性存储介质上的第二管理块,其中,第二管理块与第一管理块可以为不同的管理块,也可以为相同的管理块,本申请实施例以第二管理块与第一管理块为不同的管理块为例,在根据第二管理块信息更新第二管理块之前,还需要确定第二管理块,在一种可能的实施方式中,根据第一管理块的索引,查找第一管理块的下一个管理块;确定下一个管理块为第二管理块。

示例性的,如图2所示,例如第一管理块为管理块1,下一个管理为管理块2,则确定管理块2为第二管理块,再例如,第一管理块为管理块3,则下一个管理块为管理块1,则确定管理块1为第二管理块。

本方案中,通过根据第一管理块的索引确定下一个管理块为第二管理块,实现了非易失性存储介质中多个管理块的均衡擦写,进而可以有效延长非易失性存储介质的使用寿命。

在另一种可能的实施方式中,根据第一管理块的索引随机选取除第一管理块以外的管理块;确定随机选取除第一管理块以外的管理块为第二管理块。

示例性的,如图2所示,例如,第一管理块为管理块1,则随机选取管理块2或管理块3,并确定管理块2或管理块3为第二管理块。

本方案中,通过确定随机选取除第一管理块以外的管理块为第二管理块,实现了非易失性存储介质中多个管理块的均衡擦写,进而可以有效延长非易失性存储介质的使用寿命。

mcu在确定第二管理块之后,首先擦除第二管理块,然后将第二管理块信息写入第二数据块中,此时,第二管理块中包括更新后多个数据块的最新特征信息。

本申请实施例提供的非易失性存储介质的数据更新方法,一方面,根据第一管理块确定第二数据块,并根据第一数据块更新非易失性存介质上的第二数据块,实现了数据块的更新,且若在更新第二数据块的过程中发生掉电,由于第二管理块内容未更新,则在上电后可以重新根据第一管理块获取第一数据块;另一方面,通过生成第二管理块信息,并更新非易失性存储介质上的第二管理块,实现了对多个数据块的管理,且若在更新第二管理块的过程中发生掉电,则由于未更新第二管理块,因此在上电后可以重新根据第一管理块获取第一数据块,不仅有效避免了第一数据块中的数据丢失,而且由于未增加任何硬件设施,降低了成本。

在上述实施例的基础上,为了实现准确的获取第一管理块,可选的,在获取非易失性存储介质上的第一管理块之前,图3是本申请另一实施例提供的非易失性存储介质的数据更新方法的流程示意图,该方法可以由非易失性存储介质的数据更新方法装置执行,该装置可以通过软件和/或硬件的方式实现,例如:该装置可以是终端设备的部分或全部,终端设备可以是上述任意终端设备,下面以mcu为执行主体对非易失性存储介质的数据更新方法进行说明,如图3所示,本申请实施例提供的非易失性存储介质的数据更新方法,还可以包括:

步骤s101:mcu获取非易失性存储介质上的所有管理块对应的计数器原码和计数器反码。

如图2所示,每个管理块对应一个计数器原码和一个计数器反码,其中,计数器原码用于记录管理块的使用次数,mcu每次对非易失性存储介质中的数据块进行更新时,都需要对管理块进行更新,其中,每次更新管理块时都会对计数器原码加1,并相应的更新计数器反码。每个计数器反码用于校验该管理块对应的计数器原码的准确性

步骤s102:mcu针对每个计数器原码,根据其对应的计数器反码校验该计数器原码。

由于每个计数器原码和计数器反码一一对应,因此可以通过计数器反码校验其对应计数器的原码,其中,本发明实施例对根据计数器反码校验其对应计数器原码的方式不做限制。

示例性的,例如非易失性存储介质的管理块共有m个,则一共有m对计数器原码和计数器反码,经过校验,若至少存在m-n个计数器原码被校验成功,则继续执行步骤s103,其中n为小于m的整数,在一种可能的实施方式中,令n=1,本发明实施例对n的具体数值不做限制。

若经过校验,被校验成功的计数器原码个数少于m-n个,则mcu初始化非易失性存储介质,或上报计数器原码校验失败信息至终端,本发明实施例对此不做限制。

步骤s103:mcu确定所有被校验成功的计数器原码,并将所有被校验成功的计数器原码中最大的计数器原码对应的管理块确定为第一管理块。

确定所有被校验成功的计数器原码,计数器原码中最大的计数器原码对应的管理块为包括多个数据块的最新特征信息的管理块,因此,将所有被校验成功的计数器原码中最大的计数器原码对应的管理块确定为第一管理块。

本方案中,通过所有管理块对应的计数器原码和计数器反码获取第一管理块,可以有效避免读取所有管理块,进而快速获取第一管理块。

第二数据块可能会在使用过程中损坏,为了保证更新数据成功写入第二数据块,可选的,图4是本申请再一实施例提供的非易失性存储介质的数据更新方法的流程示意图,该方法可以由非易失性存储介质的数据更新方法装置执行,该装置可以通过软件和/或硬件的方式实现,例如:该装置可以是终端设备的部分或全部,终端设备可以是上述任意终端设备,下面以mcu为执行主体对非易失性存储介质的数据更新方法进行说明,如图4所示,根据第一数据块,更新第二数据块之后,还包括:

s7、mcu读取第二数据块。

s8、校验第二数据块。

mcu根据读取的第二数据块以及写入的第二数据块进行比对,若比对成功,则说明校验第二数据块成功,本发明实施例对校验第二数据块的方式不做限制。若校验成功,则执行步骤s5,若校验不成功,则执行步骤s9。

s9、将第二数据块的标识更新为第一标识,第一标识用于标识第二数据块为损坏块。

若校验不成功,则第二数据块可能为损坏块,因此将第二数据块的标识更新为第一标识,第一标识用于标识第二数据块为损坏块。由于第二数据块存在损坏块的标识,则在根据第一管理块确定第二数据块时,可以避免再次选取该数据块作为第二数据块。

重复步骤s3、s4、s7、s8、s9,直至对第二数据块校验成功为止。

本方案中,通过对第二数据块进行校验,可以有效保证第二数据块的完整性,并通过若对第二数据块校验失败,则将第二数据块的标识更新为第一标识,第一标识用于标识第二数据块为损坏块,保证了在非易失性存储介质中某个数据块出现损坏时,不影响非易失性存储介质的正常使用,增加了非易失性存储介质的可靠性和使用寿命。

下面将介绍装置、mcu、设备、存储介质及计算机程序产品,其效果可参考方法部分的效果,下面对此不再赘述。

本申请提供一种非易失性存储介质的数据更新装置,图5是本申请一实施例提供的非易失性存储介质的数据更新装置的结构示意图,该装置可以通过软件和/或硬件的方式实现,例如:该装置可以是终端设备的部分或全部,终端设备可以是上述任意终端设备,如图5所示,本申请提供的非易失性存储介质的数据更新装置可以包括:

第一获取模块51,用于获取非易失性存储介质上的第一管理块,第一管理块包括:多个数据块的最新特征信息,多个数据块包括第一数据块和第二数据块,第一数据块为待更新数据块,第二数据块为可更新数据块,可更新数据块为空白数据块或无效数据块。

第一确定模块52,用于根据第一管理块获取第一数据块。

第二确定模块53,用于根据第一管理块确定第二数据块。

第一更新模块54,用于根据第一数据块,更新非易失性存储介质上的第二数据块。

第一生成模块55,用于生成第二管理块信息,第二管理块信息包括多个数据块的更新特征信息。

第二更新模块56,用于根据第二管理块信息,更新非易失性存储介质上的第二管理块。

可选的,非易失性存储介质包括数据区和管理区,数据区包括至少两个数据块,管理区包括至少两个管理块。

可选的,多个数据块的最新特征信息包括:

多个数据块中每个数据块的地址、标识和状态;其中,数据块的地址用于查询数据块,数据块的标识用于标识数据块是否为损坏块,数据块的状态包括已使用状态或未使用状态。

可选的,图6是本申请又一实施例提供的非易失性存储介质的数据更新装置的结构示意图,该装置可以通过软件和/或硬件的方式实现,例如:该装置可以是终端设备的部分或全部,终端设备可以是上述任意终端设备,如图6所示,本申请提供的非易失性存储介质的数据更新装置,还可以包括:

第二获取模块61,用于获取非易失性存储介质上的所有管理块对应的计数器原码和计数器反码,其中,每个管理块对应一个计数器原码和一个计数器反码,计数器原码用于记录管理块的使用次数,每个计数器反码用于校验该管理块对应的计数器原码的准确性。

第一校验模块62,用于针对每个计数器原码,根据其对应的计数器反码校验该计数器原码。

第三确定模块63,用于确定所有被校验成功的计数器原码,并将所有被校验成功的计数器原码中最大的计数器原码对应的管理块确定为第一管理块。

可选的,本申请提供的非易失性存储介质的数据更新装置,还包括:

第二校验模块64,用于对第一管理块进行校验。

第一处理模块65,用于若校验失败,则对非易失性储存介质初始化。

可选的,本申请提供的非易失性存储介质的数据更新装置,还包括:

读取模块66,用于读取第二数据块。

第三校验模块67,用于校验第二数据块。

第二处理模块68,若对第二数据块校验失败,则将第二数据块的标识更新为第一标识,第一标识用于标识第二数据块为损坏块,并重新确定第二数据模块,直至对第二数据块校验成功为止。

可选的,图7是本申请另一实施例提供的非易失性存储介质的数据更新装置的结构示意图,该装置可以通过软件和/或硬件的方式实现,例如:该装置可以是终端设备的部分或全部,终端设备可以是上述任意终端设备,如图7所示,本申请提供的非易失性存储介质的数据更新装置,还可以包括本申请提供的非易失性存储介质的数据更新装置,还包括:

查找模块71,用于根据第一管理块的索引,查找第一管理块的下一个管理块。

第四确定模块72,用于确定下一个管理块为第二管理块。

可选的,图8是本申请再一实施例提供的非易失性存储介质的数据更新装置的结构示意图,该装置可以通过软件和/或硬件的方式实现,例如:该装置可以是终端设备的部分或全部,终端设备可以是上述任意终端设备,如图8所示,本申请提供的非易失性存储介质的数据更新装置,还可以包括本申请提供的非易失性存储介质的数据更新装置,还包括:

选取模块73,用于根据第一管理块的索引随机选取除第一管理块以外的管理块。

第五确定模块74,用于确定随机选取除第一管理块以外的管理块为第二管理块。

可选的,图9是本申请又再一实施例提供的非易失性存储介质的数据更新装置的结构示意图,该装置可以通过软件和/或硬件的方式实现,例如:该装置可以是终端设备的部分或全部,终端设备可以是上述任意终端设备,如图9所示,本申请提供的非易失性存储介质的数据更新装置,第二确定模块53,可以包括:

查找子模块81,用于根据第一数据块的地址,查找第一数据块的下一个数据块。

第一判断子模块82,用于判断下一个数据块的状态是否为未使用状态。

第二判断子模块83,用于若下一个数据块的状态是未使用状态,则判断下一个数据块是否存在第二标识,第二标识用于标识下一个数据块为损坏块。

第一确定子模块84,用于若下一个数据块不存在第二标志,则确定下一数据块为第二数据块。

可选的,图10是本申请又另一实施例提供的非易失性存储介质的数据更新装置的结构示意图,该装置可以通过软件和/或硬件的方式实现,例如:该装置可以是终端设备的部分或全部,终端设备可以是上述任意终端设备,如图10所示,本申请提供的非易失性存储介质的数据更新装置,第二确定模块53,可以包括:

选取子模块91,用于根据第一数据块的地址,随机选取除第一数据块以外的数据块,作为待确定数据块。

第三判断子模块92,用于判断待确定数据块的状态是否为未使用状态。

第四判断子模块93,用于若待确定数据块的状态是未使用状态,则判断待确定数据块是否存在第三标识,第三标识用于标识待确定数据块为损坏块。

第二确定子模块94,用于若待确定数据块不存在第三标识,则确定待确定数据块为第二数据块。

本申请实施例提供一种mcu,用于执行如上述实施例提供的非易失性存储介质的数据更新方法,其内容和效果可参考方法实施例。

本申请提供一种终端,包括上述实施例中所述的mcu,其内容和效果可参考方法部分。

本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得服务器执行如上述实施例中非易失性存储介质的数据更新方法,其内容和方法可参考方法实施例。

本发明实施例提供一种计算机程序产品,包括:可执行指令,可执行指令用于实现如上述实施例中的非易失性存储介质的数据更新方法,其内容和方法可参考方法实施例。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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