基于NANDflash的数据处理方法和装置与流程

文档序号:15587781发布日期:2018-10-02 18:35阅读:153来源:国知局

本发明实施例涉及存储器技术,尤其涉及一种基于nandflash的数据处理方法和装置。



背景技术:

nandflash是flash内存的一种,属于非易失性存储设备(non-volatilememorydevice)。

nandflash存储设备中包括内部固件和nandflash存储器,其中,一方面,nandflash存储设备使用一段时间后会累积一些垃圾数据,内部固件程序需要及时清理这些数据;另一方面,均匀地使用所有nandflash存储器的数据块能提高设备存储空间的利用率,所以内部固件程序需要做磨损均衡处理。而上述清理数据和磨损均衡的处理对于用户来说均属于多余的读写操作,固件在进行清理数据和磨损均衡的过程中,会降低用户对存储设备的访问速度,影响用户体验。



技术实现要素:

本发明实施例提供一种基于nandflash的数据处理方法和装置,以解决现有技术中固件因进行清理数据和磨损均衡的处理而影响用户对存储设备的访问速度的问题。

第一方面,本发明实施例提供了一种基于nandflash的数据处理方法,应用于nandflash存储设备,所述方法包括:

获取至少两个清理数据任务块和至少两个磨损均衡任务块,其中,所述清理数据任务块和磨损均衡任务块是根据清理数据任务和磨损均衡任务分别切分得到;

检测所述存储设备的空闲时间是否大于预设阈值;

当检测出大于所述预设阈值时,调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块。

进一步的,在所述调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块之后,所述方法还包括:

记录所述清理数据任务块或磨损均衡任务块的处理进度,以便当再次检测出所述存储设备的空闲时间大于所述预设阈值时,调用所述存储设备的后台处理程序根据所述处理进度处理所述清理数据任务块或磨损均衡任务块。

第二方面,本发明实施例还提供了一种基于nandflash的数据处理装置,所述装置包括:

获取模块,用于获取至少两个清理数据任务块和至少两个磨损均衡任务块,其中,所述清理数据任务块和磨损均衡任务块是根据清理数据任务和磨损均衡任务分别切分得到;

检测模块,用于检测所述存储设备的空闲时间是否大于预设阈值;

调用模块,用于当所述检测模块检测出大于所述预设阈值时,调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块。

进一步的,所述装置还包括:

记录模块,用于记录所述清理数据任务块或磨损均衡任务块的处理进度;

所述调用模块,还用于当所述检测模块再次检测出所述存储设备的空闲时间大于所述预设阈值时,调用所述存储设备的后台处理程序根据所述处理进度处理所述清理数据任务块或磨损均衡任务块。

本发明实施例通过获取至少两个清理数据任务块和至少两个磨损均衡任务块,其中,所述清理数据任务块和磨损均衡任务块是根据清理数据任务和磨损均衡任务分别切分得到;检测所述存储设备的空闲时间是否大于预设阈值;当检测出大于所述预设阈值时,调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块,解决现有技术中固件因进行清理数据和磨损均衡的处理而影响用户对存储设备的访问速度的问题,达到不占用用户读写时间的效果。

附图说明

图1是本发明实施例一中的一种基于nandflash的数据处理方法的流程图;

图2是本发明实施例二中的一种基于nandflash的数据处理方法的流程图;

图3是本发明实施例三中的一种基于nandflash的数据处理装置的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种基于nandflash的数据处理方法的流程图,本实施例可适用于基于nandflash的数据处理的情况,该方法可以由本发明实施例中基于nandflash的数据处理装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:

s110,获取至少两个清理数据任务块和至少两个磨损均衡任务块,其中,所述清理数据任务块和磨损均衡任务块是根据清理数据任务和磨损均衡任务分别切分得到。

其中,获取至少两个清理数据任务块和至少两个磨损均衡任务块指的是所述清理数据任务块和磨损均衡任务块是根据清理数据任务和磨损均衡任务分别切分得到,至少将清理数据任务和磨损均衡任务切分为两个清理数据任务块和两个磨损均衡任务块。在切分的过程中,将数据清理任务和磨损均衡任务切分成很多清理数据任务块和磨损均衡任务块,切分的任务块原则上尽量小,因为空闲时间长短不一,切分为尽量小的任务以便充分利用空闲时间。也就是说所述清理数据任务块和磨损均衡任务块要达到足够小,以至于在空闲时间能够对清理数据任务块和磨损均衡任务块进行处理。所述切分实际上是一个预先执行的操作。

其中,所述磨损均衡任务是指对存储设备中的任务块进行均衡处理,由于硬盘的数据块使用次数不同,进而使得每个数据块的磨损程度不同,而磨损严重的数据块会在较短的时间达到使用寿命,因此需要对设备进行磨损均衡任务。

具体的,闪存由若干个闪存块组成,每个闪存块又分为若干个物理页。闪存块是擦除操作的最小单位,而读和写都是以页为单位。闪存采取异地更新的策略,更新的数据会被放到别的物理页上,而不是覆盖原来的数据。包含新版本数据的页被称为有效页,新版本数据被称为有效数据。包含旧版本数据的页被称为无效页,经过擦除操作后成为空闲页才可以重新写入数据。因为闪存是以块为单位执行擦除的,因此需要将脏页所在块上的所有的物理页都擦除,在擦除之前需要检查此块上是否存在有效页,如果存在就必须先转移到其他块上。因为每个闪存块的擦除次数有限,当闪存块的擦除次数达到了上限,则闪存数据存储的性能会下降。所以需要磨损均衡任务使擦除操作平均地发生在各个块上。

其中,清理数据任务是指清理存储设备使用一段时间后累积的一些垃圾数据。

s120,检测所述存储设备的空闲时间是否大于预设阈值。

其中,预设阈值可以根据设备的实际使用情况进行设置。具体的,检测存储设备的空闲时间是否大于预设阈值是为了防止出现只要产生空闲时间就调用后台处理清理数据任务块或磨损均衡任务块的情况,因为,如果只要产生空闲时间就调用后台处理清理数据任务块或磨损均衡任务块,且空闲时间非常短暂,必然会导致过度耗电,因此,加入此判断步骤。

s130,当检测出大于所述预设阈值时,调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块。

具体的,当检测出大于所述预设阈值时,说明空闲时间可以用来处理清理数据任务块或磨损均衡任务块。调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块。实施时,是先调用所述存储设备的后台处理程序处理所述清理数据任务块还是磨损均衡任务块,在实际操作过程中需要权衡,一般情况下,因为清理任务决定了可用存储空间有多少,如果当前存储空间有限,可能会优先处理清理数据任务块,以释放更多的存储空间。如果当前存储空间比较大,可能会优先处理磨损均衡任务块,以提升设备的使用寿命。此外,也可以根据预先设定的规则来处理清理数据任务块或磨损均衡任务块。

本实施例的技术方案,通过获取至少两个清理数据任务块和至少两个磨损均衡任务块,其中,所述清理数据任务块和磨损均衡任务块是根据清理数据任务和磨损均衡任务分别切分得到;检测所述存储设备的空闲时间是否大于预设阈值;当检测出大于所述预设阈值时,调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块,解决现有技术中固件因进行清理数据和磨损均衡的处理而影响用户对存储设备的访问速度的问题,达到不占用用户读写时间的效果。

实施例二

图2为本发明实施例二中的一种基于nandflash的数据处理方法的流程示意图,本实施例以前述实施例为基础进行优化,在本实施例中,在所述调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块之后,所述方法还包括:记录所述清理数据任务块或磨损均衡任务块的处理进度,以便当再次检测出所述存储设备的空闲时间大于所述预设阈值时,调用所述存储设备的后台处理程序根据所述处理进度处理所述清理数据任务块或磨损均衡任务块。

由此,通过记录所述清理数据任务块或磨损均衡任务块的处理进度,以便当再次检测出所述存储设备的空闲时间大于所述预设阈值时,调用所述存储设备的后台处理程序根据所述处理进度处理所述清理数据任务块或磨损均衡任务块。避免出现重复处理清理数据任务块或磨损均衡任务块或者漏掉一些清理数据任务块或磨损均衡任务块的情况。能够提高处理清理数据任务块或磨损均衡任务块的效率。

如图2所示,本实施例的方法具体包括如下步骤:

s210,获取至少两个清理数据任务块和至少两个磨损均衡任务块,其中,所述清理数据任务块和磨损均衡任务块是根据清理数据任务和磨损均衡任务分别切分得到。

s220,检测所述存储设备的空闲时间是否大于预设阈值。

s230,当检测出大于所述预设阈值时,调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块。

s240,记录所述清理数据任务块或磨损均衡任务块的处理进度,以便当再次检测出所述存储设备的空闲时间大于所述预设阈值时,调用所述存储设备的后台处理程序根据所述处理进度处理所述清理数据任务块或磨损均衡任务块。

其中,所述处理进度包括处理完成的清理数据任务块或磨损均衡任务块、还未进行处理的清理数据任务块或磨损均衡任务块、处理了一部分但并未完全处理完成的某一清理数据任务块或磨损均衡任务块。

具体的,由于任务块有多个,记录处理进度,以便下次有空闲时间接着处理。此外,空闲时间对每个任务块进行处理,但是空闲时间的长短不一,有可能存在任务块未处理完成的情况,因此也要对处理进度进行记录。

具体的,记录清理数据任务块或磨损均衡任务块的处理进度,当再次检测出存储设备的空闲时间大于预设阈值时,调用所述存储设备的后台处理程序根据所述处理进度处理所述清理数据任务块或磨损均衡任务块。例如可以是,预设阈值为30秒,当检测出存储设备已空闲30秒的时候,调用存储设备的后台处理程序处理清理数据任务块或磨损均衡任务块,当存储设备的空闲时间结束时,记录清理数据任务块或磨损均衡任务块的处理进度为处理了20个清理数据任务块和30个磨损均衡任务块,还有40个清理数据任务块和30个磨损均衡任务块没有被处理,当再次检测到设备已空闲30秒的时候,继续调用后台处理程序处理未被处理的40个清理数据任务块或30个磨损均衡任务块。

本实施例的技术方案,通过记录所述清理数据任务块或磨损均衡任务块的处理进度,以便当再次检测出所述存储设备的空闲时间大于所述预设阈值时,调用所述存储设备的后台处理程序根据所述处理进度处理所述清理数据任务块或磨损均衡任务块。避免出现重复处理清理数据任务块或磨损均衡任务块或者漏掉一些清理数据任务块或磨损均衡任务块的情况。能够提高处理清理数据任务块或磨损均衡任务块的效率。

实施例三

图3为本发明实施例三的一种基于nandflash的数据处理装置的结构示意图。本实施例可适用于基于nandflash的数据处理的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何需要基于nandflash的数据处理的设备中,所述装置用于执行基于nandflash的数据处理方法。如图3所示,所述基于nandflash的数据处理装置具体包括:获取模块310、检测模块320和调用模块330。

其中,获取模块310,用于获取至少两个清理数据任务块和至少两个磨损均衡任务块,其中,所述清理数据任务块和磨损均衡任务块是根据清理数据任务和磨损均衡任务分别切分得到;

检测模块320,用于检测所述存储设备的空闲时间是否大于预设阈值;

调用模块330,用于当所述检测模块检测出大于所述预设阈值时,调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块。

可选的,所述装置还包括:

记录模块,用于记录所述清理数据任务块或磨损均衡任务块的处理进度;

所述调用模块330,还用于当所述检测模块再次检测出所述存储设备的空闲时间大于所述预设阈值时,调用所述存储设备的后台处理程序根据所述处理进度处理所述清理数据任务块或磨损均衡任务块。

本实施例的技术方案,通过获取至少两个清理数据任务块和至少两个磨损均衡任务块,其中,所述清理数据任务块和磨损均衡任务块是根据清理数据任务和磨损均衡任务分别切分得到;检测所述存储设备的空闲时间是否大于预设阈值;当检测出大于所述预设阈值时,调用所述存储设备的后台处理程序处理所述清理数据任务块或磨损均衡任务块,解决现有技术中固件因进行清理数据和磨损均衡的处理而影响用户对存储设备的访问速度的问题,达到不占用用户读写时间的效果。

本发明实施例提供的基于nandflash的数据处理装置可执行本发明任意实施例提供的基于nandflash的数据处理方法,具备执行方法相应的功能模块和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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