System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 垃圾回收方法、闪存设备控制器及闪存设备技术_技高网

垃圾回收方法、闪存设备控制器及闪存设备技术

技术编号:40827901 阅读:2 留言:0更新日期:2024-04-01 14:49
本申请涉及存储设备应用技术领域,公开了一种垃圾回收方法、闪存设备控制器及闪存设备,该垃圾回收方法,通过构建第一命令列表和第二命令列表,该第二命令列表包括至少一个逻辑块地址组,通过利用每一个逻辑块地址组的权重来确定第一逻辑块地址组,进一步通过确定第一逻辑块地址组包含的地址范围对应的数据至少部分存在于第二超级块中,以确定第二超级块为即将失效的数据所在的超级块,从而不对第二超级块进行数据搬移,本申请能够减少对即将失效的数据的搬移,从而减小写放大,进而延长闪存设备的使用寿命。

【技术实现步骤摘要】

本申请实施方式涉及存储设备应用,特别是涉及一种垃圾回收方法、闪存设备控制器及闪存设备


技术介绍

1、应用程序在对存储端下发业务时,通常包含删除某些数据的业务,比如客户需要定期淘汰一些数据,写入更新的数据或者其他数据。对于存储端由ssd组成或者包含ssd时,由于nand的特性,通常会将相同lba的数据写入到不同的位置。ssd在进行垃圾回收(garbage collection,gc)的时候,搬移物理块(block)上的有效数据到其他block,然后擦除原block,从而回收nand资源。

2、目前,现有技术的方案是在由ssd组成或者包含ssd的存储系统中,在支持trim环境中,当删除某些lba对应的数据时,主机会给ssd下发相应的trim命令,ssd就能够在相同lba范围未下发写其它数据之前,判定该trim命令对应的数据是无效的,gc时无需搬移无效数据,从而减小写放大、增加ssd寿命。

3、但是该方案存在的缺陷为:当主机分批次下发trim命令,若固态硬盘没有全部接收到物理块对应的所有trim命令就对物理块进行搬移,此时容易导致垃圾回收会搬移即将失效的数据,从而导致加大固态硬盘的写放大。


技术实现思路

1、本申请实施例提供一种垃圾回收方法、闪存设备控制器及闪存设备,以减少对即将失效数据的搬移,从而减小写放大,延长固态硬盘的使用寿命。

2、本申请实施例提供以下技术方案:

3、第一方面,本申请实施例提供一种垃圾回收方法,应用于闪存设备,闪存设备包括至少两个超级块,该垃圾回收方法包括:

4、构建第一命令列表,其中,第一命令列表包括至少一个修剪命令以及每一个修剪命令一一对应的地址范围、命令下发时间;

5、根据每一个修剪命令的命令下发时间,构建第二命令列表,其中,第二命令列表包括至少一个逻辑块地址组,每一个逻辑块地址组包括至少两个修剪命令,每一个逻辑块地址组一一对应一个权重;

6、获取第一超级块组,其中,第一超级块组包括至少两个第一超级块;

7、根据每一逻辑块地址组的权重,确定第一逻辑块地址组,以确定若干个第二超级块,其中,第一逻辑块地址组包含的地址范围对应的数据至少部分存在于第二超级块中;

8、根据第一超级块组以及若干个第二超级块,确定第三超级块,对第三超级块进行垃圾回收操作。

9、在一些实施例中,根据每一个修剪命令的命令下发时间,构建第二命令列表,包括:

10、每间隔固定时间扫描第一命令列表,获取每一个修剪命令的命令下发时间;

11、若第一命令列表中存在两个或两个以上的修剪命令的命令下发时间之差小于时间阈值,则获取修剪命令对应的地址范围;

12、将修剪命令对应的地址范围存储至逻辑块地址组,以构建第二命令列表,其中,每一个逻辑块地址组中的任意两个修剪命令的命令下发时间的差值小于时间阈值。

13、在一些实施例中,在将修剪命令对应的地址范围存储至逻辑块地址组之后,方法还包括:

14、将修剪命令对应的地址范围和所述修剪命令的下发时间从第一命令列表中删除,得到空闲位置,其中,空闲位置用于存储下一个修剪指令对应的地址范围和下一个修剪命令的命令下发时间。

15、在一些实施例中,方法还包括:

16、若修剪命令对应的地址范围已存在于第二命令列表,则获取逻辑块地址组的删除频度和逻辑块地址组中每一地址范围对应的命令下发时间,其中,删除频度为逻辑块地址组中的数据被删除的次数;

17、根据逻辑块地址组中每一地址范围对应的命令下发时间,计算间隔时间;

18、根据间隔时间的平均值和时间间隔阈值,确定间隔时间的等级值;

19、根据预设规则更新逻辑块地址组的权重,得到更新后的权重,其中,更新后的权重=(逻辑块地址组的删除频度+频度粒度)*第一系数+间隔时间的等级值*第二系数。

20、在一些实施例中,根据间隔时间的平均值和时间间隔阈值,确定间隔时间的等级值,包括:

21、若间隔时间的平均值小于或等于时间间隔阈值的第一比例时,则将间隔时间的等级值确定为第一等级值;

22、若间隔时间的平均值大于时间间隔阈值的第一比例,并且,小于或等于时间间隔阈值的第二比例时,则将间隔时间的等级值确定为第二等级值,其中,第二等级值小于第一等级值;

23、若间隔时间的平均值大于时间间隔阈值的第二比例时,则将间隔时间的等级值确定为第三等级值,其中,第三等级值小于第二等级值。

24、在一些实施例中,获取第一超级块组,包括:

25、获取有效数据页的个数最小的超级块,将有效数据页的个数最小的超级块确定为最小超级块;

26、根据最小超级块,确定若干个第一超级块,进而获取第一超级块组,其中,第一超级块组中的任意一个第一超级块的有效数据页的个数与最小超级块的有效数据页的个数之差小于个数阈值,其中,个数阈值=有效数据页的个数的比例阈值*最小超级块的有效数据页的个数。

27、在一些实施例中,根据每一逻辑块地址组的权重,确定第一逻辑块地址组,以确定若干个第二超级块,包括:

28、获取每一逻辑块地址组的权重;

29、若逻辑块地址组的权重大于权重阈值,则获取逻辑块地址组中的修剪命令对应的地址范围;

30、根据逻辑块地址组中的修剪命令对应的地址范围,确定第一逻辑块地址组,其中,第一逻辑块地址组包括至少一个修剪命令对应的地址范围;

31、根据第一逻辑块地址组中的地址范围,获取地址范围对应的第一数据;

32、若地址范围对应的第一数据存储于第一超级块组中的第一超级块,则确定第一超级块为第二超级块。

33、在一些实施例中,根据第一超级块组以及若干个第二超级块,确定第三超级块,包括:

34、将第一超级块组以及若干个第二超级块进行比对,若第二超级块为第一超级块组中的超级块,则将第二超级块从第一超级块组中删除,得到处理后的第一超级块组;

35、根据处理后的第一超级块组,确定第三超级块。

36、第二方面,本申请实施例提供一种闪存设备控制器,包括:

37、至少一个处理器;和

38、与至少一个处理器通信连接的存储器;其中,

39、存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面的垃圾回收方法。

40、第三方面,本申请实施例提供一种闪存设备,包括:

41、如第二方面的闪存设备控制器;

42、与闪存设备控制器通信连接的至少一个闪存介质。

43、第四方面,本申请实施例提供一种非易失性计算机可读存储介质,非易失性计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使闪存设备执行如第一方面的垃圾回收方法。

44、本申请实施方式的有益效果本文档来自技高网...

【技术保护点】

1.一种垃圾回收方法,其特征在于,应用于闪存设备,所述闪存设备包括至少两个超级块,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据每一个修剪命令的命令下发时间,构建第二命令列表,包括:

3.根据权利要求2所述的方法,其特征在于,在将所述修剪命令对应的地址范围存储至逻辑块地址组之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述间隔时间的平均值和时间间隔阈值,确定所述间隔时间的等级值,包括:

6.根据权利要求1所述的方法,其特征在于,所述获取第一超级块组,包括:

7.根据权利要求1所述的方法,其特征在于,所述根据每一逻辑块地址组的权重,确定第一逻辑块地址组,以确定若干个第二超级块,包括:

8.根据权利要求1所述的方法,其特征在于,所述根据所述第一超级块组以及若干个所述第二超级块,确定第三超级块,包括:

9.一种闪存设备控制器,其特征在于,包括:

10.一种闪存设备,其特征在于,包括:

...

【技术特征摘要】

1.一种垃圾回收方法,其特征在于,应用于闪存设备,所述闪存设备包括至少两个超级块,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据每一个修剪命令的命令下发时间,构建第二命令列表,包括:

3.根据权利要求2所述的方法,其特征在于,在将所述修剪命令对应的地址范围存储至逻辑块地址组之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述间隔时间的平均值和时间...

【专利技术属性】
技术研发人员:苟铎
申请(专利权)人:成都大普微聚科技有限公司
类型:发明
国别省市:

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

1