CN107544754B - 一种垃圾回收方法及装置 - Google Patents
一种垃圾回收方法及装置 Download PDFInfo
- Publication number
- CN107544754B CN107544754B CN201710632349.0A CN201710632349A CN107544754B CN 107544754 B CN107544754 B CN 107544754B CN 201710632349 A CN201710632349 A CN 201710632349A CN 107544754 B CN107544754 B CN 107544754B
- Authority
- CN
- China
- Prior art keywords
- block
- group
- ssd
- garbage collection
- threshold
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Memory System (AREA)
Abstract
本申请提供一种垃圾回收方法及装置,所述方法包括:根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组;其中,组的级别越高,该组内的块的第一状态参数的值越低,该组进行垃圾回收时的优先级越高;当所述SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收;其中,该组内的块的第二状态参数的值越低,该块进行垃圾回收的优先级越高。应用本申请实施例可以提高垃圾回收的效率和精确度。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种垃圾回收方法及装置。
背景技术
SSD(Solid State Drives,固态硬盘)是使用固态电子存储芯片阵列制成的硬盘,SSD采用NAND(与非)FLASH(闪存)作为存储介质。
发明内容
本申请提供一种垃圾回收方法及装置,以提高垃圾回收效率以及垃圾回收的精确度。
根据本申请实施例的第一方面,提供一种垃圾回收方法,应用于SSD,该方法包括:
根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组;其中,组的级别越高,该组内的块的第一状态参数的值越低,该组进行垃圾回收时的优先级越高;
当所述SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收;其中,该组内的块的第二状态参数的值越低,该块进行垃圾回收的优先级越高。
根据本申请实施例的第二方面,提供一种垃圾回收装置,应用于SSD,该装置包括:
分组单元,用于根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组;其中,组的级别越高,该组内的块的第一状态参数的值越低,该组进行垃圾回收时的优先级越高;
垃圾回收单元,用于当所述SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收;其中,该组内的块的第二状态参数的值越低,该块进行垃圾回收的优先级越高。
应用本申请实施例,通过根据SSD中各块的第一状态参数对SSD中各块进行分组,当SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收,提高了垃圾回收的效率,并提高了垃圾回收的精确度。
附图说明
图1是本申请实施例提供的一种垃圾回收方法的流程示意图;
图2是本申请实施例提供的一种分组示意图;
图3是本申请实施例提供的一种垃圾回收装置的结构示意图。
具体实施方式
NAND FLASH写入的最小单位是页,通过凑够4个扇区组成一个页,一起写入;NANDFLASH擦除的最小单位是块,一个块可以包括多个页。
当NAND FLASH中任一页中有数据需要修改时,该页会被标识为无效页(该页内的数据均成为无效数据),并在其它块上申请页空间大小进行数据写入。其中,未被标记为无效且已使用的页可以称为有效页。
GC(Garbage Collection,垃圾回收)是将NAND FLASH中一个块里的有效页数据复制到另一个空闲块(未被使用的块)里,然后把这个块完全擦除。其中,SSD的P/E(Program/Erase Cycles,编程/擦除次数)次数(本文中简称为擦除次数)决定SSD的寿命。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
请参见图1,为本申请实施例提供的一种垃圾回收方法的流程示意图,其中,该垃圾回收方法可以应用于SSD,如SSD硬盘或SSD芯片等,如图1所示,该垃圾回收方法可以包括以下步骤:
值得说明的是,在本申请实施例中,步骤101~步骤102的执行主体可以为SSD或SSD中的控制单元,如CPU(Center Process Unit)。为便于描述,以下以步骤101~步骤102的执行主体为SSD为例进行说明。
步骤101、根据SSD中各块的第一状态参数对SSD中各块进行分组;其中,组的级别越高,该组内的块的第一状态参数的值越低,该组进行垃圾回收时的优先级越高。
本申请实施例中,为了提高垃圾回收处理的效率,在对SSD进行垃圾回收之前,可以先进行垃圾回收预处理操作。
具体地,SSD开始工作之后,可以获取SSD中各块的第一状态参数,其中,该第一状态参数可以用于表征SSD中各块的数据存储状态,数据存储状态不同,该块进行垃圾回收的优先级也不同。
例如,该第一状态参数可以为有效数据占比(即块中有效数据大小占块大小的比例),当块的有效数据占比的值越高时,对该块进行垃圾回收时增加的可用空间会越少,相应地,该块进行垃圾回收的优先级就越低;反之,当块的有效数据占比的值越低时,对该块进行垃圾回收时增加的可用空间会越多,相应地,该块进行垃圾回收的优先级就越高。
又例如,该第一状态参数可以为擦除次数,考虑到对于SSD而言,任一块的擦除次数(可擦除次数)是有上限的,当块的擦除次数(已擦除次数)达到上限时,该块再进行擦除操作可能会导致块损坏,因而,在进行垃圾回收时,可以优先对擦除次数少的块进行垃圾回收,以提高SSD中各块的使用寿命。
相应地,SSD可以记录各块的擦除次数,当块的擦除次数越高时,该块进行垃圾回收的优先级就越低;反之,当块的擦除次数越低时,该快进行垃圾回收的优先级就越高。
本申请实施例中,SSD可以根据各块的第一状态参数对SSD中各块进行分组,将各块按照块的第一状态参数的值的分布情况将各块划分到对应组中;其中,不同的组可以对应不同的第一状态参数的阈值范围,SSD可以根据块的第一状态参数的值所处的阈值范围,将块划分到对应的组中。
其中,在本申请实施例中,若未特殊说明,所提及的块均指写满数据的块。
步骤102、当SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收;其中,该组内的块的第二状态参数的值越低,该块进行垃圾回收的优先级越高。
本申请实施例中,当SSD需要进行垃圾回收时,例如,当空闲块的数量低于预设阈值(可以根据实际场景设定)时,SSD可以确定需要进行垃圾回收,此时,SSD可以根据各组进行垃圾回收时的优先级从高到低的顺序对各组中的块进行垃圾回收。
对于任一组,SSD需要对该组中的块进行垃圾回收时,可以获取该组中各块的第二状态参数;其中,该第二状态参数可以用于表征SSD中各块的数据存储状态,数据存储状态不同,该块进行垃圾回收的优先级也不同。
例如,该第二状态参数可以为有效数据占比或擦除次数。
需要说明的是,在本申请实施例中,第二状态参数与第一状态参数不同。
例如,当第一状态参数为有效数据占比时,第二状态参数可以为擦除次数;当第一状态参数为擦除次数时,第二状态参数可以为有效数据占比。
本申请实施例中,对于任一需要进行垃圾回收的组,SSD可以根据该组中各块的第二状态参数确定各块进行垃圾回收的优先级,并按照优先级从高到低的顺序对各块进行垃圾回收。
可见,在图1所示方法流程中,一方面,在进行垃圾回收之前,根据SSD中各块的第一状态参数对SSD中各块进行分组,进而,当需要进行垃圾回收时,可以直接根据各组对应的进行垃圾回收时的优先级,按照优先级从高到低的顺序对各组中的块进行垃圾回收,提高了垃圾回收的效率;另一方面,在确定各块进行垃圾回收时的优先级时,兼顾块的第一状态参数和第二状态参数,提高了垃圾回收的精确度。
进一步地,在本申请实施例中,考虑到整个SSD中块的数量会比较多,直接对整个SSD中的块进行分组,以及对分组中各块进行排序的工作量会比较大,处理效率也会比较低,因此,可以将SSD划分为多个部分,并分别对各部分进行分组和垃圾回收,以提高垃圾回收的处理效率。
相应地,在本申请其中一个实施例中,SSD可以包括一个或多个颗粒(一个NANDFLASH为一个颗粒),各颗粒可以被划分为多个部分,例如,可以将一个颗粒划分为多个LUN(Logic Unit,逻辑单元)。
为便于描述,下文中以一个部分为一个LUN为例进行说明。此外,为便于理解,下文以分别将SSD的各颗粒划分为多个部分(如多个LUN)的情况为例进行说明,但是需要说明的是,下文中的相关实现也可以在未对SSD进行划分的情况下进行,即直接对整个SSD进行块的分组和组内块的排序(其中,未对SSD进行划分的情况可以相当于将SSD划分为一个部分)。
在该实施例中,上述根据SSD中各块的第一状态参数对SSD中各块进行分组,可以包括:
对于任一部分,根据该部分中各块的第一状态参数对该部分中各块进行分组。
在该实施例中,为了提高垃圾回收处理效率,可以将SSD中各颗粒划分为多个LUN,各LUN之间的垃圾回收相互独立。
对于任一LUN(本文中称为目标LUN),SSD可以根据该部分中各块的第一状态参数对该目标LUN中各块进行分组。
例如,SSD可以根据该目标LUN中各块的有效数据占比或擦除次数对该目标LUN中各块进行分组。
进一步地,在本申请其中一个实施例中,当第一状态参数为有效数据占比,第二状态参数为擦除次数时,上述根据该部分中各块的第一状态参数对该部分中各块进行分组,可以包括:
对于任一块,当该块中的有效数据占比大于阈值threshold[x],且小于阈值threshold[x+1]时,将该块加入组x;
其中,x>0,阈值threshold[1]等于0,阈值threshold[x+1]>阈值threshold[x];
上述根据该组内各块的第二状态参数对各块进行垃圾回收,包括:
按照该组内各块的擦除次数从少到多的顺序对各块进行垃圾回收。
在该实施例中,SSD进行块回收之前,可以根据目标LUN中各块的有效数据占比对目标LUN中各块进行分组。
例如,可以将有效数据占比小于20%的块划分到组1,将有效数据占比大于等于20%,且小于40%的块划分到组2…(即threshold[1]等于0,threshold[2]等于20%,threshold[3]等于40%...)。其中,组1的级别高于组2,组2的级别高于组3…;组1进行垃圾回收时的优先级高于组2,组2进行垃圾回收时的优先级高于组3。
当SSD需要对目标LUN进行垃圾回收时,对于目标LUN的任一组(本文中称为目标组),当该目标组中存在块时,SSD可以根据目标组中各块的擦除次数从少到多的顺序对该目标组中的各块进行垃圾回收,即块的擦除次数越少,垃圾回收的优先级越高。
可见,在该实施例中,根据各块的有效数据占比对各块进行分组,有效数据占比越少的分组进行垃圾回收时的优先级越高,进而,对于同一组内各块,根据各块的擦除次数确定各块进行垃圾回收的优先级,擦除次数越少的块进行垃圾回收时的优先级越高,在提升通过垃圾回收增加的可用空间的前提下,提升了各块的使用寿命。
在本申请另一个实施例中,当第一状态参数为擦除次数,第二状态参数为有效数据占比时,上述根据该部分中各块的第一状态参数对该部分中各块进行分组,可以包括:
对于任一块,当该块的擦除次数大于等于阈值threshold[y],且小于阈值threshold[y+1]时,将该块加入组y;
其中,y>0,阈值threshold[1]等于0,阈值threshold[y+1]>阈值threshold[y];
上述根据该组内各块的第二状态参数对各块进行垃圾回收,包括:
按照该组内各块中的有效数据占比从少到多的顺序对各块进行垃圾回收。
在该实施例中,SSD进行块回收之前,可以根据目标LUN中各块的擦除次数对目标LUN中各块进行分组。
例如,可以将擦除次数小于20次的块划分到组1,将擦除次数大于等于20次,且小于40次的块划分到组2…(即threshold[1]等于0次,threshold[2]等于20次,threshold[3]等于40次...)。其中,组1的级别高于组2,组2的级别高于组3…;组1进行垃圾回收时的优先级高于组2,组2进行垃圾回收时的优先级高于组3。
当SSD需要对目标LUN进行垃圾回收时,对于目标LUN的目标组,当该目标组中存在块时,SSD可以根据目标组中各块的有效数据占比从少到多的顺序对该目标组中的各块进行垃圾回收,即块的有效数据占比越少,垃圾回收的优先级越高。
其中,在该实施例中,对于擦除次数达到擦除次数上限的块,将不再进行垃圾回收处理,而是用于存一些用户不常修改的数据,以提高空间利用率。
可见,在该实施例中,根据各块的擦除次数对各块进行分组,擦除次数越少的分组进行垃圾回收时的优先级越高,进而,对于同一组内各块,根据各块的有效数据占比确定各块进行垃圾回收的优先级,有效数据占比越少的块进行垃圾回收时的优先级越高,在提升各块的使用寿命的前提下,提升了通过垃圾回收增加的可用空间。
值得说明的是,在本申请实施例中,SSD根据目标LUN中各块的第一状态参数(如有效数据占比或擦除次数等)对目标LUN中各块进行分组之后,还可以定时(如周期性地)根据目标LUN中各块的第一状态参数变化后的值调整各块的分组。
举例来说,假设第一状态参数为有效数据占比,对于目标LUN中的目标块,当目标块的有效数据占比为50%时,SSD可以将该目标块划分到组3(对应的阈值范围为[40%,60%));随着SSD的继续使用,目标块的有效数据占比可能会逐渐下降(在进行垃圾回收之前);假设某一时刻,目标块中的有效数据占比为30%,则SSD可以将该目标块由从组3中删除,并添加到组2中(对应的阈值范围为[20%,40%))。
又举例来说,假设第一状态参数为擦除次数,对于目标LUN中的目标块,当目标块的擦除次数为50次时,SSD可以将该目标块划分到组3(对应的阈值范围为[40,60));随着SSD的继续使用,目标块的擦除次数可能会逐渐增加;假设某一时刻,目标块中的擦除次数为70次,则SSD可以将该目标块由从组3中删除,并添加到组4中(对应的阈值范围为[60,80))。
进一步地,在本申请实施例中,为了避免垃圾回收预处理影响CPU对其它业务的正常处理,可以选择在CPU空闲时进行垃圾回收预处理操作。
相应地,在本申请其中一个实施例中,上述根据该部分中各块的第一状态参数对该部分中各块进行分组,可以包括:
当CPU的负载小于预设阈值时,根据该部分中各块的第一状态参数对该部分中各块进行分组。
在该实施例中,SSD可以实时监测CPU的负载,例如,写数据的负载率、读数据的负载率以及其它一些任务进程的负载等,其具体数值可以通过读取CPU的负载标志位确定。
当SSD监测到CPU的负载小于预设阈值(该阈值可以根据实际场景设定)时,SSD可以认为当前CPU为空闲状态,此时,SSD可以获取目标LUN中各块的第一状态参数,并根据各块的第一状态参数对目标LUN中各块进行分组。
但需要注意的是,在本申请实施例中,当SSD中可用空间较少时,不及时进行垃圾回收会导致其它业务也无法正常进行,因此,SSD可以根据可用空间的多少确定进行垃圾回收的优先级,可用空间越少,垃圾回收任务的优先级越高;当可用空间少于预设的可用空间阈值(可以根据实际场景设定,如10%、5%等)时,可以将垃圾回收任务的优先级设置得比其它任务的优先级高,SSD可以先暂停其它业务的处理,而优先处理垃圾回收任务,以保证系统存在足够的可用空间。
应该认识到,上述实施例中虽然是在SSD中各颗粒被划分为多部分(如多个LUN)的前提下描述的,但是根据块的有效数据占比(或擦除次数)对块进行分组,同一组内根据块的擦除次数(或有效数据占比)确定组内各块进行垃圾回收的优先级并不限于在SSD中各颗粒被划分为多个部分的情况下进行,即SSD也可以直接根据所有块的有效数据占比(或擦除次数)对所有的块进行分组,同一组内根据块的擦除次数(或有效数据占比)确定组内各块进行垃圾回收的优先级,其具体实现在此不做赘述。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体的实施例对本申请实施例提供的技术方案进行说明。
在该实施例中,以第一状态参数为有效数据占比,第二状态参数为擦除次数为例进行说明。
在该实施例中,一个固态存储硬盘有AN个存储阵列,即有AN颗NAND颗粒,每个存储颗粒中分为了ANi个部分(如ANi个LUN),垃圾回收分别以各个LUN为单位各自独立进行。现假设每个LUN中一共有BN个存储单元(即BN个块),将这些存储单元分为10个组(组1~组10)。
其中,组1对应的阈值范围为[0,10%),组2对应的阈值范围[10%,20%)…,组9对应的阈值范围为[80%,90%),组10对应的阈值范围为[90%,100%)。
在该实施例中,垃圾回收处理流程可以如下(以对目标LUN进行垃圾回收处理为例):
1、监测CPU的负载,当CPU的负载低于预设负载阈值时,获取目标LUN中各块的有效数据占比,并根据各块的有效数据占比对目标LUN中各块进行分组,其示意图可以如图2所示;
其中,NM1+NM2+…+NM10=BN;
其中,对目标LUN中各块进行分组之后,还可以根据各块的有效数据占比的值的变化情况调整各块所在分组;
2、当目标LUN中的空闲块的数量小于第一空闲块数量阈值时,SSD确定需要进行垃圾回收处理,此时,SSD可以组1、组2…、组9、组10的顺序依次对各组进行垃圾回收,直至目标LUN中空闲块的数量达到第二空闲块数量阈值;其中,第二空闲块数量阈值大于等于第一空闲块数量阈值;
在该实施例中,当需要进行垃圾回收时,SSD可以先判断组1中是否存在块,若不存在,则进一步判断组2中是否存在块,以此类推,直至找到优先级最高且存在块的组。
当组1中存在块时,SSD可以根据组1中各块的擦除次数,按照擦除次数从少到多的顺序对组1中各块进行排序,并按序对组1中各块进行垃圾回收处理,直至目标LUN中空闲块的数量达到第二空闲块数量阈值;或者组1中的块均完成垃圾回收。
若组1中的块均完成垃圾回收,且目标LUN中空闲块的数量仍低于第二空闲块数量阈值,则继续对组2(若存在块)进行垃圾回收,以此类推,直至目标LUN中空闲块的数量达到第二空闲块数量阈值。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过根据SSD中各块的第一状态参数对SSD中各块进行分组,当SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收,提高了垃圾回收的效率,并提高了垃圾回收的精确度。
请参见图3,为本申请实施例提供的一种垃圾回收装置的结构示意图,其中,该垃圾回收装置可以应用于上述方法实施例中的SSD,如图3所示,该垃圾回收装置可以包括:
分组单元310,用于根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组;其中,组的级别越高,该组内的块的第一状态参数的值越低,该组进行垃圾回收时的优先级越高;
垃圾回收单元320,用于当所述SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收;其中,该组内的块的第二状态参数的值越低,该块进行垃圾回收的优先级越高。
在可选实施例中,所述SSD包括一个或多个颗粒,各颗粒被划分为多个部分;
相应地,所述分组单元310,具体用于对于任一部分,根据该部分中各块的第一状态参数对该部分中各块进行分组。
在可选实施例中,所述第一状态参数为有效数据占比;所述第二状态参数为擦除次数;
相应地,所述分组单元310,具体用于对于任一块,当该块中的有效数据占比大于等于阈值threshold[x],且小于阈值threshold[x+1]时,将该块加入组x;
其中,x>0,阈值threshold[1]等于0,阈值threshold[x+1]>阈值threshold[x];
所述垃圾回收单元320,用于按照该组内各块的擦除次数从少到多的顺序对各块进行垃圾回收。
在可选实施例中,所述第一状态参数为擦除次数;所述第二状态参数为有效数据占比;
所述分组单元310,具体用于对于任一块,当该块中的有效数据占比大于等于阈值threshold[x],且小于阈值threshold[x+1]时,将该块加入组x;
其中,x>0,阈值threshold[1]等于0,阈值threshold[x+1]>阈值threshold[x];
所述垃圾回收单元320,具体用于按照该组内各块的擦除次数从少到多的顺序对各块进行垃圾回收。
在可选实施例中,所述分组单元310,具体用于当中央处理单元CPU的负载小于预设阈值时,根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过根据SSD中各块的第一状态参数对SSD中各块进行分组,当SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收,提高了垃圾回收的效率,并提高了垃圾回收的精确度。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种垃圾回收方法,应用于固态硬盘SSD,其特征在于,该方法包括:
在对SSD进行垃圾回收之前,根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组;其中,组的级别越高,该组内的块的第一状态参数的值越低,该组进行垃圾回收时的优先级越高;
当所述SSD确定需要进行垃圾回收时,根据各组进行垃圾回收时的优先级从高到低的顺序对各组中的块进行垃圾回收;
当所述SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收;其中,该组内的块的第二状态参数的值越低,该块进行垃圾回收的优先级越高。
2.根据权利要求1所述的方法,其特征在于,所述SSD包括一个或多个颗粒,各颗粒被划分为多个部分;
所述根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组,包括:
对于任一部分,根据该部分中各块的第一状态参数对该部分中各块进行分组。
3.根据权利要求1所述的方法,其特征在于,所述第一状态参数为有效数据占比;所述第二状态参数为擦除次数;
所述根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组,包括:
对于任一块,当该块中的有效数据占比大于等于阈值threshold[x],且小于阈值threshold[x+1]时,将该块加入组x;
其中,x>0,阈值threshold[1]等于0,阈值threshold[x+1]>阈值threshold[x];
所述根据该组内各块的第二状态参数对各块进行垃圾回收,包括:
按照该组内各块的擦除次数从少到多的顺序对各块进行垃圾回收。
4.根据权利要求1所述的方法,其特征在于,所述第一状态参数为擦除次数;所述第二状态参数为有效数据占比;
所述根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组,包括:
对于任一块,当该块的擦除次数大于等于阈值threshold[y],且小于阈值threshold[y+1]时,将该块加入组y;
其中,y>0,阈值threshold[1]等于0,阈值threshold[y+1]>阈值threshold[y];
所述根据该组内各块的第二状态参数对各块进行垃圾回收,包括:
按照该组内各块中的有效数据占比从少到多的顺序对各块进行垃圾回收。
5.根据权利要求1所述的方法,其特征在于,所述根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组,包括:
当中央处理单元CPU的负载小于预设阈值时,根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组。
6.一种垃圾回收装置,应用于固态硬盘SSD,其特征在于,该装置包括:
分组单元,用于在对SSD进行垃圾回收之前,根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组;其中,组的级别越高,该组内的块的第一状态参数的值越低,该组进行垃圾回收时的优先级越高;
垃圾回收单元,用于当所述SSD确定需要进行垃圾回收时,根据各组进行垃圾回收时的优先级从高到低的顺序对各组中的块进行垃圾回收;当所述SSD需要对任一组进行垃圾回收时,根据该组内各块的第二状态参数对各块进行垃圾回收;其中,该组内的块的第二状态参数的值越低,该块进行垃圾回收的优先级越高。
7.根据权利要求6所述的装置,其特征在于,所述SSD包括一个或多个颗粒,各颗粒被划分为多个部分;
所述分组单元,具体用于对于任一部分,根据该部分中各块的第一状态参数对该部分中各块进行分组。
8.根据权利要求6所述的装置,其特征在于,所述第一状态参数为有效数据占比;所述第二状态参数为擦除次数;
所述分组单元,具体用于对于任一块,当该块中的有效数据占比大于等于阈值threshold[x],且小于阈值threshold[x+1]时,将该块加入组x;
其中,x>0,阈值threshold[1]等于0,阈值threshold[x+1]>阈值threshold[x];
所述垃圾回收单元,用于按照该组内各块的擦除次数从少到多的顺序对各块进行垃圾回收。
9.根据权利要求6所述的装置,其特征在于,所述第一状态参数为擦除次数;所述第二状态参数为有效数据占比;
所述分组单元,具体用于对于任一块,当该块中的有效数据占比大于等于阈值threshold[x],且小于阈值threshold[x+1]时,将该块加入组x;
其中,x>0,阈值threshold[1]等于0,阈值threshold[x+1]>阈值threshold[x];
所述垃圾回收单元,具体用于按照该组内各块的擦除次数从少到多的顺序对各块进行垃圾回收。
10.根据权利要求6所述的装置,其特征在于,
所述分组单元,具体用于当中央处理单元CPU的负载小于预设阈值时,根据所述SSD中各块的第一状态参数对所述SSD中各块进行分组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710632349.0A CN107544754B (zh) | 2017-07-28 | 2017-07-28 | 一种垃圾回收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710632349.0A CN107544754B (zh) | 2017-07-28 | 2017-07-28 | 一种垃圾回收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107544754A CN107544754A (zh) | 2018-01-05 |
CN107544754B true CN107544754B (zh) | 2021-05-25 |
Family
ID=60971197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710632349.0A Active CN107544754B (zh) | 2017-07-28 | 2017-07-28 | 一种垃圾回收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107544754B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109496300B (zh) * | 2018-03-23 | 2021-11-19 | 华为技术有限公司 | 一种存储介质垃圾回收方法、存储介质和程序产品 |
KR20200068259A (ko) * | 2018-12-05 | 2020-06-15 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
CN109739776B (zh) * | 2018-12-06 | 2023-06-30 | 天津津航计算技术研究所 | 用于NAND Flash主控芯片的Greedy垃圾回收系统 |
CN110597251B (zh) * | 2019-09-03 | 2022-10-25 | 三星电子(中国)研发中心 | 用于控制智能移动设备的方法及装置 |
CN114415949B (zh) * | 2021-12-31 | 2024-03-01 | 山东云海国创云计算装备产业创新中心有限公司 | 扫描回收block方法、系统、存储介质及设备 |
CN115904264B (zh) * | 2023-03-13 | 2023-06-13 | 浪潮电子信息产业股份有限公司 | 一种存储系统中块的垃圾数据回收方法、装置以及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902465A (zh) * | 2014-03-19 | 2014-07-02 | 华为技术有限公司 | 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器 |
US8788778B1 (en) * | 2012-06-04 | 2014-07-22 | Western Digital Technologies, Inc. | Garbage collection based on the inactivity level of stored data |
CN105528301A (zh) * | 2015-12-07 | 2016-04-27 | 中国人民解放军信息工程大学 | 一种NAND Flash闪存垃圾回收方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102467032B1 (ko) * | 2015-10-08 | 2022-11-14 | 삼성전자주식회사 | 메모리 스케줄링 방법 및 메모리 시스템의 동작방법 |
CN106339324B (zh) * | 2016-08-19 | 2019-05-10 | 浪潮(北京)电子信息产业有限公司 | 一种选择垃圾回收块的方法及装置 |
-
2017
- 2017-07-28 CN CN201710632349.0A patent/CN107544754B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8788778B1 (en) * | 2012-06-04 | 2014-07-22 | Western Digital Technologies, Inc. | Garbage collection based on the inactivity level of stored data |
CN103902465A (zh) * | 2014-03-19 | 2014-07-02 | 华为技术有限公司 | 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器 |
CN106681934A (zh) * | 2014-03-19 | 2017-05-17 | 华为技术有限公司 | 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器 |
CN105528301A (zh) * | 2015-12-07 | 2016-04-27 | 中国人民解放军信息工程大学 | 一种NAND Flash闪存垃圾回收方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107544754A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107544754B (zh) | 一种垃圾回收方法及装置 | |
US10552317B2 (en) | Cache allocation in a computerized system | |
EP2939119B1 (en) | Dynamic overprovisioning for data storage systems | |
KR101324688B1 (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
US10289317B2 (en) | Memory apparatus and methods thereof for write amplification aware wear leveling | |
US11429284B2 (en) | Data categorization based on invalidation velocities | |
WO2015145532A1 (ja) | ストレージシステム及びデータ処理方法 | |
CN107092563B (zh) | 一种垃圾回收方法及装置 | |
WO2013076763A1 (en) | Storage system and control method of storage system | |
US20120317337A1 (en) | Managing data placement on flash-based storage by use | |
Agarwal et al. | A closed-form expression for write amplification in nand flash | |
DE102013106242A1 (de) | Halbleiterlaufwerk mit Konvertierungsschicht (ETL) und Umleitung von temporären Dateien zur Verschleissminderung von Flashspeichern | |
CN109144885B (zh) | 固态存储设备的垃圾回收方法与固态存储设备 | |
JP2012533813A (ja) | コンピュータのメモリ・デバイスに関するメモリ管理システム、コンピュータによって実装される方法、およびコンピュータ・プログラム | |
US11416162B2 (en) | Garbage collection method and storage device | |
CN107515728B (zh) | 发挥闪存设备内部并发特性的数据管理方法和装置 | |
CN109558334B (zh) | 垃圾数据回收方法及固态存储设备 | |
Yong et al. | {vStream}: Virtual Stream Management for Multi-streamed {SSDs} | |
CN111538680A (zh) | 基于逻辑饱和度选择用于垃圾收集的大容量存储装置流 | |
CN116737064A (zh) | 一种固态硬盘的数据管理方法和系统 | |
CN112068777A (zh) | 数据存储介质的管理方法、系统、终端设备及存储介质 | |
US10007601B2 (en) | Data storage device and operating method for flash memory | |
CN106569728B (zh) | 多磁盘阵列raid共享写缓存的处理方法及装置 | |
CN109086223B (zh) | 一种控制垃圾回收的方法和装置 | |
CN108572924B (zh) | 一种3d mlc闪存设备的请求处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Xinhua Sanxin Information Technology Co., Ltd. Address before: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province Applicant before: Huashan Information Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |