一种写入速度控制的方法、装置及介质与流程

    专利查询2022-08-17  89



    1.本发明涉及固态硬盘技术领域,特别是涉及一种写入速度控制的方法、装置及介质。


    背景技术:

    2.闪存颗粒的特性是不断将写入命令写入空白区块(block),其中空白区块为被擦除或未被写入任何数据的区块。在将写满的区块被擦除之前,需要将有效资料从原写满的区块移至空白区块,再进而擦除写满区块,以实现垃圾回收。
    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.本发明提供的一种写入速度控制的方法,获取当前空白区块的写入速度和当前空白区块的区块数量;根据当前的写入速度和当前空白区块的区块数量的关系确定当前空白区块的耗尽时间;根据耗尽时间调整当前的写入速度得到更新后的写入速度;按照更新后的写入速度写入至当前空白区块。该方法通过根据耗尽时间的长短进而调整写入速度,以维持适量的空白区块数量,避免根据回收平均速度调整写入速度导致在后续的回收区块其回收速度较低而写入速度一直维持当前较高的速度,造成区块耗尽的风险。监测空白区块的耗尽时间调整写入速度,提高空白区块的运用灵活性,保证区块不耗尽。
    45.另外,本发明还提供了一种写入速度控制的装置及介质,具有如上述写入速度控制的方法相同的有益效果。
    附图说明
    46.为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
    47.图1为本发明实施例提供的一种写入速度控制的方法的流程图;
    48.图2为本发明实施例提供的一种写入速度控制的装置的结构图;
    49.图3为本发明实施例提供的另一种写入速度控制的装置的结构图。
    具体实施方式
    50.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
    51.本发明的核心是提供一种写入速度控制的方法、装置及介质,保证区块不被耗尽。
    52.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
    53.需要说明的是,由于在闪存中写入的资料形态不同,导致每个区块包含的有效资料量也不同,其中有效资料的含量是该区块中其他资料被无效化的结果,其资料形态主要是指无效资料的分布,如果主机不断覆写旧的资料,固态硬盘(solid state drives,ssd)中就有许多无效资料区可以回收。而主机覆写的分布,如果不均匀地落在每一个区块内,就造成了每一个区块的有效资料含量不同。垃圾回收的回收速度是将写满的区块扣除有效资料后除以耗时的时间得到,本发明提供的写入速度控制的方法是将写入速度控制得比回收速度慢,使得整个系统的空白区块数量得到回升以此保证区块不被耗尽。
    54.图1为本发明实施例提供的一种写入速度控制的方法的流程图,如图1所示,该方法包括:
    55.s11:获取当前空白区块的当前的写入速度和当前空白区块的区块数量。
    56.由于快闪存储器的区块擦写机制,其获取的写入速度一直动态变化,所以获取当下针对当前的空白区块回收后需要将新数据写入时的写入速度,故获取当前的写入速度。本发明主要解决区块不被耗尽的问题,需要知道当前的空白区块数量还能维持多久,由于垃圾回收的回收速度波动较大,故写入速度需要平缓但是不间断,其回收速度和写入速度之间的差异就是由空白区块的数量来缓衡,需要顾及空白区块的区块数量进而获取当前空白区块的区块数量。
    57.具体地,获取当前的写入速度,由于写入速度与空白区块的回收速度的差异导致空白区块的数量增或减,为了使写入速度不超过回收速度且避免波动较大,需要以平稳的幅度追踪回收速度。可以理解的是,根据闪存的擦写机制,先对写满的数据进行清除垃圾回收,再进而对擦除的区块进行写入,首次擦写的过程其回收速度与写入速度相同,但是由于
    资料形态的不同,处理有效资料的数量影响回收速度之外,其有效资料的逻辑连续性也影响回收速度,从而导致回收速度每次不同,进而使得写入速度维持之前的高速度,由于回收消耗更多的时间,导致回收速度下降,此时区块会有被耗尽的风险。当区块耗尽,其写入速度立马间断为0。
    58.通常情况下为了避免区块耗尽,会对空白区块的数量进行预警侦测,一旦发现即将耗尽,将写入速度骤降至最低的写入速度,同时也面临着写入速度变化波动较大的现象。本实施例中获取当前的写入速度是在此基础上进行平缓机制使得写入速度波动较小。可以采用滤波方式将写入速度平缓化,也可以采用限制写入速度维持在一个波动较小的范围内,本发明不做具体限定,只要能够满足当前获取的写入速度波动较小即可。
    59.s12:根据当前的写入速度和当前空白区块的区块数量确定当前空白区块的耗尽时间。
    60.在步骤s11中的获取当前的写入速度和当前空白区块的区块数量,以便计算当前的空白区块数量还能维持当前的写入速度多久而不被耗尽,因此在区块耗尽之前,垃圾回收中再回收一个区块补充进来,并且对写入速度进行调整刷新,就可以使得写入速度不间断为0。根据当前的区块数量除以当前的写入速度得到当前空白区块的耗尽时间。
    61.s13:根据耗尽时间调整当前的写入速度得到更新后的写入速度。
    62.可以理解的是,耗尽时间是变化的值,为了使得后续调整的写入速度具有权威公平性。耗尽时间可参照近期固定时间间隔或者固定的回收次数中加权平均或者指数平均得到一个参考耗尽时间,进而根据耗尽时间与参考耗尽时间的阈值系数之间的关系调整当前的写入速度。
    63.具体地,阈值系数可以有一个或多个组合,也可以是一个阈值范围。当耗尽时间不在阈值范围内则调整至阈值范围即可得到更新后的写入速度。也可以设置多个临界值,其临界值有最大临界值与最小临界值之分,需要判断耗时时间是否大于最大临界值,若大于,则调整相应的写入速度,由于耗时时间与写入速度成反比关系。当耗时时间大于最大临界值时,说明写入速度较低,需要提高写入速度至临界状态;当耗时时间小于最大临界值时,需要判断是否大于最小临界值,若小于,说明写入速度较高,需要降低写入速度至临界状态。当调整后满足两个临界值,为了更好地将写入速度写入,其优选地选取一个目标速度,进而将当前的写入速度与目标速度进行加权得到更新后的写入速度。
    64.需要说明的是,对于阈值系数根据实际情况进行设置,本发明不做具体限定,只要满足能够得到更新后的写入速度即可。
    65.s14:按照更新后的写入速度进行写入。
    66.在上述实施例中根据耗时时间调整当前的写入速度得到更新后的写入速度,并按照更新后的写入速度进行写入。
    67.本发明提供的一种写入速度控制的方法,获取当前空白区块的写入速度和当前空白区块的区块数量;根据当前的写入速度和当前空白区块的区块数量的关系确定当前空白区块的耗尽时间;根据耗尽时间调整当前的写入速度得到更新后的写入速度;按照更新后的写入速度写入至当前空白区块。该方法通过根据耗尽时间的长短进而调整写入速度,以维持适量的空白区块数量,避免根据回收平均速度调整写入速度导致在后续的回收区块其回收速度较低而写入速度一直维持当前较高的速度,造成区块耗尽的风险。监测空白区块
    的耗尽时间调整写入速度,提高空白区块的运用灵活性,保证区块不耗尽。
    68.在上述实施例的基础上,步骤s11中的获取当前空白区块的当前的写入速度,具体包括:
    69.获取当前空白区块的回收时间,并根据回收时间获取当前空白区块的回收速度;
    70.根据回收速度确定当前的写入速度。
    71.可以理解的是,获取当前空白区块的回收时间,是指当前空白区块在前一个垃圾回收时,将该区块上的总空间减去有效资料量占用的空间所得到的当前空白区块的页数数量进行垃圾回收所消耗的时间。
    72.例如,其回收被写满的区块a时,会把有效资料从该区a块移至空白区块b。其中,区块a的总空间扣除有效资料量,然后除以回收所费的时间,即为垃圾回收速度。故需要获取当前空白区块的回收时间也就是回收所费的时间,根据回收时间与总空间扣除有效资料量的关系得到当前空白区块的回收速度。区块block是由页page构成,其倍数关系是由nand型号的闪存决定,如以下表1中的空白区块页数的初始值为18432,其后随着回收速度与写入速度的过程反应页面数量的消长。
    73.表1垃圾回收与写入速度表
    74.时序gc完成gc花费时间gc回收页面gc回收速度写入速度速度差异空白区块页数0
    ꢀꢀꢀ
    600006000184321

    1600055006000-500244322

    1550016675500-3833239323
    ꢀꢀꢀ
    16675500-3833184324
    ꢀꢀꢀ
    16675500-3833129325

    35000450016672833124326

    1450010004500-3500152657
    ꢀꢀꢀ
    10004500-3500107658
    ꢀꢀꢀ
    10004500-350062659
    ꢀꢀꢀ
    10004500-3500176510

    44000350010002500126511

    135006003500-2900376512
    ꢀꢀꢀ
    6003500-2900265
    75.需要说明的是,表1为通常情况下的垃圾回收速度与写入速度的关联表格。如表1所示,垃圾回收速度是每1s回收的页数。垃圾回收完成时,在垃圾回收的完成状态以黑色圆圈表示,在完成时,计算回收该区块的平均速度,当作写入速度。因此,写入速度总是追踪前次回收速度。由于垃圾回收完成所耗时花费的时间不同,在垃圾回收的回收速度未更新之前,其写入速度维持着之前刚开始的速度,例如,在第2时序与第3时序之间,由于未更新垃圾回收的完成状态,其写入速度维持着第1次垃圾回收更新的回收速度5500,而此时的回收速度为1667,垃圾回收速度下降,导致速度差异增大,空白区块页面的数量波动也随之增大。
    76.根据回收速度确定当前的写入速度,可以对回收速度对应的垃圾回收机制判断其状态,首次更新和非首次更新状态等,也可以设置具体函数根据回收速度计算当前的写入速度,本发明不做具体限定,只要根据回收速度确定当前的写入速度即可。
    77.本实施例提供的获取当前空白区块对应的当前的写入速度,根据回收时间获取回收速度,进而根据回收速度确定当前的写入速度,避免速度变化的较大波动,当出现一次回收时间较长或者其他任务费时较长,不会过度影响写入速度的数值,使写入性能得以保持一定程度的平稳。
    78.在上述实施例的基础上,为了避免速度变化的较大波动,需要获取当前空白区块的回收速度,由于垃圾回收可能相当长的时间才会更新回收速度,因此,根据回收速度确定当前的写入速度,具体包括:
    79.判断回收速度是否为更新的回收速度;
    80.若为更新的回收速度,则判断回收速度是否为首次更新;
    81.若为首次更新,则将回收速度设为当前的写入速度;
    82.若不为首次更新,则获取上一次的更新后的写入速度并与回收速度进行滤波处理得到滤波后的写入速度以作为当前的写入速度。
    83.具体地,更新的回收速度是上一次的回收速度与当前获取的回收速度不同,发生了变化。如表1中获取的当前回收速度为第1时序的回收速度,在第0时序与第1时序对应的回收速度,则确定当前的回收速度为更新的回收速度。在很长时间回收速度未更新的情况下,此时写入速度按照之前的速度写入,每1s都需要有写入命令执行完成,可能执行成千上百次才遇到一次垃圾回收的更新。因此,需要判断回收速度是否为更新的回收速度进而确定当前的写入速度如何调整进而避免较大的波动变化。
    84.如果当前的回收速度为更新的回收速度,则需要判断是否为首次更新,如表1中的第1时序的回收速度为首次更新,则将回收速度设置为当前的写入速度。如果不是首次更新,如表1中的第2时序,其需要进行调整写入速度。如果按照表1中的写入速度追随垃圾回收完成状态下的回收速度,则会有空白区块耗尽的风险,如第12时序时的空白区块页数的数量。
    85.当垃圾回收完成一定数量的区块回收时,以回收的区块的总容量n
    block
    减去该区块的有效资料量n
    valid
    得到净回收空间量n
    reclaim
    ,其中n以page为单位。此时需要获取当前空白区块回收的回收时间t
    gc
    ,进而根据n
    reclaim
    /t
    gc
    得到空白区块的回收速度v
    gc

    86.获取上次一更新后的写入速度v
    write
    (t-1)与当前的回收速度v
    gc
    进行滤波处理得到滤波后的写入速度并作为当前的写入速度。可以理解的是,滤波处理有低通滤波处理,高通滤波处理,带通滤波处理等,由于使其速度变化波动较小,因此选用低通滤波处理较为合适,也可以低通滤波与带通滤波结合处理,本发明不做具体限定,可根据实际情况进行滤波处理。
    87.本实施例提供的根据回收速度确定当前的写入速度,获取当前空白区块的当前的写入速度中对其不是首次更新的回收速度对应的进行低通滤波调整写入速度,对回收速度逐次进行累计与滤波处理。由于回收区块中的资料形态不同而造成回收速度变化较大时,钝化写入速度的波动度,有空白区块数量承受回收速度的变化,提供较平稳的写入性能体验。
    88.在上述实施例的基础上,在步骤s13中的根据耗尽时间调整当前的写入速度得到更新后的写入速度,包括:
    89.根据回收时间确定固定时间间隔内对应的平均回收时间;
    90.获取阈值系数,并根据阈值系数与平均回收时间的关系确定耗尽时间阈值;
    91.根据耗尽时间与耗尽时间阈值的关系调整当前的写入速度得到更新后的写入速度。
    92.具体地,在上述实施例中已对当前空白区块的回收时间作了详细说明,在此不再赘述,根据回收时间确定平均回收时间,其平均回收时间可以根据固定时间间隔内对应的回收时间进行平均得到,也可以根据回收完成状态下对应的回收时间平均得到,其平均处理可以为直接平均,也可以进行加权平均或者指数平均等。固定时间间隔可以是每隔一定时间段的回收时间,可以理解的是,其回收时间为多个,都是在耗尽时间对应的当前空白区块临近的回收时间,例如当前的回收时间为t
    gc
    (t),还需选取上两次的回收时间t
    gc
    (t-1)和t
    gc
    (t-2)。最后确定的平均回收时间为t
    avg

    93.获取阈值系数,根据阈值系数与平均回收时间的关系确定耗尽时间阈值,具体地,阈值系数可以为一个或者多个,当为一个阈值系数第一系数时,与平均回收时间相乘得到一个耗尽时间阈值也就是第一时间阈值,如果为多个阈值系数时,其对应的耗尽时间阈值也是一一对应。
    94.在确定耗尽时间阈值后,根据耗尽时间与耗尽时间阈值两者的关系进而调整当前的写入速度得到更新后的写入速度。当耗尽时间阈值为一个时,若为最大临界值,则判断耗尽时间是否大于该最大临界值,若大于,则调整,否则不调整。如果为最小临界值时,则判断耗尽时间是否小于该最小临界值,若小于,则调整,否则不调整。如果为目标阈值,则判断耗尽时间是否与目标阈值相同,若不同则调整。
    95.当耗尽时间阈值为多个时,可以将其进行组合,在判断耗尽时间小于或等于最大临界值时进一步判断耗尽时间是否小于最小临界值或者判断耗尽时间是否与目标阈值相同等,两两阈值条件组合或者将多个阈值全部组合进行以依据调整当前的写入速度,也可以根据更多的阶层或函数方式进行调整。本发明不做具体的限定。
    96.本实施例提供的根据耗尽时间调整当前的写入速度得到更新后的写入速度,根据耗尽时间的长短进而调整写入速度,以维持适量的空白区块数量,提高空白区块的运用灵活性,保证区块不耗尽。
    97.在上述实施例的基础上,耗尽时间阈值包括第一时间阈值、第二时间阈值和第三时间阈值,根据耗尽时间与耗尽时间阈值的关系调整当前的写入速度得到更新后的写入速度包括:
    98.判断耗尽时间是否大于第一时间阈值;
    99.若大于第一时间阈值,则根据当前空白区块的区块数量与第一时间阈值确定为更新后的写入速度;
    100.若不大于第一时间阈值,则判断耗尽时间是否小于第二时间阈值,其中,第一时间阈值大于第二时间阈值;
    101.若小于第二时间阈值,则根据当前空白区块的区块数量与第二时间阈值确定更新后的写入速度;
    102.若不小于第二时间阈值,则根据当前空白区块的区块数量与第三时间阈值确定目标速度,其中第三时间阈值大于第二时间阈值且小于第一时间阈值;
    103.根据目标速度与当前的写入速度进行加权平均得到更新后的写入速度。
    104.需要说明的是,第一时间阈值根据阈值系数与平均回收时间的关系得到,其阈值系数对应的包括第一系数、第二系数和第三系数,其平均回收时间t
    avg
    与第一系数k
    high
    得到第一时间阈值为t
    high
    ,其第一系数大于1。
    105.判断耗尽时间t
    exhaust
    是否大于t
    high
    ,若大于,则根据当前空白区块的区块数量n
    free
    与第一时间阈值的关系提高写入速度以作调整(v
    write
    =n
    free
    /t
    high
    )作为更新后的写入速度。当耗尽时间小于或等于第一时间阈值时,则判断耗尽时间是否小于第二时间阈值,其中第一时间阈值大于第二时间阈值;
    106.若小于,则根据当前空白区块的区块数量与第二时间阈值的关系确定更新后的写入速度。
    107.具体地,第二时间阈值根据第二系数与平均回收时间的关系得到,对应的阈值系数还包括第二系数,其平均回收时间t
    avg
    与第二系数k
    low
    得到第二时间阈值为t
    low
    ,其第二系数大于1,第一时间阈值大于第二时间阈值。本实施例中的第一时间阈值大于第二时间阈值是一种优选地实施例,也可以第一时间阈值等于第二时间阈值,其两个时间阈值相等时,可以为一个时间阈值。
    108.当耗尽时间小于或等于第一时间阈值时,则判断耗尽时间是否小于第二时间阈值,若小于,则根据当前空白区块的区块数量与第二时间阈值的关系降低写入速度以作调整(v
    write
    =n
    free
    /t
    low
    )作为更新后的写入速度。
    109.当耗尽时间大于或等于第二时间阈值时,则根据当前空白区块的区块数量与第三时间阈值的关系确定目标速度,其中第三时间阈值大于第二时间阈值且小于第一时间阈值;
    110.根据目标速度与当前的写入速度进行加权平均得到更新后的写入速度。
    111.具体地,第三时间阈值根据第三系数与平均回收时间的关系得到,对应的阈值系数还包括第三系数,其平均回收时间t
    avg
    与第三系数k
    target
    得到第三时间阈值为t
    target
    ,其第三系数大于1,第二时间阈值大于第三时间阈值,与上述实施例相同,其第二时间阈值可以与第三时间阈值相等,若相等,则三个时间阈值可以设置为一个时间阈值。
    112.当耗尽时间大于或等于第二时间阈值时,则根据当前空白区块的区块数量与第三时间阈值的关系确定目标速度(v
    target
    =n
    free
    /t
    target
    ),根据目标速度与当前的写入速度进行加权平均得到更新后的写入速度,通过如下方式计算得到:
    113.v
    write
    =wavg(v
    target
    ,v
    lpf

    wavg
    )
    114.其中,β
    wavg
    通常小于0,其wavg(v
    target
    ,v
    lpf

    wavg
    )通过如下方式得到:
    115.wavg(v
    target
    ,v
    lpf

    wavg
    )=β
    wavg
    *v
    target
    (1-β
    wavg
    )*v
    lpf
    116.需要说明的是,以第三时间阈值是闪存维持一定的空白区块数量,同时,能避免空白区块在第二时间阈值内耗尽,同时在至多仅保留足以支撑第一时间阈值的空白区块条件下,将写入性能升至最高。
    117.本实施例提供的根据耗尽时间与耗尽时间阈值的关系调整当前的写入速度得到更新后的写入速度,耗尽时间大于第一时间阈值时,说明耗尽时间过长,则提高写入速度,使得写入变快以维持适量的空白区块数量,避免空白区块耗尽。耗尽时间小于第二时间阈值,说明耗尽时间过短,说明当前的写入速度较快,则需要降低写入速度,避免空白区块耗尽。大于或等于第二时间阈值时,在保证空白区块不被耗尽的同时,将当前的写入速度与目
    标速度进行滤波混合,其写入速度较为缓和,主机体验较平稳。
    118.在上述实施例的基础上,获取上一次的更新后的写入速度并与回收速度进行滤波处理得到滤波后的写入速度以作为当前的写入速度,具体包括:
    119.将更新后的写入速度与回收速度进行低通滤波处理得到滤波后的写入速度。
    120.具体地,低通滤波处理是允许低于介质频率的信号通过,但是高于介质频率的信号不同通过,其低通滤波的形式可以是指数型低通滤波,也可以是其他形式的低通滤波,本发明不做具体限定。优选地,采用低通滤波系数为α
    lpf
    ,如下得到当前的滤波后的写入速度v
    lpf
    (t):
    121.v
    lpf
    (t)=α
    lpf
    *v
    gc
    (t) (1-α
    lpf
    )*v
    write
    (t-1)
    122.则得到当前的滤波后的写入速度作为当前的写入速度。
    123.本实施例提供的将更新后的写入速度与回收速度进行低通滤波处理得到滤波后的写入速度。钝化写入速度的波动度,有空白区块数量承受回收速度的变化,提供较平稳的写入性能体验。
    124.在上述实施例的基础上,在回收速度不为更新的回收速度之后,还包括:
    125.判断回收时间是否超出目标时间;
    126.若超出,则设置下一个更新的回收速度为首次更新。
    127.当获取到当前空白区块的回收时间时,进而判断回收时间是否超出目标时间,由于软件是多任务系统,某一任务执行花费较长的时间导致垃圾回收任务超时,或者由于硬件遭遇高温或电源事件降低了系统频率,都可能使得回收速度比算法预期耗费的时间更长。其设置超时的目的是避免按照当前的写入速度继续写入,空白区块将有耗尽的风险。
    128.如果超出,则设置下一个更新的回收速度为首次更新,其设置原因是发生超时,代表系统遭遇比较大的状态改变,需要重新参考垃圾回收的更新的回收速度。
    129.本实施例提供的判断回收时间是否超出目标时间;若超出,则设置下一个更新的回收速度为首次更新。防止空白区块耗尽的风险,需要主动重新参考更新的回收速度进而调整写入速度。
    130.上述详细描述了写入速度控制的方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的避免区块消耗过快装置,图2为本发明实施例提供的一种写入速度控制的装置的结构图。如图2所示,写入速度控制的装置包括:
    131.获取模块11,用于获取当前空白区块的当前的写入速度和当前空白区块的区块数量;
    132.确定模块12,用于根据当前的写入速度和当前空白区块的区块数量的关系确定当前空白区块的耗尽时间;
    133.调整模块13,用于根据耗尽时间调整当前的写入速度得到更新后的写入速度;
    134.写入模块14,用于按照更新后的写入速度进行写入。
    135.由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述装置部分的实施例描述,在此不再赘述。
    136.本发明提供的一种写入速度控制的装置,获取当前空白区块的写入速度和当前空白区块的区块数量;根据当前的写入速度和当前空白区块的区块数量的关系确定当前空白区块的耗尽时间;根据耗尽时间调整当前的写入速度得到更新后的写入速度;按照更新后
    的写入速度写入至当前空白区块。该装置通过根据耗尽时间的长短进而调整写入速度,以维持适量的空白区块数量,避免根据回收平均速度调整写入速度导致在后续的回收区块其回收速度较低而写入速度一直维持当前较高的速度,造成区块耗尽的风险。监测空白区块的耗尽时间调整写入速度,提高空白区块的运用灵活性,保证区块不耗尽。
    137.图3为本发明实施例提供的另一种写入速度控制的装置的结构图,如图3所示,该装置包括:
    138.存储器21,用于存储计算机程序;
    139.处理器22,用于执行计算机程序时实现写入速度控制的方法的步骤。
    140.本实施例提供的写入速度控制的装置可以包括但不限于智能手机、平板电脑、笔记本电脑或者台式电脑等。
    141.其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以在集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
    142.存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的写入速度控制的方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括windows、unix、linux等。数据213可以包括但不限于写入速度控制的方法所涉及到的数据等等。
    143.在一些实施例中,写入速度控制的装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
    144.领域技术人员可以理解,图3中示出的结构并不构成对写入速度控制的装置的限定,可以包括比图示更多或更少的组件。
    145.处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的写入速度控制的方法。
    146.本发明提供的一种写入速度控制的装置,获取当前空白区块的写入速度和当前空白区块的区块数量;根据当前的写入速度和当前空白区块的区块数量的关系确定当前空白区块的耗尽时间;根据耗尽时间调整当前的写入速度得到更新后的写入速度;按照更新后的写入速度写入至当前空白区块。该装置通过根据耗尽时间的长短进而调整写入速度,以维持适量的空白区块数量,避免根据回收平均速度调整写入速度导致在后续的回收区块其回收速度较低而写入速度一直维持当前较高的速度,造成区块耗尽的风险。监测空白区块
    的耗尽时间调整写入速度,提高空白区块的运用灵活性,保证区块不耗尽。
    147.进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述写入速度控制的方法的步骤。
    148.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
    149.对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述写入速度控制的方法相同的有益效果。
    150.以上对本发明所提供的一种写入速度控制的方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
    151.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
    ……”
    限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

    技术特征:
    1.一种写入速度控制的方法,其特征在于,包括:获取当前空白区块的当前的写入速度和所述当前空白区块的区块数量;根据所述当前的写入速度和所述当前空白区块的区块数量确定所述当前空白区块的耗尽时间;根据所述耗尽时间调整所述当前的写入速度得到更新后的写入速度;按照所述更新后的写入速度进行写入。2.根据权利要求1所述的写入速度控制的方法,其特征在于,所述获取当前空白区块的当前的写入速度,包括:获取所述当前空白区块的回收时间,并根据所述回收时间获取所述当前空白区块的回收速度;根据所述回收速度确定所述当前的写入速度。3.根据权利要求2所述的写入速度控制的方法,其特征在于,所述根据所述回收速度确定所述当前的写入速度,包括:判断所述回收速度是否为更新的回收速度;若为所述更新的回收速度,则判断所述回收速度是否为首次更新;若为首次更新,则将所述回收速度设为所述当前的写入速度;若不为首次更新,则获取上一次的所述更新后的写入速度并与所述回收速度进行滤波处理得到滤波后的写入速度以作为所述当前的写入速度。4.根据权利要求3所述的写入速度控制的方法,其特征在于,所述根据所述耗尽时间调整所述当前的写入速度得到更新后的写入速度,包括:根据所述回收时间确定固定时间间隔内对应的平均回收时间;获取阈值系数,并根据所述阈值系数与所述平均回收时间的关系确定耗尽时间阈值;根据所述耗尽时间与所述耗尽时间阈值的关系调整所述当前的写入速度得到所述更新后的写入速度。5.根据权利要求4所述的写入速度控制的方法,其特征在于,所述耗尽时间阈值包括第一时间阈值、第二时间阈值和第三时间阈值,所述根据所述耗尽时间与所述耗尽时间阈值的关系调整所述当前的写入速度得到更新后的写入速度,包括:判断所述耗尽时间是否大于所述第一时间阈值;若大于所述第一时间阈值,则根据所述当前空白区块的区块数量与所述第一时间阈值确定为所述更新后的写入速度;若不大于所述第一时间阈值,则判断所述耗尽时间是否小于所述第二时间阈值,其中,所述第一时间阈值大于所述第二时间阈值;若小于所述第二时间阈值,则根据所述当前空白区块的区块数量与所述第二时间阈值确定所述更新后的写入速度;若不小于所述第二时间阈值,则根据所述当前空白区块的区块数量与所述第三时间阈值确定目标速度,其中所述第三时间阈值大于所述第二时间阈值且小于所述第一时间阈值;根据所述目标速度与所述当前的写入速度进行加权平均得到所述更新后的写入速度。6.根据权利要求3所述的写入速度控制的方法,其特征在于,所述获取上一次的所述更
    新后的写入速度并与所述回收速度进行滤波处理得到滤波后的写入速度以作为所述当前的写入速度,包括:将所述更新后的写入速度与所述回收速度进行低通滤波处理得到所述滤波后的写入速度。7.根据权利要求2至6任意一项所述的写入速度控制的方法,其特征在于,在所述回收速度不为所述更新的回收速度之后,还包括:判断所述回收时间是否超出目标时间;若超出,则设置下一个所述更新的回收速度为首次更新。8.一种写入速度控制的装置,其特征在于,包括:获取模块,用于获取当前空白区块的当前的写入速度和所述当前空白区块的区块数量;确定模块,用于根据所述当前的写入速度和所述当前空白区块的区块数量确定所述当前空白区块的耗尽时间;调整模块,用于根据所述耗尽时间调整所述当前的写入速度得到更新后的写入速度;写入模块,用于按照所述更新后的写入速度进行写入。9.一种写入速度控制的装置,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的写入速度控制的方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的写入速度控制的方法的步骤。

    技术总结
    本发明公开了一种写入速度控制的方法、装置及介质,适用于固态硬盘技术领域。获取当前空白区块的写入速度和当前空白区块的区块数量;根据当前的写入速度和当前空白区块的区块数量的关系确定当前空白区块的耗尽时间;根据耗尽时间调整当前的写入速度得到更新后的写入速度;按照更新后的写入速度写入至当前空白区块。该方法通过根据耗尽时间的长短进而调整写入速度,以维持适量的空白区块数量,避免根据回收平均速度调整写入速度导致在后续的回收区块其回收速度较低而写入速度一直维持当前较高的速度,造成区块耗尽的风险。监测空白区块的耗尽时间调整写入速度,提高空白区块的运用灵活性,保证区块不耗尽。保证区块不耗尽。保证区块不耗尽。


    技术研发人员:ꢀ(74)专利代理机构
    受保护的技术使用者:山东岱微电子有限公司
    技术研发日:2022.02.18
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-8908.html

    最新回复(0)