存储数据处理方法和装置与流程

文档序号:13675646阅读:173来源:国知局

本发明涉及存储技术领域,尤其涉及一种存储数据处理方法和装置。



背景技术:

nandflash是一种掉电非易失的存储器,一种闪存,用于数据存储领域。nand的写回速度比较块,擦除速度比较慢。nandflash以页为单位读写数据,而以块为单位擦除数据。在nandflash中每个块都有最大擦写次数,多次频繁擦写容易导致flash块损坏。



技术实现要素:

本发明提供一种存储数据处理方法和装置,可以解决存储在闪存上的小数据由于频繁擦写导致软件执行速度慢,闪存数据块容易损坏的问题

本发明提供一种存储数据处理方法,包括:

检测闪存区域中待修改数据块的个数,所述待修改数据块为携带有修改标识的数据块;

当所述待修改数据块的个数大于预设的个数阈值时,获取每个待修改数据块的修改操作信息,每个待修改数据块的修改操作信息中包括对应的待修改数据块所在的闪存页的页标识和块标记以及修改标识;

根据每个修改操作信息对其对应的待修改数据块进行相应的修改操作。

可选地,所述的存储数据处理方法,还包括:

检测到对所述闪存区域中的数据块进行修改操作时,且检测到所述闪存区域中待修改数据块的个数小于等于预设的个数阈值;

通过在所述数据块中添加对应的修改标识将所述数据块标识为待修改数据块;

记录所述数据块的修改操作信息,将所述记录的修改操作信息保存到所述闪存区域的元数据库中。

可选地,记录所述数据块的修改操作信息,包括:

若所述修改标识为删除标识,则将所述数据块所在的闪存页的页标识和块标记以及删除标识记录为所述数据块的修改操作信息;或者

若所述修改标识为写入标识,则将新数据块写入到新闪存页中,将所述数据块所在的闪存页的页标识和块标记、所述新数据所在的新闪存页的页标识和块标识、写入标识记录为所述数据块的修改操作信息。

可选地,检测闪存区域中待修改数据块的个数,包括:

检测所述闪存区域中携带有修改标识的数据块的个数,将携带有修改标识的数据块的个数确定为待修改数据块的个数,所述待修改数据块为携带有修改标识的小数据块;或者

检测所述元数据库中的修改操作信息的个数,将所述修改操作信息的个数确定为待修改数据块的个数。

可选地,根据每个修改操作信息对其对应的待修改数据块进行相应的修改操作,包括:

根据所述修改操作信息中包括的待修改数据块所在的闪存页的页标识和块标记以及删除标识,在所述页标识对应的闪存页中对所述块标识对应的数据块进行删除操作;或者

根据所述修改操作信息中包括的待修改数据块所在的闪存页的页标识和块标记、新数据所在的新闪存页的页标识和块标识以及写入标识,在所述新闪存页的页标识对应的新闪存页中获取所述块标识对应的新数据块,将所述新数据写入到所述待修改数据块所在的闪存页中与所述块标记对应的数据块进行数据更新操作,对所述新闪存页中的数据进行整体删除。

可选地,所述的存储数据处理方法还包括:

在对所有待修改数据块进行相应的修改操作之前,根据每个修改操作信息,对所有待修改数据块在备份区域进行整体备份;

对所述备份区域的所有待修改数据块进行修改,并对修改后的备份区域的数据进行整理合并,写入新的闪存区域中。

本申请还提供一种存储数据处理装置,包括:

第一检测模块,用于检测闪存区域中待修改数据块的个数,所述待修改数据块为携带有修改标识的数据块;

获取模块,用于当所述待修改数据块的个数大于预设的个数阈值时,获取每个待修改数据块的修改操作信息,每个待修改数据块的修改操作信息中包括对应的待修改数据块所在的闪存页的页标识和块标记以及修改标识;

处理模块,用于根据每个修改操作信息对其对应的待修改数据块进行相应的修改操作。

可选地,所述的存储数据处理装置,还包括:

第二检测模块,用于检测到对所述闪存区域中的数据块进行修改操作时,且检测到所述闪存区域中待修改数据块的个数小于等于预设的个数阈值;

标识模块,用于通过在所述数据块中添加对应的修改标识将所述数据块标识为待修改数据块;

记录模块,用于记录所述数据块的修改操作信息,将所述记录的修改操作信息保存到所述闪存区域的元数据库中。

可选地,所述记录模块具体用于:

若所述修改标识为删除标识,则将所述数据块所在的闪存页的页标识和块标记以及删除标识记录为所述数据块的修改操作信息;或者

若所述修改标识为写入标识,则将新数据块写入到新闪存页中,将所述数据块所在的闪存页的页标识和块标记、所述新数据所在的新闪存页的页标识和块标识、写入标识记录为所述数据块的修改操作信息。

可选地,所述处理模块具体用于:

根据所述修改操作信息中包括的待修改数据块所在的闪存页的页标识和块标记以及删除标识,在所述页标识对应的闪存页中对所述块标识对应的数据块进行删除操作;或者

根据所述修改操作信息中包括的待修改数据块所在的闪存页的页标识和块标记、新数据所在的新闪存页的页标识和块标识以及写入标识,在所述新闪存页的页标识对应的新闪存页中获取所述块标识对应的新数据块,将所述新数据写入到所述待修改数据块所在的闪存页中与所述块标记对应的数据块进行数据更新操作,对所述新闪存页中的数据进行整体删除。

本发明实施例中,可以采用专门的后台程序会定时检测闪存区域上的需要修改的数据块(带有修改标识的待修改数据块)的个数,如果待修改数据块超过一定的个数阈值,则获取每个待修改数据块的修改操作信息,对这几个待修改数据块一起进行整体修改操作处理。因此,可以减少对数据块的频繁擦除操作,从而可以避免频繁擦除导致闪存数据块容易损坏的情况。

附图说明

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

图1为本发明一实施例提供的存储数据处理方法流程示意图;

图2为本发明一实施例提供的记录修改操作信息的方法流程示意图;

图3为本发明又一实施例提供的记录修改操作信息的方法流程示意图;

图4为本发明另一实施例提供的存储数据处理方法流程示意图;

图5为本发明一实施例提供的存储数据处理装置结构示意图。

具体实施方式

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

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

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

图1为本发明一实施例提供的存储数据处理方法流程示意图,如图1所示,包括:

101、检测闪存区域中待修改数据块的个数;

可选地,本实施例中,所述待修改数据块为携带有修改标识的数据块;因此,在检测闪存区域中待修改数据块的个数时,可以通过检测所述闪存区域中携带有修改标识的数据块的个数,将携带有修改标识的数据块的个数确定为待修改数据块的个数。

102、当所述待修改数据块的个数大于预设的个数阈值时,获取每个待修改数据块的修改操作信息;

其中,每个待修改数据块的修改操作信息中包括对应的待修改数据块所在的闪存页的页标识和块标记以及修改标识;

为了减少对数据块的频繁擦除操作,本实施例中,可以采用专门的后台程序会定时检测闪存区域上的待修改数据块(带修改标识的数据块)的个数,当检测到闪存区域中待修改数据块的个数大于预设的个数阈值时,对该闪存区域中的所有待修改数据块进行整体修改操作。

需要说明的是,为了避免对数据块的频繁擦除操作而导致闪存数据块容易损坏的情况,本实施例中,当检测到闪存区域中待修改数据块的个数小于预设的个数阈值时,且检测到对闪存区域中的数据块进行修改操作处理时,不是立即对数据块进行修改操作,而是在该数据块中添加对应的修改标识将该数据块标识为待修改数据块,并记录所述数据块的修改操作信息;

进一步地,为了减小记录的修改操作信息所占的存储空间,即减少修改操作信息的数据量,可以采用占用存储空间很小的元数据来记录修改操作信息,将所述记录的修改操作信息保存到所述闪存区域的元数据库中。因此,上述步骤101中,还可以通过检测所述元数据库中的修改操作信息的个数,将所述修改操作信息的个数确定为待修改数据块的个数。

可选地,在上述记录数据块的修改操作信息时,举例来说,具体可以包括:

所述修改标识为删除标识,则将所述数据块所在的闪存页的页标识和块标记以及删除标识记录为所述数据块的修改操作信息;或者

若所述修改标识为写入标识,则将新数据块写入到新闪存页中,将所述数据块所在的闪存页的页标识和块标记、所述新数据所在的新闪存页的页标识和块标识、写入标识记录为所述数据块的修改操作信息。

103、根据每个修改操作信息对其对应的待修改数据块进行相应的修改操作。

需要说明的是,为了保护数据修改操作的安全性,本发明实施例中,在对所有待修改数据块进行相应的修改操作之前,根据每个修改操作信息,对所有待修改数据块在备份区域进行整体备份;然后对备份区域的所有待修改数据块进行修改,之后,对修改后的备份区域的数据进行整理合并,写入新的闪存区域中。

对备份区域的所有待修改数据块进行修改具体实现时包括:

根据所述修改操作信息中包括的待修改数据块所在的闪存页的页标识和块标记以及删除标识,在所述页标识对应的闪存页中对所述块标识对应的数据块进行删除操作;或者

根据所述修改操作信息中包括的待修改数据块所在的闪存页的页标识和块标记、新数据所在的新闪存页的页标识和块标识以及写入标识,在所述新闪存页的页标识对应的新闪存页中获取所述块标识对应的新数据块,将所述新数据写入到所述待修改数据块所在的闪存页中与所述块标记对应的数据块进行数据更新操作,然后,对所述新闪存页中的数据进行整体删除,以便释放新闪存页的存储空间。

因此,本发明实施例中,采用专门的后台程序会定时检测闪存区域上的需要修改的数据块(待修改数据块)的个数,如果待修改数据块个数超过一定的个数阈值,则获取每个待修改数据块的修改操作信息,对这几个待修改数据块一起进行整体修改操作处理。从而可以减少对数据块的频繁擦除操作,避免频繁擦除导致闪存数据块容易损坏的情况。

下面以删除操作和写入操作为例对记录修改操作信息进行详细的说明。

图2为本发明一实施例提供的记录修改操作信息的方法流程示意图,如图2所示,包括:

201、检测到对闪存区域中的任一数据块进行删除操作,且检测到闪存区域中待修改数据块的个数小于等于预设的个数阈值;

为了避免对数据块的频繁擦除操作而导致闪存数据块容易损坏的情况,当后台程序在检测闪存区域中待修改数据块的个数小于等于预设的个数阈值时,且检测到对闪存区域中的数据块进行删除操作,不启动对数据块的删除操作,而是进行后续的修改操作信息的记录。

202、通过在该数据块添加删除标识将该数据块标识为待删除数据块;

203、获取该待删除数据块所在闪存页的页标识和块标识;

204、将该待删除数据块所在闪存页的页标识和块标识以及删除标识记录为该待删除数据块的修改操作信息。

可选地,步骤204之后还可以包括:

205、将该修改操作信息保存到元数据库中。

图3为本发明又一实施例提供的记录修改操作信息的方法流程示意图,如图3所示,包括:

301、检测到对闪存区域中的数据块进行写入操作,且检测到闪存区域中待修改数据块的个数小于等于预设的个数阈值;

为了避免对数据块的频繁擦除操作而导致闪存数据块容易损坏的情况,当后台程序在检测闪存区域中待修改数据块的个数小于等于预设的个数阈值时,且检测到对闪存区域中的数据块进行写入操作时,不启动对数据块的写入操作,而是进行后续修改操作信息的记录。

302、通过在该数据块添加写入标识将该数据块标识为待写入数据块;

303、将新数据写入到新闪存页中。

304、获取该待写入数据块所在闪存页的页标识和块标识,以及获取新数据所在新闪存页中的页标识和块标识;

305、将该待写入数据块所在的闪存页的页标识和块标记、新数据所在的新闪存页的页标识和块标识以及写入标识记录为该待写入数据块的修改操作信息;

可选地,步骤305之后还可以包括:

306、将该修改操作信息保存到元数据库中。

基于图2和图3所示记录的修改操作信息,对每个待修改数据块进行相应的修改操作处理进行详细的说明。

图4为本发明另一实施例提供的存储数据处理方法流程示意图,如图4所示,包括:

401、检测闪存区域中待修改数据块的个数大于预设的个数阈值;

本实施例中,为了减少对数据块的频繁擦除操作,可以采用专门的后台程序会定时检测闪存区域上的需要处理的数据块(待修改数据块)的个数。

本实施例中,可以通过检测所述闪存区域中携带有修改标识的数据块的个数,将携带有修改标识的数据块的个数确定为待修改数据块的个数;或者通过检测所述元数据库中的修改操作信息的个数,将所述修改操作信息的个数确定为待修改数据块的个数。

当检测到闪存区域中待修改数据块的个数大于预设的个数阈值时,才启动操作程序对闪存区域中所有待修改数据块进行整体修改操作。

402、获取每个待修改数据块的修改操作信息;

403、若修改操作信息中包括待修改数据块所在的闪存页的页标识和块标记以及删除标识,则在所述页标识对应的闪存页中对所述块标识对应的数据块进行删除操作;

可选地,步骤402之后还包括:

404、若修改操作信息中包括待修改数据块所在的闪存页的页标识和块标记、新数据所在的新闪存页的页标识和块标识以及写入标识,则所述新闪存页的页标识对应的新闪存页中获取所述块标识对应的新数据块,将所述新数据写入到所述待修改数据块所在的闪存页中与所述块标记对应的数据块进行数据更新操作。

405、对新闪存页中的数据块进行整体删除,以便释放新闪存页中的存储空间。

根据本发明实施例所述的技术方案,在实际操作中,以nandflash为例,对nandflash上存储的数据块进行管理,例如记录数据块的标识、长度和实际数据值;

当软件需要更改某一个数据块时,重新分配一个新的nandflash区域,在新的nandflash区域中一个块中写入新数据(新数据块),该新数据包括实际数据值、数据长度、新的数据块的块标识,和要替代的记录的原有数据块的标识信息(包括原有数据块的所在的页标识和块标识)。在后续的删除中,会根据原有数据块的标识信息进行旧数据删除和新数据替换。

当软件需要删除某一个记录的数据块时,对该记录的数据块进行删除标记(包括该数据块的所在的页标识和块标识),并不进行实际删除;具体删除过程由另一后台程序定时检测并根据伤处触发条件决定是否进行实际删除。

当后台程序定时检测nandflash区域上的数据块,如果某一个区域中的几个nandflash闪存页上的数据块改动超过一定的个数阈值,则会对这几个nandflash上的数据块一起进行操作处理,具体包括:为了保护修改数据操作的安全性,在对数据修改之前,对该需要操作处理的区域进行整体备份,之后对备份的数据进行修改,该修改包括:将备份区域中根据写入标识,用新数据替换该备份区域中对应的旧数据(写入操作);将备份区域中根据删除标识,对需要删除的数据进行删除。然后对该备份区域的数据进行整理合并,写入新的nandflash块中。

本发明实施例通过定时检测闪存区域上的需要处理的数据块(待修改数据块),如果待修改数据块超过一定的个数阈值,则获取每个待修改数据块的操作信息,对这几个待修改数据块一起进行整体操作处理。因此,可以减少对数据块的频繁擦除操作,从而可以避免频繁擦除导致闪存数据块容易损坏的情况。

图5为本发明一实施例提供的存储数据处理装置结构示意图,如图5所示,包括:

第一检测模块,用于检测闪存区域中待修改数据块的个数,所述待修改数据块为携带有修改标识的数据块;

获取模块,用于当所述待修改数据块的个数大于预设的个数阈值时,获取每个待修改数据块的修改操作信息,每个待修改数据块的修改操作信息中包括对应的待修改数据块所在的闪存页的页标识和块标记以及修改标识;

处理模块,用于根据每个修改操作信息对其对应的待修改数据块进行相应的修改操作。

可选地,所述的存储数据处理装置还包括:

第二检测模块,用于检测到对所述闪存区域中的数据块进行修改操作时,且检测到所述闪存区域中待修改数据块的个数小于等于预设的个数阈值;

标识模块,用于通过在所述数据块中添加对应的修改标识将所述数据块标识为待修改数据块,以便第一检测模块通过检测修改标识个数来确定待修改数据块的个数;

记录模块,用于记录所述数据块的修改操作信息,将所述记录的修改操作信息保存到所述闪存区域的元数据库中,以便获取模块从元数据库中获取修改操作信息。

可选地,所述记录模块具体用于:

若所述修改标识为删除标识,则将所述数据块所在的闪存页的页标识和块标记以及删除标识记录为所述数据块的修改操作信息;或者

若所述修改标识为写入标识,则将新数据块写入到新闪存页中,将所述数据块所在的闪存页的页标识和块标记、所述新数据所在的新闪存页的页标识和块标识、写入标识记录为所述数据块的修改操作信息。

可选地,所述第一检测模块具体用于:

检测所述闪存区域中携带有修改标识的数据块的个数,将携带有修改标识的数据块的个数确定为待修改数据块的个数;或者

检测所述元数据库中的修改操作信息的个数,将所述修改操作信息的个数确定为待修改数据块的个数。

可选地,所述处理模块具体用于:

根据所述修改操作信息中包括的待修改数据块所在的闪存页的页标识和块标记以及删除标识,在所述页标识对应的闪存页中对所述块标识对应的数据块进行删除操作;或者

根据所述修改操作信息中包括的待修改数据块所在的闪存页的页标识和块标记、新数据所在的新闪存页的页标识和块标识以及写入标识,在所述新闪存页的页标识对应的新闪存页中获取所述块标识对应的新数据块,将所述新数据写入到所述待修改数据块所在的闪存页中与所述块标记对应的数据块进行数据更新操作,对所述新闪存页中的数据进行整体删除。

图5所示装置可以执行图1-图4所示的方法,其实现原理和技术效果不再赘述。

本发明实施例中,上述存储数据处理装置的结构中包括处理器和存储器,所述存储器用于存储支持存储数据处理装置执行上述图1-图4所示实施例中存储数据处理方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。

所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行。

本发明实施例还提供了一种计算机存储介质,储存有上述存储数据处理装置所用的计算机软件指令,所述计算机软件指令包含了用于执行上述存储数据处理方法为存储数据处理装置所涉及的程序。

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

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