一种自加热固态硬盘的闪存块管理方法、设备及固态硬盘与流程

文档序号:21722181发布日期:2020-08-05 01:12阅读:267来源:国知局
一种自加热固态硬盘的闪存块管理方法、设备及固态硬盘与流程

本发明属于闪存存储设备领域,更具体地,涉及一种自加热固态硬盘的闪存块管理方法、设备及固态硬盘。



背景技术:

近年来,固态硬盘逐渐替代传统的机械硬盘,被广泛用于计算机存储系统中。

固态硬盘中的闪存块仅能承受有限的擦写(program/erase,p/e)次数。当固态硬盘中的闪存块的擦写次数到达厂商设定的擦写次数上限时,闪存块变为失效块,被移入坏块管理模块。当坏块管理模块中包含的闪存块总数量超过一定值以后,固态硬盘到达了使用寿命的终点。

在此基础上,自加热固态硬盘为其中的闪存芯片内置了加热装置来实现自加热恢复技术。在自加热固态硬盘的闪存块失效时,通过执行加热操作,就能够延长一定次数的擦写次数,从而,延长了自加热固态硬盘的使用寿命。但是,每个闪存块只能执行有限次的加热操作,当超过限定以后,闪存块也将永远的失效,不能再继续被加热。另一方面,执行加热操作需要一段持续的电耗和能耗,其中尤其是某个时间段内执行大量的加热操作时,将引起极大的性能波动和增大能耗,从而不能实现稳定的固态硬盘。



技术实现要素:

针对现有技术的缺陷和改进需求,本发明提供了一种自加热固态硬盘的闪存块管理方法、设备及固态硬盘,其目的在于,推迟一部分不必要的加热操作,以提升自加热固态硬盘的使用寿命。

为实现上述目的,按照本发明的一个方面,提供了一种自加热固态硬盘的闪存块管理方法,包括:

预先在自加热固态硬盘的内置dram中分别创建健康闪存块列表hll、临时失效闪存块块列表twl、已加热闪存块列表htl和永久失效闪存块列表pwl,所创建的列表用于存储闪存块的信息;

闪存块被擦除或者在初始状态时,获取闪存块当前的擦写次数pe,并与闪存块的擦写次数上限peinit进行比较,若pe<peinit,则将该闪存块的信息记录到健康闪存块列表hll中;若pe=peinit,则将该闪存块的信息记录到临时失效闪存块块列表twl中;

临时失效闪存块块列表twl中的闪存块被执行加热操作后,将该闪存块的信息从临时失效闪存块块列表twl迁移到已加热闪存块列表htl中;

当已加热闪存块列表htl中的闪存块耗尽最近一次加热操作为其作所增加的擦写次数后,将该闪存块的信息从已加热闪存块列表htl中迁移到临时失效闪存块块列表twl中;

当临时失效闪存块块列表twl中的闪存块所进行的加热操作总次数超过预设的阈值时,将该闪存块的信息从临时失效闪存块块列表twl迁移到永久失效闪存块列表pwl中;

将自加热固态硬盘中,健康闪存块列表hll和已加热闪存块列表htl所对应的闪存块划分到普通区域,临时失效闪存块块列表twl所对应的闪存块划分到刷新区域,永久失效闪存块列表pwl所对应的闪存块划分到不可用区域;普通区域和刷新区域中的闪存块均可分配给写请求。

传统的自加热固态硬盘中,一旦闪存块失效,会立即执行加热操作;本发明根据闪存块的擦写次数、加热操作次数等信息,利用四种不同的列表分别存储不同状态的闪存块信息,实现了对闪存块的更为精确的管理,并且由于本发明中,对于临时失效的闪存块,即临时失效闪存块列表twl中记录的闪存块,并不立即执行加热操作,而是仍然可以分配给写请求,因此,本发明能够推迟对失效块的加热操作,从而延长自加热固态硬盘的使用寿命。

进一步地,本发明所提供的自加热固态硬盘的闪存块管理方法,还包括:

周期性的监测普通区域中的闪存块数量n,在n≤tusable时,则根据临时失效闪存块块列表twl从刷新区域中选择一个闪存块,作为待加热闪存块,对其进行加热操作后,将待加热闪存块的信息从临时失效闪存块块列表twl迁移到已加热闪存块列表htl中,并将其重新划分到普通区域中;

其中,tusable为预设的第一阈值。

本发明在普通区域中的闪存块数量过低时,每次从刷新区域中仅选择一个闪存块执行加热操作,能够在保证有足够的可用闪存块的情况下,避免过多加热操作带来性能波动。

进一步地,待加热闪存块为刷新区域中具有最少加热次数的闪存块。

本发明每次选择刷新区域中,具有最少加热次数的闪存块执行加热操作,能够有效地均衡闪存块的加热次数,延长自加热固态硬盘的寿命。

进一步地,本发明所提供的自加热固态硬盘的闪存块管理方法,还包括:

按照如下步骤处理写请求:

(s1)根据写请求的逻辑地址lpn查找自加热固态硬盘的映射表,以判断写请求是首次写请求还是更新写请求,若是首次写请求,则转入步骤(s2);否则,转入(s5);

(s2)对首次写请求的数据进行冷热度分析,以识别该数据的类型,若为冷数据,则转入步骤(s3);若为热数据,则转入步骤(s4);

(s3)在普通区域中为首次写请求分配一个闪存块,写入数据并记录下该数据当前的写时间,作为逻辑地址lpn所对应的最新写时间tlast,写请求处理结束;

(s4)在刷新区域中为首次写请求分配一个闪存块,写入数据并记录下该数据当前的写时间,作为逻辑地址lpn所对应的最新写时间tlast,写请求处理结束;

(s5)对更新写请求的数据进行冷热度分析,以识别该数据的类型,若为冷数据,则转入步骤(s6);若为热数据,则转入步骤(s7);

(s6)在普通区域中为更新写请求分配一个闪存块,写入数据并将逻辑地址lpn所对应的最新写时间tlast更新为当前时间,将更新写请求所对应的旧数据置为失效,写请求处理结束;

(s7)在刷新区域中为写请求分配一个闪存块,写入数据并将逻辑地址lpn所对应的最新写时间tlast更新为当前时间,将更新写请求所对应的旧数据置为失效,写请求处理结束。

冷数据需要较长的数据保留时间,而热数据仅需要较短的数据保留时间;本发明中,普通区域中的闪存块能支持较长的数据保留时间,而刷新区域中的闪存块仅能支持较短的数据保留时间,本发明基于冷、热数据的访问特性以及不同闪存块的存储特性,在普通区域中为冷数据分配闪存块,在刷新区域中为热数据分配闪存块,能够在保证满足数据所要求的保留时间的同时,继续利用临时失效的闪存块,因此,本发明能够有效减少加热操作的次数,从而减少加热操作对存储系统io性能的负面影响,有效提高自加热固态硬盘的性能。

进一步地,在普通区域中为首次写请求或更新写请求分配闪存块时,优先分配健康闪存块列表hll中记录的闪存块,若健康闪存块列表hll中记录的闪存块均已分配,则分配已加热闪存块列表htl中记录的闪存块。

本发明在分配普通区域中的闪存块时,优先分配健康闪存块列表hll中记录的闪存块,有利于均衡普通区域中闪存块的擦写次数。

进一步地,本发明所提供的自加热固态硬盘的闪存块管理方法,还包括:

在刷新区域中为首次写请求或更新写请求分配闪存块时,若分配不成功,则从普通区域中分配闪存块。

本发明在分配刷新区域中的闪存块时,若分配不成功,则从普通区域中分配闪存块,由此能够保证在提升自加热固态硬盘的使用寿命和稳定性的同时,不会影响写请求的正常处理。

进一步地,步骤(s5)中,对更新写请求的数据进行冷热度分析,包括:

获得逻辑地址lpn所对应的最新写时间tlast,以根据当前时间与写时间tlast计算数据更新频率tupdate,若tupdate≥thot,则将更新写请求的数据识别为冷数据;否则,将更新写请求的数据识别为热数据;

其中,thot为预设的第二阈值。

进一步地,本发明所提供的自加热固态硬盘的闪存块管理方法,还包括:

在刷新区域分配闪存块并写入数据后,跟踪所分配的闪存块能支持的数据保留时间tretention,若所写入的数据在数据保留时间tretention到达时还未失效,则将该数据从刷新区域迁移至普通区域中,并将该闪存块上的旧数据置为失效。

当热数据在数据保留时间tretention到达时还未有失效,说明该数据实际上是一个不经常更新的冷数据,但是在上一次冷热度分析时被误分类成热数据了;本发明对于所识别出的热数据,会跟踪所分配的闪存块的数据保留时间,若该数据在数据保留时间tretention到达还未有失效,则会将该数据从刷新区域迁移至普通区域中,由此能够为数据提供足够的数据保留时间,从而保证数据存储的可靠性。

按照本发明的另一个方面,提供了一种自加热固态硬盘的闪存块管理设备,包括:计算机可读存储介质和处理器;

计算机可读存储介质用于存储可执行程序;

处理器用于读取计算机可读存储介质中存储的可执行程序,执行本发明所提供的自加热固态硬盘的闪存块管理方法。

按照本发明的又一个方面,提供了一种自加热固态硬盘,包括:内置dram、闪存和本发明所提供的自加热固态硬盘的闪存块管理设备。

总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:

(1)本发明根据闪存块的擦写次数、加热操作次数等信息,利用四种不同的列表分别存储不同状态的闪存块信息,实现了对闪存块的更为精确的管理,并且对于临时失效的闪存块,并不立即执行写请求,而是仍然可以分配给写请求,因此,本发明能够推迟对失效块的加热操作,从而延长自加热固态硬盘的使用寿命。

(2)本发明基于冷、热数据的访问特性以及不同闪存块的存储特性,在普通区域中为冷数据分配闪存块,在刷新区域中为热数据分配闪存块,能够在保证满足数据所要求的保留时间的同时,继续利用临时失效的闪存块,因此,本发明能够有效减少加热操作的次数,从而减少加热操作对存储系统io性能的负面影响,有效提高自加热固态硬盘的性能。

附图说明

图1为本发明实施例提供的自加热固态硬盘的闪存块管理方法示意图;

图2为本发明实施例提供的写请求处理流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

为了推迟一部分不必要的加热操作,以提升自加热固态硬盘的使用寿命,在本发明的一个实施例中,提供了一种自加热固态硬盘的闪存块管理方法,如图1所示,包括:

预先在自加热固态硬盘的内置dram中分别创建健康闪存块列表hll、临时失效闪存块块列表twl、已加热闪存块列表htl和永久失效闪存块列表pwl,所创建的列表用于存储闪存块的信息;

闪存块被擦除或者在初始状态时,获取闪存块当前的擦写次数pe,并与闪存块的擦写次数上限peinit进行比较,闪存块的擦写次数上限peinit由厂家设定,在本实施例中,peinit=1000;若pe<peinit,如图1中的闪存块1,则将该闪存块的信息记录到健康闪存块列表hll中;若pe=peinit,如图1中的闪存块2,则将该闪存块的信息记录到临时失效闪存块块列表twl中;

临时失效闪存块块列表twl中的闪存块被执行加热操作后,将该闪存块的信息从临时失效闪存块块列表twl迁移到已加热闪存块列表htl中,如图1中的闪存块3;

在本实施例中,对闪存块第一次加热后,能增加的擦写次数为800,经过多次加热后擦写次数最高可达到4000;当已加热闪存块列表htl中的闪存块耗尽最近一次加热操作为其作所增加的擦写次数后,如图1中的闪存块4,将该闪存块的信息从已加热闪存块列表htl中迁移到临时失效闪存块块列表twl中;

当临时失效闪存块块列表twl中的闪存块所进行的加热操作总次数超过预设的阈值时,如图1中的闪存块5,将该闪存块的信息从临时失效闪存块块列表twl迁移到永久失效闪存块列表pwl中;

将自加热固态硬盘中,健康闪存块列表hll和已加热闪存块列表htl所对应的闪存块划分到普通区域,临时失效闪存块块列表twl所对应的闪存块划分到刷新区域,永久失效闪存块列表pwl所对应的闪存块划分到不可用区域;普通区域和刷新区域中的闪存块均可分配给写请求。

传统的自加热固态硬盘中,一旦闪存块失效,会立即执行加热操作;本实施例根据闪存块的擦写次数、加热操作次数等信息,利用四种不同的列表分别存储不同状态的闪存块信息,实现了对闪存块的更为精确的管理,并且由于本发明中,对于临时失效的闪存块,即临时失效闪存块列表中记录的闪存块,并不立即执行加热操作,而是仍然可以分配给写请求,因此,能够推迟对失效块的加热操作,从而延长自加热固态硬盘的使用寿命。

在一个可选的实施方式中,上述自加热固态硬盘的闪存块管理方法,还包括:

周期性的监测普通区域中的闪存块数量n,在n≤tusable时,则根据临时失效闪存块块列表twl从刷新区域中选择一个闪存块,作为待加热闪存块,对其进行加热操作后,将待加热闪存块的信息从临时失效闪存块块列表twl迁移到已加热闪存块列表htl中,并将其重新划分到普通区域中;

其中,tusable为预设的第一阈值,可根据自加热固态硬盘实际的容量、负载的io特性等灵活设定,在本实施例中,tusable=80%*total,其中total表示自加热固态硬盘中的闪存块总个数;每次从刷新区域中仅选择一个闪存块执行加热操作,能够在保证有足够的可用闪存块的情况下,避免带来性能波动;

可选地,所选取的待加热闪存块为刷新区域中具有最少加热次数的闪存块,由此能够有效地均衡闪存块的加热次数,延长自加热固态硬盘的寿命。

进一步地,上述自加热固态硬盘的闪存块管理方法,还可包括:

如图2所示,按照如下步骤处理写请求:

(s1)根据写请求的逻辑地址lpn查找自加热固态硬盘的映射表,以判断写请求是首次写请求还是更新写请求,若是首次写请求,则转入步骤(s2);否则,转入(s5);

自加热固态硬盘中存储有逻辑地址页号到物理地址页号的映射关系,根据写请求的逻辑地址lpn查找该映射表,若找到对应的物理地址,则说明该写请求为更新写请求;否则,说明该写请求为首次写请求;

(s2)对首次写请求的数据进行冷热度分析,以识别该数据的类型,若为冷数据,则转入步骤(s3);若为热数据,则转入步骤(s4);

可以采用任意一种冷热度分析方法来确定请求的数据是冷数据还是热数据,在此将不作一一列举;

(s3)在普通区域中为首次写请求分配一个闪存块,写入数据并记录下该数据当前的写时间,作为逻辑地址lpn所对应的最新写时间tlast,写请求处理结束;

可选地,在普通区域中为首次写请求分配闪存块时,优先分配健康闪存块列表hll中记录的闪存块,若健康闪存块列表hll中记录的闪存块均已分配,则分配已加热闪存块列表htl中记录的闪存块,以均衡普通区域中闪存块的擦写次数;

(s4)在刷新区域中为首次写请求分配一个闪存块,写入数据并记录下该数据当前的写时间,作为逻辑地址lpn所对应的最新写时间tlast,写请求处理结束;

在本实施例中,在刷新区域中为首次写请求分配闪存块时,若分配不成功,则从普通区域中分配闪存块,以保证写请求的正常处理;

(s5)对更新写请求的数据进行冷热度分析,以识别该数据的类型,若为冷数据,则转入步骤(s6);若为热数据,则转入步骤(s7);

在一个可选的实施方式中,步骤(s5)中,对更新写请求的数据进行冷热度分析,包括:

获得逻辑地址lpn所对应的最新写时间tlast,以根据当前时间与写时间tlast计算数据更新频率tupdate,若tupdate≥thot,则将更新写请求的数据识别为冷数据;否则,将更新写请求的数据识别为热数据;

其中,thot为预设的第二阈值,可根据负载的io特性相应设定,在本实施例中,thot=120分钟;

(s6)在普通区域中为更新写请求分配一个闪存块,写入数据并将逻辑地址lpn所对应的最新写时间tlast更新为当前时间,将更新写请求所对应的旧数据置为失效,写请求处理结束;

同样地,在普通区域中为更新写请求分配闪存块时,可优先分配健康闪存块列表hll中记录的闪存块,若健康闪存块列表hll中记录的闪存块均已分配,则分配已加热闪存块列表htl中记录的闪存块,以均衡普通区域中闪存块的擦写次数;

(s7)在刷新区域中为写请求分配一个闪存块,写入数据并将逻辑地址lpn所对应的最新写时间tlast更新为当前时间,将更新写请求所对应的旧数据置为失效,写请求处理结束;

同样地,在本实施例中,在刷新区域中为更新写请求分配闪存块时,若分配不成功,则从普通区域中分配闪存块,以保证写请求的正常处理。

冷数据需要较长的数据保留时间,而热数据仅需要较短的数据保留时间;本实施例中,普通区域中的闪存块能支持较长的数据保留时间,而刷新区域中的闪存块仅能支持较短的数据保留时间,本实施例基于冷、热数据的访问特性以及不同闪存块的存储特性,在普通区域中为冷数据分配闪存块,在刷新区域中为热数据分配闪存块,能够在保证满足数据所要求的保留时间的同时,继续利用临时失效的闪存块,因此,本实施例能够有效减少加热操作的次数,从而减少加热操作对存储系统io性能的负面影响,有效提高自加热固态硬盘的性能。

为了进一步保证数据存储的可靠性,在一个可选的实施方式中,上述自加热固态硬盘的闪存块管理方法,还包括:

在刷新区域分配闪存块并写入数据后,跟踪所分配的闪存块能支持的数据保留时间tretention,若所写入的数据在数据保留时间tretention到达时还未失效,说明该数据实际上是一个不经常更新的冷数据,但是在上一次冷热度分析时被误分类成热数据了,则将该数据从刷新区域迁移至普通区域中,并将该闪存块上的旧数据置为失效;

闪存块能支持的数据保留时间tretention,可根据tretention=cber/dr(pe)计算,其中,cber表示自加热固态硬盘内置的纠错码能够纠正的比特误码率,dr(pe)表示在擦写次数为pe时,每天的比特误码率。

在本发明的另一个实施例中,提供了一种自加热固态硬盘的闪存块管理设备,包括:计算机可读存储介质和处理器;

计算机可读存储介质用于存储可执行程序;

处理器用于读取计算机可读存储介质中存储的可执行程序,执行上述方法实施例所提供的自加热固态硬盘的闪存块管理方法。

在本发明的又一个实施例中,提供了一种自加热固态硬盘,包括:内置dram、闪存和上述实施例所提供的自加热固态硬盘的闪存块管理设备。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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