本申请公开了一种磨损均衡控制方法、装置、设备及可读存储介质,该方法包括:从空闲block中选出擦写次数大于擦写阈值的block,并将block加入自平衡二叉树;接收数据写入请求后,判断在自平衡二叉树之外是否存在空闲block;若是,则从自平衡二叉树之外的空闲block中选出目标block;若否,则从自平衡二叉树中选出目标block;将数据写入请求对应的数据写入目标block。如此,SSD内部可以根据擦写阈值这一条件,自动控制稳态时的free block数量,动态调整对block磨损均衡的保护能力。即,以动态调整对block的保护能力,从而保障block的PE保持均衡,使得SSD的使用寿命最佳。使得SSD的使用寿命最佳。使得SSD的使用寿命最佳。
【技术实现步骤摘要】
一种磨损均衡控制方法、装置、设备及可读存储介质
[0001]本申请涉及存储
,特别是涉及一种磨损均衡控制方法、装置、设备及可读存储介质。
技术介绍
[0002]SSD(Solid State Drive,固态硬盘)内部使用NAND Flash(一种非易失闪存,内部采用非线性宏单元模式)作为存储介质,这种介质的PE(Program Erase,擦写)次数是有限的。即,当PE次数超过一定的数量,NAND中存储数据的block(最小存储和处理单位)就会损坏,无法继续使用。因此SSD固件需要保证NAND Flash内部的所有block的PE次数基本均衡,才能使SSD的使用寿命达到最佳。
[0003]动态磨损均衡的方式是把NAND中的block按照PE进行排序,当需要写入数据时,选择写入PE最小的block进行使用,以此较少PE较大的block的使用次数。NAND的block具有只能按页写,按block擦除的特性,通常一个block内部包含多个页,由于这一特性,SSD内部需要做垃圾回收,保证SSD内部有充足的空间进行数据写入。随机写进入稳态的时候,SSD内部的空闲block数量会在一个特定的值附近波动。动态磨损均衡的对block的保护能力也会因此受到影响,会降低对block的保护能力,会使得block间的PE差异越来越大。
[0004]综上所述,如何有效地提升对block的保护能力等问题,是目前本领域技术人员急需解决的技术问题。
技术实现思路
[0005]本申请的目的是提供一种磨损均衡控制方法、装置、设备及可读存储介质,以动态调整对block的保护能力,从而保障block的PE保持均衡。
[0006]为解决上述技术问题,本申请提供如下技术方案:
[0007]一种磨损均衡控制方法,包括:
[0008]从空闲block中选出擦写次数大于擦写阈值的block,并将所述block加入自平衡二叉树;
[0009]接收数据写入请求后,判断在所述自平衡二叉树之外是否存在空闲block;
[0010]若是,则从所述自平衡二叉树之外的空闲block中选出目标block;
[0011]若否,则从所述自平衡二叉树中选出所述目标block;
[0012]将所述数据写入请求对应的数据写入所述目标block。
[0013]优选地,将所述block加入自平衡二叉树,包括:
[0014]判断所述自平衡二叉树的空闲block数量是否大于预设数量阈值;其中,所述预设数量阈值为根据磨损不均衡时所允许的最大性能下降而设置稳态空闲block的最大阈值;
[0015]如果否,则将所述block直接添加至所述自平衡二叉树中;
[0016]如果是,则在所述block的擦写次数大于所述自平衡二叉树中擦写次数最小的block的情况下,将所述自平衡二叉树中擦写次数最小的block替换为所述block。
[0017]优选地,所述从空闲block中选出擦写次数大于擦写阈值的block,包括:
[0018]获取各个空闲block的擦写次数,各个block的平均擦写次数及预设的最大擦写次数与平均擦写次数的差值上限;
[0019]将所述平均擦写次数与所述差值上限之和确定为所述擦写阈值;
[0020]从空闲block中选出擦写次数大于擦写阈值的block。
[0021]优选地,还包括:
[0022]对所述平均擦写次数进行监测;
[0023]在所述平均擦写次数变化后,利用所述平均擦写次数与所述差值上限之和更新所述擦写阈值;
[0024]剔除所述自平衡二叉树中擦写次数小于所述擦写阈值的block。
[0025]优选地,从所述自平衡二叉树之外的空闲block中选出目标block,包括:
[0026]基于擦写次数对所述自平衡二叉树之外的空闲block进行排序;
[0027]利用排序结果,选择擦写次数最小的空闲block,并确定为所述目标block。
[0028]优选地,从所述自平衡二叉树中选出所述目标block,包括:
[0029]将所述自平衡二叉树左子叶节点确定为所述目标block;其中,所述自平衡二叉树基于擦写次数进行存放。
[0030]优选地,还包括:
[0031]在从所述自平衡二叉树之外的空闲block中选出目标block,无法将所述数据写入请求对应的数据全部写入所述目标block的情况下,从所述自平衡二叉树中选出目标block;
[0032]将未写完的数据写入从所述自平衡二叉树中选出所述目标block中。
[0033]一种磨损均衡控制装置,包括:
[0034]Block添加模块,用于从空闲block中选出擦写次数大于擦写阈值的block,并将所述block加入自平衡二叉树;
[0035]判断模块,用于接收数据写入请求后,判断在所述自平衡二叉树之外是否存在空闲block;
[0036]目标block挑选模块,用于若在所述自平衡二叉树之外存在空闲block,则从所述自平衡二叉树之外的空闲block中选出目标block;若在所述自平衡二叉树之外不存在空闲block,则从所述自平衡二叉树中选出所述目标block;
[0037]数据写入模块,用于将所述数据写入请求对应的数据写入所述目标block。
[0038]一种电子设备,包括:
[0039]存储器,用于存储计算机程序;
[0040]处理器,用于执行所述计算机程序时实现上述磨损均衡控制方法的步骤。
[0041]一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述磨损均衡控制方法的步骤。
[0042]应用本申请实施例所提供的方法,从空闲block中选出擦写次数大于擦写阈值的block,并将block加入自平衡二叉树;接收数据写入请求后,判断在自平衡二叉树之外是否存在空闲block;若是,则从自平衡二叉树之外的空闲block中选出目标block;若否,则从自平衡二叉树中选出目标block;将数据写入请求对应的数据写入目标block。
[0043]从空闲block中选出擦写次数大于擦写阈值的block,并将该block加入自平衡二叉树。在接收到数据写入请求后,优先选择自平衡二叉树之外的空闲block。具体的,即首先判断在自平衡二叉树之外是否存在空闲block;如果存在,则从自平衡二叉树之外的空闲block中选出目标block;如果不存在,则再从自平衡二叉树中选出目标block。将数据写入请求对应的数据写入目标block中。如此,通过这种方式,SSD内部可以根据擦写阈值这一条件,自动控制稳态时的free block(空闲block)数量,动态调整对block磨损均衡的保护能力。即,如果SSD内部block磨损程度均衡,随机写稳态时的free block数量较小,磨损均衡保护能力较弱,当磨损不均衡时,随机写稳态时的f本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种磨损均衡控制方法,其特征在于,包括:从空闲block中选出擦写次数大于擦写阈值的block,并将所述block加入自平衡二叉树;接收数据写入请求后,判断在所述自平衡二叉树之外是否存在空闲block;若是,则从所述自平衡二叉树之外的空闲block中选出目标block;若否,则从所述自平衡二叉树中选出所述目标block;将所述数据写入请求对应的数据写入所述目标block。2.根据权利要求1所述的磨损均衡控制方法,其特征在于,将所述block加入自平衡二叉树,包括:判断所述自平衡二叉树的空闲block数量是否大于预设数量阈值;其中,所述预设数量阈值为根据磨损不均衡时所允许的最大性能下降而设置稳态空闲block的最大阈值;如果否,则将所述block直接添加至所述自平衡二叉树中;如果是,则在所述block的擦写次数大于所述自平衡二叉树中擦写次数最小的block的情况下,将所述自平衡二叉树中擦写次数最小的block替换为所述block。3.根据权利要求1所述的磨损均衡控制方法,其特征在于,所述从空闲block中选出擦写次数大于擦写阈值的block,包括:获取各个空闲block的擦写次数,各个block的平均擦写次数及预设的最大擦写次数与平均擦写次数的差值上限;将所述平均擦写次数与所述差值上限之和确定为所述擦写阈值;从空闲block中选出擦写次数大于擦写阈值的block。4.根据权利要求3所述的磨损均衡控制方法,其特征在于,还包括:对所述平均擦写次数进行监测;在所述平均擦写次数变化后,利用所述平均擦写次数与所述差值上限之和更新所述擦写阈值;剔除所述自平衡二叉树中擦写次数小于所述擦写阈值的block。5.根据权利要求1所述的磨损均衡控制方法,其特征在于,从所述自平衡二叉树之外的空闲block中选出目标bloc...
【专利技术属性】
技术研发人员:张乾坤,刘哲,王鑫,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。