存储块的回收方法和装置制造方法及图纸

技术编号:19388741 阅读:68 留言:0更新日期:2018-11-10 01:58
本申请提供了一种存储块的回收方法和装置,该方法包括:获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态;根据所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块;将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。本申请实施例中,以存储设备中的存储块为粒度进行存储资源的回收,并直接将处于可回收状态的存储块标记为空闲块。从而无需像传统的存储块回收那样,先将待回收的存储资源中的有效数据存储至其他存储空间之后,才能对该存储资源进行回收,有利于提高回收存储块的效率。

Recovery method and device for storage block

This application provides a method and device for recovering storage blocks, which includes: acquiring state information of the target storage area to be recovered in the storage device, which is used to determine whether the storage block in the target storage area is in a recoverable or non-recoverable state, and determining the location according to the state information. The storage block in the target storage area is in the said recoverable state; the storage block in the said recoverable state is marked as an idle block capable of data storage. In the embodiment of this application, the storage block in the storage device is used as the granularity to recover the storage resources, and the storage block in the recoverable state is marked as an idle block directly. Therefore, it is not necessary to store the effective data in the storage resources to be recovered into other storage spaces before the storage resources can be recovered, which is conducive to improving the efficiency of the recovery of storage blocks.

【技术实现步骤摘要】
存储块的回收方法和装置
本申请涉及存储领域,并且更具体地,涉及存储块的回收方法和装置。
技术介绍
通常存储设备的缓存和/或内存的存储空间非常有限,在有限的存储空间中还会存储有访问频度非常低,甚至不会被访问的数据,例如,无效数据和/或冷数据。为了提高存储设备中缓存和内存的存储资源的利用率,可以通过垃圾回收(GarbageCollection,GC)机制,将存储设备中用于存储上述数据的存储块(Block)进行回收,以释放这些存储块的存储资源,用于继续存储其他的数据。由于使用固态硬盘(SolidStateDrives,SSD)作为提供存储空间是比较主流的方式,而SSD是以闪存(FlashMemory)芯片为存储介质的存储器,因此,现有的GC机制都是基于闪存的存储特性制定的。然而,随着存储技术的发展,新型存储设备相对于闪存而言,具有不同的存储特性,例如,相变存储器(PhaseChangeMemory,PCM)。如果继续沿用传统的GC机制,会大大限制GC的效率。
技术实现思路
本申请提供一种存储块的回收方法和装置,有利于提高回收存储块的效率。第一方面,提供了一种存储块的回收方法,包括:获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态;根据所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块;将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。本申请实施例中,以存储设备中的存储块为粒度进行存储资源的回收,并直接将处于可回收状态的存储块标记为空闲块。从而无需像传统的存储块回收那样,先将待回收的存储资源中的有效数据存储至其他存储空间之后,才能对该存储资源进行回收,有利于提高回收存储块的效率。在一种可能的实现方式中,目标存储区域可以为存储设备中的部分存储区域。在本申请实施例中,通过对存储设备中的部分存储区域中的存储块进行回收,有利于减少回收存储块所需的时间。在一种可能的实现方式中,所述目标存储区域与所述存储设备中的第一存储区域不重叠,所述第一存储区域为在对所述目标存储区域进行回收之前执行的回收过程中使用的待回收的存储区域。本申请实施例中,通过将第一存储区域与目标存储区域配置为不重叠的存储区域,有利于均衡存储设备中存储块的试用寿命。可选地,第一存储区域与目标存储区域相邻。在一种可能的实现方式中,所述方法还包括:按照第一顺序,选择位于所述第一存储区域之后的存储区域作为所述目标存储区域,所述第一顺序为向所述存储设备中写数据的过程中,由先到后占用存储块的顺序。本申请实施例中,按照向所述存储设备中写数据的过程中,由先到后占用存储块的顺序,选择目标存储区域,以便存储至存储设备中的数据能够有时间积累访问频度,有利于提高确定热块和冷块的准确性。在一种可能的实现方式中,所述方法还包括:根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小。本申请实施例中,基于上述至少一次的回收过程中使用的访问频度阈值,确定目标存储区域的大小,有利于提高确定目标存储区域的大小的合理性。在一种可能的实现方式中,第一访问频度阈值为在对所述第一存储区域进行回收的过程中使用的访问频度阈值,目标访问频度为在对目标存储区域进行回收的过程中使用的访问频度阈值,所述根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小,包括:确定所述第一访问频度阈值与基准访问频度阈值之间的变化量;根据所述变化量,调整所述第一存储区域的大小;根据所述调整后的第一存储区域的大小,确定所述目标存储区域的大小,以降低所述目标访问频度阈值与所述基准访问频度阈值之间的变化量。上述变化量为基准访问频度阈值与第一访问频度阈值之间的差,或基准访问频度阈值与第一访问频度阈值之间的商时,所述变化量与所述调整后的第一存储区域的大小正相关。所述变化量为所述第一访问频度阈值与基准访问频度阈值之间的差,或第一访问频度阈值与基准访问频度阈值之间的商,所述变化量与所述调整后的第一存储区域的大小反相关。本申请实施例中,基于第一访问频度阈值与基准访问频度阈值之间的变化量,确定目标存储区域的大小,降低所述目标访问频度阈值与所述基准访问频度阈值之间的变化量,使得存储设备中的热块的访问频度比较均衡。在一种可能的实现方式中,在所述变化量为所述第一访问频度阈值与基准访问频度阈值之间的差,或第一访问频度阈值与基准访问频度阈值之间的商的前提下,所述变化量阈值区间的边界值为第一变化量阈值和第二变化量阈值,所述第一变化量阈值小于所述第二变化量阈值,所述根据所述第一访问频度阈值与基准访问频度阈值之间的变化量,调整所述第一存储区域的大小,以确定所述目标存储区域的大小,包括:所述变化量小于第一变化量阈值时,缩小所述第一存储区域以得到初始存储区域的大小,所述初始存储区域的大小用于确定所述目标存储区域的大小;所述变化量大于第二变化量阈值时,扩大所述第一存储区域以得到所述初始存储区域的大小;所述变化量大于所述第一变化量阈值,且所述变化量小于所述第二预设变化量阈值时,确定所述第一存储区域的大小为所述初始存储区域的大小。在一种可能的实现方式中,所述方法还包括:根据需要从所述存储设备中回收的存储块的数量,确定所述目标存储区域的大小。本申请实施例中,基于需要从所述存储设备中回收的存储块的数量,确定所述目标存储区域的大小,有利于提高确定目标存储区域的大小的合理性。在一种可能的实现方式中,所述方法还包括:获取所述目标存储区域中不同访问频度的存储块的数量;基于所述不同访问频度的存储块的数量,按照所述目标存储区域中存储块的访问频度从低到高的顺序,确定出需要从所述存储设备中回收的存储块。本申请实施例中,根据不同访问频度对应的的存储块的数量,以及需要回收的存储块的数量,确定需要从所述存储设备中回收的存储块,有利于提高确定访问频度阈值的准确性。在一种可能的实现方式中,所述基于所述不同访问频度的存储块的数量,按照所述目标存储区域中存储块的访问频度从低到高的顺序确定出需要回收的存储块,包括:按照所述访问频度从低到高的顺序,统计所述不同访问频度中每个访问频度的存储块的数量,直到所述统计的存储块的数量大于或等于需要从所述存储设备中回收的存储块的数量;确定所述统计的存储块中最高的访问频度为对所述目标存储区域中的存储块回收过程中使用的目标访问频度阈值。本申请实施例中,根据不同访问频度包括的存储块的数量,以及需要回收的存储块的数量,确定目标访问频度阈值,有利于提高确定访问频度阈值的准确性。在一种可能的实现方式中,在所述将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块之后,所述方法还包括:基于衰减倍数,对所述目标存储区域中存储块的访问频度进行衰减。本申请实施例中,通过对目标存储区域中存储块的访问频度进行衰减,避免一类随着时间流逝,访问频度降低的存储块长时间不被回收的情况,有利于提高存储块的回收过程的合理性。在一种可能的实现方式中,所述方法还包括:根据公式确定所述衰减倍数f,其中,α表示预配置的衰减倍数因子,N表示所述目标存储区域的大小,n表示从所述目标存储区域中回收的本文档来自技高网...

【技术保护点】
1.一种存储块的回收方法,其特征在于,包括:获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态;根据所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块;将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。

【技术特征摘要】
1.一种存储块的回收方法,其特征在于,包括:获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态;根据所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块;将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。2.如权利要求1所述的方法,其特征在于,所述目标存储区域与所述存储设备中的第一存储区域不重叠,所述第一存储区域为在对所述目标存储区域进行回收之前执行的回收过程中使用的待回收的存储区域。3.如权利要求2所述的方法,其特征在于,所述方法还包括:按照第一顺序,选择位于所述第一存储区域之后的存储区域作为所述目标存储区域,所述第一顺序为向所述存储设备中写数据的过程中,由先到后占用存储块的顺序。4.如权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小。5.如权利要求4所述的方法,其特征在于,第一访问频度阈值为在对所述第一存储区域进行回收的过程中使用的访问频度阈值,目标访问频度为在对目标存储区域进行回收的过程中使用的访问频度阈值,所述根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小,包括:确定所述第一访问频度阈值与基准访问频度阈值之间的变化量;根据所述变化量,调整所述第一存储区域的大小;根据所述调整后的第一存储区域的大小,确定所述目标存储区域的大小,以降低所述目标访问频度阈值与所述基准访问频度阈值之间的变化量。6.如权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:根据需要所述存储设备中回收的存储块的数量,确定所述目标存储区域的大小。7.如权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:获取所述目标存储区域中不同访问频度的存储块的数量;基于所述不同访问频度的存储块的数量,按照所述目标存储区域中存储块的访问频度从低到高的顺序,确定出需要从所述存储设备中回收的存储块。8.如权利要求1-7中任一项所述的方法,其特征在于,在所述将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块之后,所述方法还包括:基于衰减倍数,对所述目标存储区域中存储块的访问频度进行衰减。9.如权利要求8所述的方法,其特征在于,所述方法还包括:根据公式确定所述衰减倍数f,其中,α表示预配置的衰减倍数因子,N表示所述目标存储区域的大小,n表示从所述目标存储区域中回收的存储块的数量。10.如权利要求1-9中任一项所述的方法,其特征在于,所述存储设备中的存储空间被划分为多个存储区域,在所述获取存储设备中待回收的目标存储区域的状态信息之前,所述方法还包括:获取所述多个存储区域中每个存储区域包含的无效块的数量;将所述多个存储区域中,无效块的数量高于预设阈值的存储区域的指针存储至快速回收队列;将所述快速回收队列中记录的存储区域中的存储块标记为空闲块。11.一种存储块的回收装置,其特征在于,包括:获取单元,用于获取存储...

【专利技术属性】
技术研发人员:王力玉张真波王阳黄磊
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1