垃圾回收方法、装置、可读存储介质及电子设备转让专利

申请号 : CN202110029352.X

文献号 : CN112817879B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙成思孙日欣邓羽高嵊昊

申请人 : 成都佰维存储科技有限公司

摘要 :

本发明公开了垃圾回收方法、装置、可读存储介质及电子设备,通过获取待回收超级块中页的并行度,根据页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数,根据平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取,从而将每次需要进行读取操作的有效数据页平均分配到每一个逻辑单元号上,使每个逻辑单元号上读取操作的有效数据页相同,使每个逻辑单元号上读取操作所消耗的时间相同,最大限度的将读取消耗的时间相互覆盖,显著地提高了垃圾回收过程中读取数据的效率,提高整个垃圾回收的效率。

权利要求 :

1.垃圾回收方法,其特征在于,包括步骤:

获取待回收超级块中页的并行度;

根据所述页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数;

根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取;

所述根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取包括:根据所述平均数据页读取个数从每一逻辑单元号的预设层选择对应个数的有效数据页进行数据读取,若当前所选择的目标层的有效数据页个数小于所述平均数据页读取个数,从其它层选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取;

或者根据所述平均数据页读取个数从每一逻辑单元号中按照数据页的编号顺序选择对应个数的有效数据页进行数据读取。

2.根据权利要求1所述的垃圾回收方法,其特征在于,所述根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取包括:根据所述平均数据页读取个数从每一逻辑单元号的每一层中选择一个有效数据页进行数据读取。

3.根据权利要求2所述的垃圾回收方法,其特征在于,还包括步骤:当当前要进行数据读取的层上不存在有效数据页时,从其它层选择一个有效数据页进行数据读取。

4.根据权利要求3所述的垃圾回收方法,其特征在于,所述从其它层选择一个有效数据页进行数据读取包括:判断所述当前要进行数据读取的层所在的目标逻辑单元号的其它层是否存在有效数据页,若存在,则从所述目标逻辑单元号的其它层选择一个有效数据页进行数据读取;若不存在,则从其它逻辑单元号选择一个有效数据页进行数据读取直至所述待回收超级块中的所有有效数据页均被读取。

5.根据权利要求2至4中任一项所述的垃圾回收方法,其特征在于,所述选择一个有效数据页包括:按照数据页的编号顺序选择一个有效数据页。

6.根据权利要求1所述的垃圾回收方法,其特征在于,所述从其它层选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取包括:确定当前所选取的目标层的有效数据页个数与所述平均数据页读取个数的差值;

判断所述目标层所在的逻辑单元号的其它层是否具有与所述差值对应个数的有效数据页,若是,从所述目标层所在的逻辑单元号的其它层选择所述差值对应个数的有效数据页进行数据读取;若否,从其它逻辑单元号选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取。

7.一种垃圾回收装置,其特征在于,包括:

并行度获取模块,用于获取待回收超级块中页的并行度;

数据运算模块,用于根据所述页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数;

数据读取模块,用于根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取;

所述根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取包括:根据所述平均数据页读取个数从每一逻辑单元号的预设层选择对应个数的有效数据页进行数据读取,若当前所选择的目标层的有效数据页个数小于所述平均数据页读取个数,从其它层选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取;

或者根据所述平均数据页读取个数从每一逻辑单元号中按照数据页的编号顺序选择对应个数的有效数据页进行数据读取。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1‑6任意一项所述的垃圾回收方法中的各个步骤。

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1‑6任意一项所述的垃圾回收方法中的各个步骤。

说明书 :

垃圾回收方法、装置、可读存储介质及电子设备

技术领域

[0001] 本发明涉及存储器数据管理领域,特别涉及垃圾回收方法、装置、可读存储介质及电子设备。

背景技术

[0002] 垃圾回收(Garbage Collection,GC)是指把现存数据重新转移到NAND(计算机闪存设备)上的其他位置,并且把一些无用的数据彻底删除的过程,因此在垃圾回收过程中,需要将有效的数据从旧的超级块上读取出来,并写入到新的超级块上。如图1所示,若一个超级块共有2个LUN(Logical Unit Number,逻辑单元号),每个LUN上有两个plane(层,每个plane即为一个存储矩阵),每一横排有4个page(数据页),用灰色和白色代表每个page的状态,白色表示有效数据,灰色表示无效数据,通常的垃圾回收做法为按照物理顺序依次读出有效数据写到其他的超级块上,以图1为例,那么读有效数据的顺序为:1、3、5、6以此类推。
[0003] 根据NAND的特性,不同LUN上的命令采用并行处理,同一个LUN上的命令采用串行处理,即不同LUN上的命令可以同时进行,但同一个LUN上的命令需要等上一个命令完成才能开始下一个命令。当进行垃圾回收时,若每次读取的数据量为4个page,每次读取一个page的时间Tr为50微妙,则第一轮垃圾回收读取的数据为(1,3,5,6),LUN0为(1,5,6),为LUN1(3),LUN0上读取操作消耗的时间为150微秒,LUN1上读取操作消耗的时间为50微秒,第一轮读取操作消耗的总时间为150微秒,整个超级块完成读取操作消耗的时间如图2所示。从图2中可以看出第一、二、四、六轮中,当有效数据分布不均衡的情况下,一个LUN上的数据过多,而另一个LUN上的数据过少,因此数据过少的LUN上的读取操作的时间被浪费了,而数据过多的LUN上的读取操作的时间过长,导致垃圾回收的读取操作效率不高。

发明内容

[0004] 本发明所要解决的技术问题是:提供垃圾回收方法、装置、可读存储介质及电子设备,用于解决现有技术中垃圾回收的效率低的问题。
[0005] 为了解决上述技术问题,本发明采用的技术方案为:
[0006] 垃圾回收方法,包括步骤:
[0007] 获取待回收超级块中页的并行度;
[0008] 根据所述页的并行度得到超级块上每一逻辑单元号的每轮预设读取次数;
[0009] 每一逻辑单元号根据所述每轮预设读取次数,并按照预设读取方式对每一逻辑单元号上的有效数据页进行读取。
[0010] 为了解决上述技术问题,本发明采用的另一种技术方案为:
[0011] 一种垃圾回收装置,包括:
[0012] 并行度获取模块,用于获取待回收超级块中页的并行度;
[0013] 数据运算模块,用于根据所述页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数;
[0014] 数据读取模块,用于根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取。
[0015] 为了解决上述技术问题,本发明采用的另一种技术方案为:
[0016] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述垃圾回收方法中的各个步骤。
[0017] 为了解决上述技术问题,本发明采用的另一种技术方案为:
[0018] 一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述垃圾回收方法中的各个步骤。
[0019] 本发明的有益效果在于:通过获取待回收超级块中页的并行度,根据所述页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数,根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取,将每次需要进行读取操作的有效数据页平均分配到每一个逻辑单元号上,使每个逻辑单元号上读取操作的有效数据页相同,从而使每个逻辑单元号上读取操作所消耗的时间相同,最大限度的将读取消耗的时间相互覆盖,显著地提高了垃圾回收过程中读取数据的效率,提高整个垃圾回收的效率。

附图说明

[0020] 图1为超级块上有效数据页分布示意图;
[0021] 图2为现有技术中垃圾回收数据读取操作耗时表;
[0022] 图3为本发明实施例的垃圾回收方法的步骤流程示意图;
[0023] 图4为本发明实施例的垃圾回收方法的一种读取顺序示意图;
[0024] 图5为本发明实施例的垃圾回收方法的另一种读取顺序示意图;
[0025] 图6为本发明实施例的垃圾回收方法的另一种读取顺序示意图;
[0026] 图7为本发明实施例的垃圾回收方法的另一种读取顺序示意图;
[0027] 图8为另一种超级块上有效数据页分布示意图;
[0028] 图9为本发明实施例的垃圾回收方法的另一种读取顺序示意图;
[0029] 图10为本发明实施例的一种垃圾回收装置的结构示意图;
[0030] 图11为本发明实施例的一种电子设备的结构示意图。

具体实施方式

[0031] 为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0032] 请参照图3,本发明实施例提供了垃圾回收方法,包括步骤:
[0033] 获取待回收超级块中页的并行度;
[0034] 根据所述页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数;
[0035] 根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取。
[0036] 由上述描述可知,本发明的有益效果在于:通过获取待回收超级块中页的并行度,根据页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数,根据平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取,将每次需要进行读取操作的有效数据页平均分配到每一个逻辑单元号上,使每个逻辑单元号上读取操作的有效数据页相同,从而使每个逻辑单元号上读取操作所消耗的时间相同,最大限度的将读取消耗的时间相互覆盖,显著地提高了垃圾回收过程中读取数据的效率,提高整个垃圾回收的效率。
[0037] 进一步的,所述根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取包括:
[0038] 根据所述平均数据页读取个数从每一逻辑单元号的每一层中选择一个有效数据页进行数据读取。
[0039] 由上述描述可知,根据平均数据页读取个数从每一逻辑单元号的每一层中选择一个有效数据页进行数据读取,使每一轮进行有效数据页读取时,每一层都进行相同个数的有效数据页读取操作,使得每一轮读取操作时,每一逻辑单元号上都进行相同个数的有效数据页读取操作,由于不同的LUN上的命令是并行处理的,所以保证了各个LUN上每一轮进行数据读取的时间相同,从而整个超级块每一轮的数据读取时间就等于一个LUN进行数据读取的时间,提高了垃圾回收过程中读取数据的效率。
[0040] 进一步的,还包括步骤:
[0041] 当当前要进行数据读取的层上不存在有效数据页时,从其它层选择一个有效数据页进行数据读取。
[0042] 由上述描述可知,当当前要进行数据读取的层上不存在有效数据页时,从其它层选择一个有效数据页进行数据读取,从而保证各个LUN上有效数据页读取个数的一致性,也使得读取操作命令的最大利用化,减少了读取操作总的读取轮数。
[0043] 进一步的,所述从其它层选择一个有效数据页进行数据读取包括:
[0044] 判断所述当前要进行数据读取的层所在的目标逻辑单元号的其它层是否存在有效数据页,若存在,则从所述目标逻辑单元号的其它层选择一个有效数据页进行数据读取;若不存在,则从其它逻辑单元号选择一个有效数据页进行数据读取直至所述待回收超级块中的所有有效数据页均被读取。
[0045] 由上述描述可知,通过对当前要进行数据读取的层所在的目标逻辑单元号上是否还存在有效数据页进行判断,优先从层所在的目标逻辑单元号上选择有效数据页,保证各个LUN上有效数据页读取个数的一致性,从而最大限度的使得每一轮读取操作时,每一逻辑单元号上都进行相同次数的有效数据页读取操作,提高了垃圾回收过程中读取数据的效率。
[0046] 进一步的,所述选择一个有效数据页包括:
[0047] 按照数据页的编号顺序选择一个有效数据页。
[0048] 由上述描述可知,通过按照数据页的编号顺序选择一个有效数据页的方式对有效数据页进行读取,保证有效数据读取的过程更加有序高效。
[0049] 进一步的,所述根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取包括:
[0050] 根据所述平均数据页读取个数从每一逻辑单元号的预设层选择对应个数的有效数据页进行数据读取,若当前所选择的目标层的有效数据页个数小于所述平均数据页读取个数,从其它层选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取;
[0051] 或者根据所述平均数据页读取个数从每一逻辑单元号中按照数据页的编号顺序选择对应个数的有效数据页进行数据读取。
[0052] 由上述描述可知,通过根据平均数据页读取个数从每一逻辑单元号的预设层选择对应个数的有效数据页进行数据读取,或者根据平均数据页读取个数从每一逻辑单元号中按照数据页的编号顺序选择对应个数的有效数据页进行数据读取,从而最大限度的使得每一轮读取操作时,每一逻辑单元号上进都进行相同个数的有效数据页读取操作,提高了垃圾回收过程中读取数据的效率。
[0053] 进一步的,所述从其它层选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取包括:
[0054] 确定当前所选取的目标层的有效数据页个数与所述平均数据页读取个数的差值;
[0055] 判断所述目标层所在的逻辑单元号的其它层是否具有与所述差值对应个数的有效数据页,若是,从所述目标层所在的逻辑单元号的其它层选择所述差值对应个数的有效数据页进行数据读取;若否,继续从其它逻辑单元号选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取。
[0056] 由上述描述可知,通过判断所述目标层所在的逻辑单元号的其它层是否具有与所述差值对应个数的有效数据页,当目标层所在的逻辑单元号上不存在有效数据页时,从其它逻辑单元号选择有效数据页进行数据读取,从而保证了读取操作命令的最大利用化,减少了读取操作总的读取轮数。
[0057] 为了解决上述技术问题,本发明采用的另一种技术方案为:
[0058] 本发明另一实施例提供了一种垃圾回收装置,包括:
[0059] 并行度获取模块,用于获取待回收超级块中页的并行度;
[0060] 数据运算模块,用于根据所述页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数;
[0061] 数据读取模块,用于根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取。
[0062] 本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述垃圾回收方法中的各个步骤。
[0063] 本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述垃圾回收方法中的各个步骤。
[0064] 本发明上述垃圾回收方法、装置、可读存储介质及电子设备能够适用于任何需要进行垃圾回收的存储器,以下通过具体实施方式进行说明:
[0065] 实施例一
[0066] 请参照图3,垃圾回收方法,包括步骤:
[0067] 获取待回收超级块中页的并行度;
[0068] 根据所述页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数;
[0069] 具体的:根据所述平均数据页读取个数从每一逻辑单元号的每一层中选择一个有效数据页进行数据读取;
[0070] 当当前要进行数据读取的层上不存在有效数据页时,从其它层选择一个有效数据页进行数据读取;并按照数据页的编号顺序选择一个有效数据页;
[0071] 本实施例提供一具体运用场景:
[0072] 请参照图1,待回收的超级块上有2个LUN分别为LUN0和LUN1,每个LUN上有两个plane分别为plane0和plane1;
[0073] 通过获取待回收超级块中页的并行度,得到待回收超级块中页的并行度为4;
[0074] 根据页的并行度数据值4,确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数为2,即每一轮LUN0和LUN1上读取的有效数据页数为两个有效数据页;根据所述平均数据页数值2,从每一逻辑单元号的每一层中选择一个有效数据页进行数据读取,即每一轮读取每一LUN中的plane0和plane1分别读取一个有效数据页;
[0075] 请参照图4,按照数据页的编号顺序选择一个有效数据页具体为:第一轮读取的有效数据页为LUN0中plane0上的page1和plane1上的page6,LUN1中plane0上的page3和plane1上的page12;第二轮读取的有效数据页为LUN0中plane0上的page5和plane1上的page10,LUN1中plane0上的page7和plane1上的page20;
[0076] 以此类推,当读取到第六轮时,由于当前要进行数据读取的LUN1中的plane1上不存在有效数据页,因此选择从LUN0中的plane0进行读取,即第六轮读取的有效数据页为LUN0中plane0上的page29及page37和plane1上的page34,LUN1中plane0上的page27;则第七轮读取的有效数据页为LUN1中plane0上的page31、page35和page39,七轮总用时为800微秒,与现有的读取方式相比,提高了100微秒的时间。
[0077] 实施例二
[0078] 本实施例与实施例一的不同在于限定了如何从其它层选择一个有效数据页进行数据读取;
[0079] 判断所述当前要进行数据读取的层所在的目标逻辑单元号的其它层是否存在有效数据页,若存在,则从所述目标逻辑单元号的其它层选择一个有效数据页进行数据读取;若不存在,则从其它逻辑单元号选择一个有效数据页进行数据读取直至所述待回收超级块中的所有有效数据页均被读取;
[0080] 请参照图5,当进行第六轮读取时,由于当前要进行数据读取的LUN1中的plane1上不存在有效数据页,因此对当前LUN1中的PLNAE0中是否存在有效数据页进行判断,此时LUN1中的plane0上还存在有效数据页page31、page35和page39,得到第六轮读取的有效数据页为LUN0中plane0上的page29和plane1上的page34,LUN1中plane0上的page27和page31;当进行第七轮读取时,由于当前要进行数据读取的LUN0中的plane1上不存在有效数据页,因此对当前LUN0中的PLNAE0中是否存在有效数据页进行判断,此时LUN0中不存在有效数据页,因此再对当前LUN1中的PLNAE0中是否存在有效数据页进行判断,而此时LUN1中也不存在有效数据页,即本轮LUN0中的plane1不进行读取,则得到第七轮读取的有效数据页为LUN0中plane0上的page37,LUN1中plane0上的page35和page39;七轮总用时为700微秒,与现有的读取方式相比,提高了200微秒的时间。
[0081] 实施例三
[0082] 本实施例与实施例一或实施例二的不同在于,提供了另一种根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取的方式:
[0083] 根据所述平均数据页读取个数从每一逻辑单元号的预设层选择对应个数的有效数据页进行数据读取,若当前所选择的目标层的有效数据页个数小于所述平均数据页读取个数,从其它层选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取;
[0084] 其中,从其它层选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取包括:
[0085] 确定当前所选取的目标层的有效数据页个数与所述平均数据页读取个数的差值;
[0086] 判断所述目标层所在的逻辑单元号的其它层是否具有与所述差值对应个数的有效数据页,若是,从所述目标层所在的逻辑单元号的其它层选择所述差值对应个数的有效数据页进行数据读取;若否,继续从其它逻辑单元号选择有效数据页进行数据读取直至达到所述平均数据页读取个数或者所述待回收超级块中的所有有效数据页均被读取;
[0087] 请参照图6,根据平均数据页数值2,每一逻辑单元号的预设层选择对应个数的有效数据页进行数据读取,即先对LUN0中的plane0和LUN1中的plane0进行的有效数据页数为2的读取操作;则第一轮读取的有效数据页为LUN0中plane0上的page1和page5,LUN1中plane0上的page3和page7;第二轮读取的有效数据页为LUN0中plane0上的page17和page21,LUN1中plane0上的page15和page19;
[0088] 以此类推,当进行第四轮读取时,由于LUN0中的plane0中存在的有效数据页个数为1,而平均数据页读取个数为2,两者差值为1,进一步判断LUN0中的plane1中是否存在有效数据页,当前LUN0中的plane1存在有效数据页,因此从LUN0中的plane1读取有效数据页,则第四轮读取的有效数据页为LUN0中plane0上的page37和plane1上的page6,LUN1中plane0上的page31和page35;第五轮读取的有效数据页为LUN0中plane1上的page10和page18,LUN1中plane0上的page39和plane1上的page12;
[0089] 当进行第七轮读取时,由于LUN0中的有效数据页个数为1,而平均数据页读取个数为2,两者差值为1,进一步判断LUN1中是否存在有效数据页,此时LUN1中有效数据页个数为0,因此本轮LUN0只读取一个有效数据页,即第七轮读取的有效数据页为LUN0中plane1上的page34,LUN1中plane1上的page32和page40;七轮总用时为700微秒,与现有的读取方式相比,提高了200微秒的时间。
[0090] 实施例四
[0091] 本实施例与实施例一、实施例二或实施例三的不同在于,提供了另一种根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取;
[0092] 根据所述平均数据页读取个数从每一逻辑单元号中按照数据页的编号顺序选择对应个数的有效数据页进行数据读取;
[0093] 请参照图7,具体的:
[0094] 根据所述平均数据页数值2,从LUN0和LUN1中按照数据页的编号顺序选择对应个数的有效数据页进行数据读取;
[0095] 第一轮读取的有效数据页为LUN0中plane0上的page1和plane1上的page5,LUN1中plane0上的page3和plane1上的page7;第二轮读取的有效数据页为LUN0中plane0上的page6和plane1上的page10,LUN1中plane0上的page12和plane1上的page15;以此类推直至达到LUN0和LUN1上的有效数据页均被读取;七轮总用时为700微秒,与现有的读取方式相比,提高了200微秒的时间;
[0096] 请参照图8,当待回收的超级块上有4个逻辑单元的情况时,具体的:
[0097] 请参照图9,通过获取待回收超级块中页的并行度,得到待回收超级块中页的并行度为8;即每一轮LUN0、LUN1、LUN2和LUN3上读取的有效数据页数为两个有效数据页;
[0098] 第一轮至第三轮的读取与上述步骤相同;当进行第四轮读取时,由于LUN0中存在的有效数据页个数为1,而平均数据页读取个数为2,两者差值为1,进一步判断LUN0、LUN1和LUN3中是否存在有效数据页,由于LUN3中存在的有效数据页数大于LUN0和LUN1中的有效数据页数,因此优先选择LUN3中的有效数据页进行读取,则第四轮读取的有效数据页为LUN0中的page57,LUN1中的page36和page43,LUN2中的page29和page30,LUN3中的page31、page32和page39;当进行第五轮读取时,由于LUN0中存在的有效数据页个数为0,而平均数据页读取个数为2,两者差值为2,进一步判断LUN0、LUN1和LUN3中是否存在有效数据页,由于LUN3和LUN2中存在的有效数据页数相等,且大于LUN1,因此优先分别选择LUN2和LUN3中的有效数据页进行读取,则第五轮读取的有效数据页为LUN1中的page51和page52,LUN2中的page38、page45和page46,LUN3中的page40、page47和page48;依次类推,以此类推直至达到LUN0、LUN1、LUN2和LUN3上的有效数据页均被读取;八轮总用时为1000微秒,为读取最短用时;
[0099] 实施例二和实施例三的方法同样可以采用上述方式对包含有效数据页数量多的逻辑单元号进行优先选择。
[0100] 实施例五
[0101] 请参照图10,一种垃圾回收装置,包括:
[0102] 并行度获取模块,用于获取待回收超级块中页的并行度;
[0103] 数据运算模块,用于根据所述页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数;
[0104] 数据读取模块,用于根据所述平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取。
[0105] 实施例六
[0106] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例一至四中任一个中的垃圾回收方法中的各个步骤。
[0107] 实施例七
[0108] 请参照图11,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一至四中任一个中的垃圾回收方法中的各个步骤。
[0109] 综上所述,本发明提供的垃圾回收方法、装置、可读存储介质及电子设备,通过获取待回收超级块中页的并行度,根据页的并行度确定所述待回收超级块上每一逻辑单元号的平均数据页读取个数,根据平均数据页读取个数从每一逻辑单元号选择对应个数的有效数据页进行数据读取,将每次需要进行读取操作的有效数据页平均分配到每一个逻辑单元号上,使每个逻辑单元号上读取操作的有效数据页相同,从而使每个逻辑单元号上读取操作所消耗的时间相同,最大限度的将读取消耗的时间相互覆盖,且当目标层或目标逻辑单元上不存在有效数据页时,通过对单个逻辑单元号中不同层的有效数据页以及不同逻辑单元号中的有效数据页的合理协调使读取操作命令的最大利用化,减少了读取操作总的读取轮数,显著地提高了垃圾回收过程中读取数据的效率,提高整个垃圾回收的效率。
[0110] 在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0111] 所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
[0112] 另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0113] 所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0114] 需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
[0115] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0116] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。