一种闪存的垃圾回收方法及装置制造方法及图纸

技术编号:18138394 阅读:23 留言:0更新日期:2018-06-06 11:48
本申请实施例公开了一种闪存的垃圾回收方法及装置,涉及存储领域,解决了在存储系统采用全局垃圾回收方式时,如何最优化减少写入放大现象的问题。具体方案为:确定N个系统回收单元的垃圾量大于或等于第一阈值,第一阈值为需要对系统回收单元的垃圾进行垃圾回收的临界值,N为大于等于1的整数;根据N个系统回收单元的垃圾量将N个系统回收单元划分为M个回收组,M为大于等于1的整数,M小于或等于N;对M个回收组包括的系统回收单元的垃圾量进行垃圾回收。本申请实施例用于闪存的垃圾回收的过程。

【技术实现步骤摘要】
一种闪存的垃圾回收方法及装置
本申请实施例涉及存储领域,尤其涉及一种闪存的垃圾回收方法及装置。
技术介绍
目前,只读存储器(Read-OnlyMemory,ROM)广泛应用于不需要经常变更数据的电子或电脑系统,例如固态硬盘(SolidStateDrives,SSD)中的闪存。在闪存存储较多的无效数据或闪存的存储空间较少等情况下,需要利用垃圾回收(Garbagecollection,GC)机制释放资源。垃圾回收机制包括单盘垃圾回收和全局垃圾回收。由于系统能识别冷热数据,通过分离冷热数据,减少冷数据的搬移;并且系统能识别无效数据,通过全局垃圾回收释放无效数据,减少盘内的无效数据搬移。因此,现有的存储系统中很多采用全局垃圾回收方式进行垃圾回收,释放资源,减少写放大。在现有技术中,系统按照系统资源池的分配粒度对两个以上闪存进行全局垃圾回收,即全局垃圾回收的系统回收单元的大小等于系统资源池的分配粒度,其中,系统回收单元是由两个以上回收子单元组成,一个回收子单元对应一个闪存,每个回收子单元的大小相等。然而,对于每个单盘需要按照盘片回收单元进行垃圾回收,而回收子单元小于盘片回收单元。图1为现有技术提供的垃圾回收机制示意图。在系统执行全局垃圾回收时,如果回收子单元所属的盘片回收单元中包括有效数据,仍然需要先将有效数据进行搬移,再对该盘片回收单元进行擦除。因此,导致对已经写入闪存的数据再次写入,无法实现最优化减少写入放大(Writeamplification,WA)现象。
技术实现思路
本申请实施例提供一种闪存的垃圾回收方法及装置,能够在存储系统采用全局垃圾回收方式进行垃圾回收时,最优化减少写入放大现象。为达到上述目的,本申请实施例采用如下技术方案:本申请实施例的第一方面,提供一种闪存的垃圾回收方法,包括:首先,确定N个系统回收单元的垃圾量大于或等于第一阈值,然后,根据N个系统回收单元的垃圾量将N个系统回收单元划分为M个回收组,对M个回收组包括的系统回收单元的垃圾量进行垃圾回收。其中,第一阈值为需要对系统回收单元的垃圾进行垃圾回收的临界值,N为大于等于1的整数,M为大于等于1的整数,M小于或等于N。本申请实施例所述的闪存的垃圾回收方法,依据相同时段分配的数据块的垃圾量也是相同的原理,根据N个系统回收单元的垃圾量对N个系统回收单元分组,保证同一时段的系统回收单元的垃圾量处于相同的垃圾量级别,再对具有相同(相近)垃圾量的系统回收单元的进行并发垃圾回收,最优化减少写入放大现象。需要说明的是,确定N个系统回收单元的垃圾量大于或等于第一阈值的时机可以是在当系统的存储空间不足时(如只有10%),或系统的垃圾量达到60%以上,系统需要进行垃圾回收,此时系统可以根据本申请实施例所述的闪存的垃圾回收方法对系统进行垃圾回收,确定N个系统回收单元的垃圾量大于或等于第一阈值。结合第一方面,在一种可能的实现方式中,根据N个系统回收单元的垃圾量将N个系统回收单元划分为M个回收组,包括:将第1可回收阈值至第M可回收阈值排序;将第i系统回收单元的垃圾量与第j可回收阈值和j+1可回收阈值进行比较,第j可回收阈值为第j回收组的可回收阈值,第j+1可回收阈值为第j+1回收组的可回收阈值,第j可回收阈值和j+1可回收阈值为相邻的两个可回收阈值,i为整数,i取1至N,j为整数,j取1至M;当第i系统回收单元的垃圾量大于或等于第j可回收阈值,且小于j+1可回收阈值时,将第i系统回收单元划分到第j回收组。从而,通过可回收阈值对系统回收单元进行分组,使垃圾量较大的系统回收单元分为一组,以便对垃圾量较大的系统回收单元进行垃圾回收,从而,较少有效数据的搬移,最优化减少写入放大现象。结合上述可能的实现方式,在另一种可能的实现方式中,在确定N个系统回收单元的垃圾量大于或等于第一阈值之前,方法还包括:预先配置M个可回收阈值。从而,及时对系统回收单元进行划分,进行垃圾回收。结合上述可能的实现方式,在另一种可能的实现方式中,在确定N个系统回收单元的垃圾量大于或等于第一阈值之后,方法还包括:根据N个系统回收单元的垃圾量确定M个可回收阈值。从而,通过系统回收单元的垃圾量动态地实时地确定可回收阈值,对系统回收单元进行准确地划分。结合上述可能的实现方式,在另一种可能的实现方式中,对M个回收组包括的系统回收单元的垃圾量进行垃圾回收,包括:根据M个可回收阈值从大到小对M个回收组包括的系统回收单元的垃圾量进行垃圾回收。从而,按照系统回收单元的垃圾量减少的方向对系统回收单元的垃圾进行垃圾回收,能够尽快释放资源,尽量减少数据搬移,减少写入放大,扩大闪存的可用空间。为了实现最优化减少写入放大现象,结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,每个系统回收单元包括P个回收子单元以及每个回收子单元的回收子单元标识,回收子单元标识用于表示回收子单元所属的闪存的盘片回收单元,P个回收子单元的大小相同,一个回收子单元属于一个闪存的盘片回收单元的一部分,P为系统包括的闪存的个数,对M个回收组包括的系统回收单元的垃圾量进行垃圾回收,包括:根据回收子单元标识对第j回收组中的系统回收单元包括的回收子单元进行划分;对划分后的第j回收组中的系统回收单元包括的回收子单元并行进行垃圾回收。本申请实施例的第二方面,提供一种闪存的垃圾回收装置,包括:处理单元,用于确定N个系统回收单元的垃圾量大于或等于第一阈值,第一阈值为需要对系统回收单元的垃圾进行垃圾回收的临界值,N为大于等于1的整数;处理单元,还用于根据N个系统回收单元的垃圾量将N个系统回收单元划分为M个回收组,M为大于等于1的整数,M小于或等于N;处理单元,还用于对M个回收组包括的系统回收单元的垃圾量进行垃圾回收。需要说明的是,上述第二方面功能模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。例如,处理器,用于完成处理单元的功能,存储器,用于存储处理器处理本申请实施例的闪存的垃圾回收方法的程序指令。处理器、通信接口和存储器通过总线连接并完成相互间的通信。具体的,可以参考第一方面提供的闪存的垃圾回收方法中设备的行为的功能。本申请实施例的第三方面,提供一种闪存的垃圾回收装置,包括:至少一个处理器、存储器、闪存、通信接口、通信总线;至少一个处理器与存储器、闪存和通信接口通过通信总线连接,存储器用于存储装置的执行指令,当处理器运行时,处理器执行存储器存储的装置的执行指令,以使装置执行第一方面或第一方面的可能的实现方式中任一所述的闪存的垃圾回收方法。本申请实施例的第四方面,提供一种存储设备,包括上述所述的闪存的垃圾回收装置、至少一个处理器以及内存,其中,闪存的垃圾回收装置、至少一个处理器以及内存之间互相连接。本申请实施例的第五方面,提供一种计算机存储介质,用于存储上述装置所用的计算机软件指令,该计算机软件指令包含用于执行上述闪存的垃圾回收方法所设计的程序。本申请实施例的第六方面,提供了一种包含指令的计算机程序产品,当其在装置上运行时,使得装置可以执行上述任意方面的方法。另外,第二方面至第六方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。本申请实施例中,闪存的垃本文档来自技高网...
一种闪存的垃圾回收方法及装置

【技术保护点】
一种闪存的垃圾回收方法,其特征在于,包括:确定N个系统回收单元的垃圾量大于或等于第一阈值,所述第一阈值为需要对系统回收单元的垃圾进行垃圾回收的临界值,N为大于等于1的整数;根据所述N个系统回收单元的垃圾量将所述N个系统回收单元划分为M个回收组,M为大于等于1的整数,M小于或等于N;对所述M个回收组包括的系统回收单元的垃圾量进行垃圾回收。

【技术特征摘要】
1.一种闪存的垃圾回收方法,其特征在于,包括:确定N个系统回收单元的垃圾量大于或等于第一阈值,所述第一阈值为需要对系统回收单元的垃圾进行垃圾回收的临界值,N为大于等于1的整数;根据所述N个系统回收单元的垃圾量将所述N个系统回收单元划分为M个回收组,M为大于等于1的整数,M小于或等于N;对所述M个回收组包括的系统回收单元的垃圾量进行垃圾回收。2.根据权利要求1所述的方法,其特征在于,所述根据所述N个系统回收单元的垃圾量将所述N个系统回收单元划分为M个回收组,包括:将第1可回收阈值至第M可回收阈值排序;将第i系统回收单元的垃圾量与第j可回收阈值和j+1可回收阈值进行比较,所述第j可回收阈值为第j回收组的可回收阈值,所述第j+1可回收阈值为第j+1回收组的可回收阈值,第j可回收阈值和j+1可回收阈值为相邻的两个可回收阈值,i为整数,i取1至N,j为整数,j取1至M;当所述第i系统回收单元的垃圾量大于或等于所述第j可回收阈值,且小于所述j+1可回收阈值时,将所述第i系统回收单元划分到所述第j回收组。3.根据权利要求2所述的方法,其特征在于,在所述确定N个系统回收单元的垃圾量大于或等于第一阈值之前,所述方法还包括:预先配置M个可回收阈值。4.根据权利要求2所述的方法,其特征在于,在所述确定N个系统回收单元的垃圾量大于或等于第一阈值之后,所述方法还包括:根据所述N个系统回收单元的垃圾量确定M个可回收阈值。5.根据权利要求2-4任一项所述的方法,其特征在于,所述对所述M个回收组包括的系统回收单元的垃圾量进行垃圾回收,包括:根据所述M个可回收阈值从大到小对所述M个回收组包括的系统回收单元的垃圾量进行垃圾回收。6.根据权利要求5所述的方法,其特征在于,每个所述系统回收单元包括P个回收子单元以及每个所述回收子单元的回收子单元标识,所述回收子单元标识用于表示所述回收子单元所属的闪存的盘片回收单元,P个回收子单元的大小相同,一个回收子单元属于一个闪存的盘片回收单元的一部分,P为系统包括的闪存的个数,所述对所述M个回收组包括的系统回收单元的垃圾量进行垃圾回收,包括:根据所述回收子单元标识对所述第j回收组中的系统回收单元包括的回收子单元进行划分,j为整数,j取1至M;对划分后的所述第j回收组中的系统回收单元包括的回收子单元并行进行垃圾回收。7.一种闪存的垃圾回收装置,其特征在于,包括:处理单元,用于确定N个系统回收单元的垃圾量大于或等于第一阈值,所述第一阈值为需要对系统回收单元的垃圾进行垃圾回收的临界值,N为大于等于1的整数;所述处理单元,还用于根据所述N个系统回收单元的垃圾量将所述N个系统回收单元划分为M个回收组,M为大于等于1的整数,M小于或等于N;所述处理单元,还用于对所述M个回收组包括的系统回收单元的垃圾量进行垃圾回收。8.根据权利要求7所述的装置,其特征在于,所述处理单元,具体用于:将第1可回收阈值至第M可回收...

【专利技术属性】
技术研发人员:吴延赞吴素宏黄国炎
申请(专利权)人:成都华为技术有限公司
类型:发明
国别省市:四川,51

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

1