用于固态硬盘垃圾回收受害块的选择方法

文档序号:24638850发布日期:2021-04-09 20:50阅读:112来源:国知局
用于固态硬盘垃圾回收受害块的选择方法

本发明属于计算机存储系统设计技术领域,具体涉及用于固态硬盘垃圾回收受害块的选择方法。



背景技术:

在现代计算机系统中,由于处理器性能提升很快,而存储器性能提升缓慢,造成存储系统逐渐成为性能瓶颈,即所谓的计算存储性能墙。以nand闪存芯片为存储介质的固态硬盘ssd使得此问题得到一定程度的缓解,因而它已经成为主流存储设备和存储领域的研究热点。

由于nand闪存存在异地更新和写前擦除的固有特性,使得ssd在写入一段时间后需要进行内部垃圾回收(gc:garbagecollection)来获得新的可用空间。垃圾回收操作在选定受害块(vb:victimblock)以后,需要将块中的有效页迁移至其他空闲空间,然后擦除选定的受害块以获得一个可重新写入的空闲块。有效页的迁移以及块擦除一方面可能会影响ssd服务主机端io请求,降低ssd的性能;另一方面,也造成额外的页写,增加ssd的磨损,影响ssd的寿命。因此,垃圾回收对ssd的性能和寿命有直接的影响。

gc涉及的一个关键之处就是如何选择vb。目前,主要分为基于效率的贪婪选择方式和考虑磨损均衡的综合选择方式两种。贪婪选择方式只考虑回收效率,选择无效页最多的块作为vb,这样一次垃圾回收可以获得最多的空闲页。采用这种方式选择回收块后,闪存块的磨损均衡,留待磨损均衡模块处理。与基于效率的贪婪选择vb不同的是,考虑磨损均衡的vb综合选择方式在选择回收块时,需要在块的回收效率、磨损程度以及数据冷热等多个因素之间进行权衡。

事实上,ssd的磨损均衡和垃圾回收之间存在紧密的联系。垃圾回收的目的是获得立即可用的空间,磨损均衡表面上的目的,使得各个数据块的擦除次数更为均衡,其实质是获得未来可以用的空间。因此,如果能将垃圾回收和磨损均衡进行统一,就能够提升ssd的性能和寿命。

例如,申请号为cn201910751746.9的中国发明专利所述的支持两种位宽的磨损均衡垃圾回收加速装置,包括数据读取模块、最值生成模块、配置模块、数据总线和控制总线,配置模块给出数据读取信息和最值生成信息,发起数据读取,等待最值生成后将比较结果反馈给系统总线,数据读取模块根据来自配置模块的数据读取信息从数据总线读取相应地址的块信息表的内容,最值生成模块,根据配置模块给出的最值生成信息将从数据读取模块进入的数据迭代比较最终得到最值索引。虽然采用硬件加速策略帮助实现磨损均衡和垃圾回收,可支持两种总线位宽和两种固件结构体大小的自由组合,减少flash每次擦写所耗时间,提高闪存的使用效率和使用寿命,但是其缺点在于采用硬件加速策略导致方案成本较高,不利于实际的推广应用,且上述方案并没有实现垃圾回收和磨损均衡的相统一。



技术实现要素:

本发明是为了克服现有技术中,现有固态硬盘垃圾回收受害块的选择方式,存在无法实现垃圾回收和磨损均衡相统一问题,提供了一种能够实现垃圾回收和磨损均衡的相统一,从而提升ssd性能和使用寿命的用于固态硬盘垃圾回收受害块的选择方法。

为了达到上述发明目的,本发明采用以下技术方案:

用于固态硬盘垃圾回收受害块的选择方法,包括如下步骤:

s1,在固态硬盘ssd触发垃圾回收后,遍历所有块,计算每个块的收益b;

s2,在所有块的收益b计算完成后,挑选收益b最大的块作为回收块。

作为优选,步骤s1包括如下步骤:

s11,若计算的块包含空闲页,则定义该块的收益b=0。

作为优选,步骤s1还包括如下步骤:

s12,若计算的块不包含空闲页,则统计所述块中的有效页数量nvp,计算当前收益然后执行下一步骤,其中np为每个块包含的总页数;

s13,计算所述块的未来收益然后执行下一步骤,其中,emax和emin分别表示所有块的最大擦除次数和最小擦除次数,ne表示所选定的块的擦除次数,ρ为正数,用于建模折现损失;

s14,计算所述块的收益b=β×bc+(1-β)×bf,其中,β为权重系数,取值范围是0到1,用于平衡未来收益和当前收益的重要性。

作为优选,步骤s12中所述当前收益bc反映的是,回收所述块能够立即获得的可用空间的多少,所述当前收益bc的取值范围为0到1之间的正数。

作为优选,步骤s13中所述未来收益bf反映的是,未来的可用空间的多少,所述未来收益bf的取值范围为0到1之间的正数。

作为优选,步骤s2还包括如下步骤:

若收益b最大的块存在多个,则随机挑选其中的一个块作为回收块。

本发明与现有技术相比,有益效果是:(1)本发明能够通过将闪存块的未来可写入量折算到现在,避免了擦除次数较少的块因无效页较少不会被选择成vb的弊端;(2)本发明能够保证在进行垃圾回收的vb选择时,考虑闪存块的磨损均衡,实现垃圾回收和磨损均衡的相统一,从而提升ssd性能和寿命。

附图说明

图1为本发明用于固态硬盘垃圾回收受害块的选择方法的一种流程图;

图2为本发明用于固态硬盘垃圾回收受害块的选择方法的一种具体案例流程图。

具体实施方式

为了更清楚地说明本发明实施例,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

实施例1:

如图1所示,本发明提供了一种用于固态硬盘垃圾回收受害块的选择方法,包括如下步骤:

s1,在固态硬盘ssd触发垃圾回收后,遍历所有块,计算每个块的收益b。

步骤s1又具体分为以下步骤:

s11,若计算的块包含空闲页,则定义该块的收益b=0;

s12,若计算的块不包含空闲页,则统计所述块中的有效页数量nvp,计算当前收益然后执行下一步骤,其中np为每个块包含的总页数;

s13,计算所述块的未来收益然后执行下一步骤,其中,emax和emin分别表示所有块的最大擦除次数和最小擦除次数,ne表示所选定的块的擦除次数,ρ为正数,用于建模折现损失;

s14,计算所述块的收益b=β×bc+(1-β)×bf,其中,β为权重系数,取值范围是0到1,用于平衡未来收益和当前收益的重要性。

s2,在所有块的收益b计算完成后,挑选收益b最大的块作为回收块;若收益b最大的块存在多个,则随机挑选其中的一个块作为回收块。

其中,步骤s12中所述当前收益bc反映的是,回收所述块能够立即获得的可用空间的多少,所述当前收益bc的取值范围为0到1之间的正数;步骤s13中所述未来收益bf反映的是,未来的可用空间的多少,所述未来收益bf的取值范围为0到1之间的正数。

本发明方法具体应用到实际案例的过程,如图2所示。

在图2中,假设在8个块中选择vb块,每个块包含4个物理页,在可用空间低于0.2时触发垃圾回收;blockx_y表示块x已经擦除y次,例如,block0_4表示块0已经擦除4次。

回收块选择如图2所示,步骤a(1)和a(2)选择无效页最多的块为回收块,这也是传统的vb选择方法;步骤b(1)和b(2)按照本发明提出的方法选择回收块。整个过程除了垃圾回收以外,还包括三次页更新操作。

利用传统的vb选择方法,选择无效页最多的块作为回收块:

一开始空闲页数为6,总页数为32,6/32=0.19<0.2产生垃圾回收。

步骤a(1),选择无效页最多的块1作为回收块,需要迁移一个页(迁移至块6的页2),块1的擦除次数变为6。

步骤a(2),块4的页0、块4的页1和块6的页1,这三个页发生更新,分别写入块6的页3,块7的页0,块7的页1。空闲页剩余6,再次触发垃圾回收。

步骤a(3),选择无效页最多的块4作为垃圾回收,需要迁移一个页(迁移至块7的页2),块4的擦除次数变为7。整个过程结束,闪存的擦除标准差为1.90。

利用本发明提出的方法选择回收块:

一开始空闲页为6,总页数为32,6/32=0.19<0.2产生垃圾回收。(本实施例中取β=0.6,ρ=0.5)

步骤b(1),8个块的收益分别为:0.32,0.45,0.70,0.65,0.15,0.15,0,0。选择得分最高的块2为回收块,需要迁移两个页(迁移至块6的页2和块6的页3),块2的擦除次数变为2。

步骤b(2),块4的页0,块4的页1,两个页发生更新,分别写入块7的页0,块7的页1。空闲页剩余6,再次触发垃圾回收。

步骤b(3),8个块的收益分别为:0.34,0.45,0,0.70,0,45,0.15,0.32,0。选择得分最高的块3为回收块,需要迁移两个页(迁移至块7的页2和块7的页3),块3的擦除次数变为3。块6的页1更新写入块2的页0。整个过程结束,闪存的擦除标准差为1.26

本发明主要解决固态硬盘垃圾回收过程中的受害块(vb)的选择问题,基本思路是在选择vb时,综合考虑每个块的当前收益(即当前可得到的空闲空间)和未来收益(即未来可写入的数据量),提出统一的评分标准,选择得分最高的块作为回收块,从而使得垃圾回收操作和磨损均衡操作得到统一,达到提升ssd性能和寿命的效果。

以上所述仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1