掌桥专利:专业的专利平台
掌桥专利
首页

失效数据块的选取方法、装置及电子设备

文献发布时间:2023-06-19 18:29:06


失效数据块的选取方法、装置及电子设备

技术领域

本发明涉及存储技术领域,尤其涉及一种失效数据块的选取方法、装置及电子设备。

背景技术

目前,由于NAND Flash(非易失性随机访问存储介质)的固有特性,在SSD(固态硬盘)使用过程中,每个block(数据块)中可能存在部分已经失效的page(数据页),失效的page不可以单独执行program(程序)用来存放数据。传统方式一般使用贪婪算法选择回收目标block,通常选择有效Page最小的block作为回收块,该方法只注重回收效率,而忽略了block擦写次数以及block更新频率,这会造成block磨损不均衡,某block被写穿,减少了SSD盘片容量。

发明内容

本发明的目的在于提供标效数据块的选取方法、装置及电子设备,以避免数据块磨损不均衡,从而保证了固态硬盘容量。

本发明提供的一种失效数据块的选取方法,方法包括:

获取多个失效数据块,以及每个失效数据块对应的运行参数值;其中,运行参数值包括:有效数据页的数量、擦写次数、时间戳;

基于运行参数值,计算每个失效数据块对应的运行结果;

将数值最小的运行结果所对应的失效数据块确定为目标失效数据块。

进一步的,获取多个失效数据块,以及每个失效数据块对应的运行参数值的步骤包括:

获取多个初始数据块;其中,每个初始数据块包括预设数量的数据页,每个数据页用于存储用户数据;每个数据页为有效数据页或无效数据页;

判断多个初始数据块中是否存在失效数据块;其中,每个失效数据块中的所有数据页均存储有用户数据,且每个失效数据块包括至少一个有效数据页和至少一个失效数据页;

如果多个初始数据块中存在失效数据块,确定失效数据块的数量;

如果失效数据块的数量大于1,则获取每个失效数据块对应的运行参数值。

进一步的,方法还包括:

从多个初始数据块中选取目标有效数据块;其中,目标有效数据块中的所有数据页均未存储用户数据;

将目标失效数据块中的所有有效数据页中存储的用户数据迁移至多个初始数据块中的目标有效数据块的数据页。

进一步的,获取每个失效数据块对应的运行参数值的步骤包括:

获取预设的第一记录表、第二记录表和第三记录表;其中第一记录表用于记录每个失效数据块中有效数据页的数量;第二记录表用于记录每个失效数据块的擦写次数的数量;第三记录表用于记录每个失效数据块中最后一次写入用户数据时对应的时间戳;

基于第一记录表、第二记录表和第三记录表,获取每个失效数据块对应的有效数据页的数量、擦写次数以及时间戳。

进一步的,每个失效数据块对应的运行结果通过以下公式确定:

其中,Nice

本发明提供的一种失效数据块的选取装置,装置包括:

获取模块,用于获取多个失效数据块,以及每个失效数据块对应的运行参数值;其中,运行参数值包括:有效数据页的数量、擦写次数、时间戳;

计算模块,用于基于运行参数值,计算每个失效数据块对应的运行结果;

选取模块,用于将数值最小的运行结果所对应的失效数据块确定为目标失效数据块。

进一步的,获取模块还用于:

获取多个初始数据块;其中,每个初始数据块包括预设数量的数据页,每个数据页用于存储用户数据;每个数据页为有效数据页或无效数据页;

判断多个初始数据块中是否存在失效数据块;其中,每个失效数据块中的所有数据页均存储有用户数据,且每个失效数据块包括至少一个有效数据页和至少一个失效数据页;

如果多个初始数据块中存在失效数据块,确定失效数据块的数量;

如果失效数据块的数量大于1,则获取每个失效数据块对应的运行参数值。

进一步的,装置还包括迁移模块,迁移模块用于:

从多个初始数据块中选取目标有效数据块;其中,目标有效数据块中的所有数据页均未存储用户数据;

将目标失效数据块中的所有有效数据页中存储的用户数据迁移至多个初始数据块中的目标有效数据块的数据页。

本发明提供的一种电子设备,电子设备包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述任一项的方法。

本发明提供的一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述任一项的方法。

本发明提供的失效数据块的选取方法、装置及电子设备,通过获取多个失效数据块,以及每个失效数据块对应的运行参数值;其中,运行参数值包括:有效数据页的数量、擦写次数、时间戳;基于运行参数值,计算每个失效数据块对应的运行结果;将数值最小的运行结果所对应的失效数据块确定为目标失效数据块。该方式,通过综合考虑多个失效数据块的有效数据页的数量、擦写次数以及更新频率,从而确定失效数据块,可以避免磨损不均衡的问题,保证了固态硬盘的容量。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种失效数据块的选取方法的流程图;

图2为本发明实施例提供的另一种失效数据块的选取的流程图;

图3为本发明实施例提供的一种第一记录表、第二记录表和第三记录表的示意图;

图4为本发明实施例提供的一种根据Nice值选取失效数据块的示意图;

图5为本发明实施例提供的一种有效数据页中存储的用户数据迁移示意图;

图6为本发明实施例提供的一种选取失效数据块的流程图;

图7为本发明实施例提供的一种失效数据块的选取装置的结构示意图;

图8为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,NAND Flash在执行program之前需要进行erase(删除)操作,并且erase操作的单位为一个block(包含若干个page),而program的最小单位是一个page,并且block中的数据不支持rewrite(更新)。当update(更新)数据时,新数据写到新的page,旧数据所在的page被标记为无效。由于NAND Flash这样的特性,在SSD使用过程中,每个block中可能存在部分已经失效的page,失效的page不可以单独执行program用来存放数据。

对此,传统方式一般可以使用贪婪算法选择回收目标block,通常选择有效Page最小的block作为回收块,该方法只注重回收效率,而忽略了block擦写次数以及block更新频率,这会造成block磨损不均衡,某block被写穿,减少了SSD盘片容量,基于此,本发明提供了一种失效数据块的选取方法、装置及电子设备。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种失效数据块的选取方法进行详细介绍,如图1所示,该方法包括如下步骤:

步骤S102,获取多个失效数据块,以及每个失效数据块对应的运行参数值;其中,运行参数值包括:有效数据页的数量、擦写次数、时间戳。

在具体实现过程中,用户写入用户数据到固态硬盘的过程中可能会随时产生失效数据块,具体产生的数量可能为1个,也可能为多个,失效数据块中存在失效的用户数据和用户新写入的有效用户数据,由于固态硬盘内存是有限的,当存在失效用户数据时,就需要进行擦除操作,释放更多的内存资源,但是擦除操作的单位为一整个数据块,因此,有效用户数据也会被擦除,造成用户数据丢失,为了避免这种情况的产生,可以使用GC垃圾回收器回收失效数据块中所有有效用户数据,如果只有一个失效数据块,则可以直接使用GC垃圾回收器回收该失效数据块中的所有有效用户数据,但如果有多个失效数据块,就需要根据各个失效数据块的运行参数值进行选择。

每个失效数据块都有对应的有效数据页的数量、擦写次数和时间戳,其中,失效数据块中有效数据页的数量可以为一个,也可以为多个,用于存放有效用户数据,擦写次数可以理解为失效数据块中数据被擦除的次数;失效数据块对应的时间戳可以理解为失效数据快中最后一次写入用户数据的时间戳,实际实现时,如果有多个失效数据块,首先需要获取各个失效数据块以及各个失效数据块对应的有效数据页的数量、擦写次数和时间戳。

步骤S104,基于运行参数值,计算每个失效数据块对应的运行结果。

步骤S106,将数值最小的运行结果所对应的失效数据块确定为目标失效数据块。

在具体实现过程中,通过步骤S102后,要根据获取到的各个失效数据块对应的有效数据页的数量、擦写次数和时间戳进行计算,得到每个失效数据块对应的运行结果,然后将收数值最小的运行结果对应的失效数据块确定为垃圾回收器要回收的失效数据块,该数值最小的运行结果对应的失效数据块的擦除次数和有效数据页数量均较少,且存放的用户数据较新。

上述失效数据块的选取方法,通过获取多个失效数据块,以及每个失效数据块对应的运行参数值;其中,运行参数值包括:有效数据页的数量、擦写次数、时间戳;基于运行参数值,计算每个失效数据块对应的运行结果;将数值最小的运行结果所对应的失效数据块确定为目标失效数据块。该方式,通过综合考虑多个失效数据块的有效数据页的数量、擦写次数以及更新频率,从而确定失效数据块,可以避免磨损不均衡的问题,保证了固态硬盘的容量。

本发明实施例还提供了另一种失效数据块的选取方法,该方法在上述实施例方法的基础上实现,如图2所示,该方法包括如下步骤:

步骤S202,获取多个初始数据块;其中,每个初始数据块包括预设数量的数据页,每个数据页用于存储用户数据;每个数据页为有效数据页或无效数据页。

在具体实现过程中,固态硬盘中存在多个初始数据块,每个初始数据块都有固定数量的数据页,例如5个,6个等,用户可以把用户数据直接写到这些数据页中保存,其中,存放用户新写入的用户数据的数据页为有效数据页,存放用户之前写入的用户数据的数据页为无效数据页。

步骤S204,判断多个初始数据块中是否存在失效数据块;其中,每个失效数据块中的所有数据页均存储有用户数据,且每个失效数据块包括至少一个有效数据页和至少一个失效数据页。

在具体实现过程中,如果一个初始数据块的所有数据页中均存储有用户数据,而且这些数据页中,至少有一个存放用户之前写入的用户数据的无效数据页和一个存放用户新写入的用户数据的有效数据页,则将该初始数据块确定为失效数据块。

具体的,假设一个初始数据块中有7个数据页,如果这7个数据页中没有全部写有用户数据,或者全部没有写有用户数据,则不参与回收,如果这7个数据页中全部写有用户数据,但全部是有效用户数据或全部是无效用户数据,也不参与回收,其中,当全部是有效用户数据时,不做任何处理,当全部是无效用户数据时,直接擦除该初始数据块即可;只有当这7个数据页全部写有用户数据,且最少有1个或最多有6个已经写有旧的用户数据,或者最多有5个或最少有1个写有新的用户数据时,该初始数据块(相当于上述失效数据块)才可以参与回收。

步骤S206,如果多个初始数据块中存在失效数据块,确定失效数据块的数量。

步骤S208,如果失效数据块的数量大于1,则获取每个失效数据块对应的运行参数值。

在具体实现过程中,如果上述可参与回收初始数据块有多个,则可以获取多个可参与回收的初始数据块的运行参数值,根据获取的运行参数值计算每个可参与回收初始数据块对应的运行结果,找到运行结果数值最小对应的可参与回收的初始数据块(相当于目标失效数据块),对其进行回收。

具体的,可以通过以下步骤一至步骤二获取多个可参与回收的初始数据块的运行参数值:

步骤一:获取预设的第一记录表、第二记录表和第三记录表;其中第一记录表用于记录每个失效数据块中有效数据页的数量;第二记录表用于记录每个失效数据块的擦写次数的数量;第三记录表用于记录每个失效数据块中最后一次写入用户数据时对应的时间戳。

实际实现时,参见如图3所示的一种第一记录表、第二记录表和第三记录表,上述第一记录表、第二记录表和第三记录表一般均常驻于RAM中,且动态更新,具体的,固态硬盘中,用于存储用户数据的所有初始数据块维护一张VC表(第一记录表),表中记录每个block的有效数据量(有效数据页的数量),例如,VC_0代表数据块block0中的有效数据页的数量;用于存储用户数据的所有block维护一张PEC表(第二记录表),表中记录每个block的PE(擦写)次数,例如,PEC_0代表数据块block0的擦写次数;用于存储用户数据的所有block维护一张Seq表(第三记录表),表中记录每个block更新次序,每个block只会有一个Seq值,当前block中所有page都写满之后,下一个block的Seq值会加1,例如,Seq_0代表数据块block0中最后一次写入用户数据时对应的时间戳。

步骤二:基于第一记录表、第二记录表和第三记录表,获取每个失效数据块对应的有效数据页的数量、擦写次数以及时间戳。

实际实现时,根据第一记录表、第二记录表和第三记录表中记录数据,可以直接获取到每个失效数据块的有效数据页的数量、擦写次数以及时间戳。

步骤S210,基于运行参数值,计算每个失效数据块对应的运行结果。

具体的,可以通过以下计算公式计算每个失效数据块对应的运行结果:

其中,Nice

该公式的第一部分强调GC的回收效率,有效page越少,block被选中的机会就越大。第二部分强调块中数据新旧,即每个块中数据越新,被选中的机会就越大。第三部分强调磨损均衡,PEC越小,block被选中的机会就越大,最后从所有的写满的block中挑选出Nice值最小的block作为回收目标。

步骤S212,将数值最小的运行结果所对应的失效数据块确定为目标失效数据块。

假设有六个失效数据块,每个失效数据块有26个数据页,六个失效数据块分别对应的VC(有效数据页的数量)PEC(擦写次数)、Seq(时间戳)和Nicei(运行结果)如图4所示。

如果按照传统方法应该选VC最小的block,即block0作为回收目标,但是block0的PEC已经明显高于其他block,会造成磨损不均衡。按照本发明方法,可以首先选择运行结果最小的block2作为回收目标,其次是block1、block3,然后选择block0。

贪婪算法选择回收块时,选择有效Page最小的block作为回收块,把有效Page迁移至新的块上,该方法只注重回收效率,而忽略了block擦写次数以及block更新频率,这会造成block磨损不均衡,某block被写穿,减少了SSD盘片容量。

针对传统贪婪算法的缺陷,本发明旨在如何准确地选择回收的目标失效数据块,结合贪婪算法的优点同时又把各个失效数据块的擦写次数考虑进来,兼顾了目标块的磨损程度,以及块中的数据新旧程度即输入block的回收效率、擦写次数、block的时间戳,通过计算得到该block的Nice值,选择Nice值最小的block作为回收的目标块,改善磨损不均衡的问题,同时偏爱那些VC小且存储新数据的block,即热数据块容易被选中,可降低SSD的写放大。

步骤S214,从多个初始数据块中选取目标有效数据块;其中,目标有效数据块中的所有数据页均未存储用户数据

步骤S216,将目标失效数据块中的所有有效数据页中存储的用户数据迁移至多个初始数据块中的目标有效数据块的数据页。

在实际实现过程中,通过GC可以把目标失效数据块中所有有效page中的数据迁移至一个新的block(目标有效数据块)中,那么目标失效数据块中的所有page都变成无效,执行erase操作也不会造成数据丢失,并释放出更多的page用于存放数据。

具体的参见图5所示的一种有效数据页中存储的用户数据迁移示意图,block x为回收目标(目标失效数据块),block y迁移目标块(目标有效数据块),block x有效page1、3、7、9、14迁移至block y,block x中所有的page标记为free,可用来存放其他的数据。

为了更好的理解上述实施例,参见图6所示的选取失效数据块的流程图,选择回收块(失效数据块)时,第一步需要判断是否满足GC启动条件(有无失效数据块),如果满足,选择Nice最小的block作为回收目标块,从回收目标块上迁移数据至新块上,释放回收的目标块。

该方法启动GC的条件满足后,从已写满的block中选择合适的目标作为回收目标,并综合考虑block的回收效率、磨损程度、块中数据新旧,改善GC效率,提升SSD整盘寿命,通过GC可以把block中所有有效page中的数据迁移至一个新的block中,那么原block中的所有page都变成无效,执行erase操作也不会造成数据丢失,并释放出更多的page用于存放数据。

本发明实施例还提供了一种失效数据块的选取装置,如图7所示,装置包括:获取模块30,用于获取多个失效数据块,以及每个失效数据块对应的运行参数值;其中,运行参数值包括:有效数据页的数量、擦写次数、时间戳;计算模块31,用于基于运行参数值,计算每个失效数据块对应的运行结果;选取模块32,用于将数值最小的运行结果所对应的失效数据块确定为目标失效数据块。

上述失效数据块的选取装置,通过获取多个失效数据块,以及每个失效数据块对应的运行参数值;其中,运行参数值包括:有效数据页的数量、擦写次数、时间戳;基于运行参数值,计算每个失效数据块对应的运行结果;将数值最小的运行结果所对应的失效数据块确定为目标失效数据块。该装置,通过综合考虑多个失效数据块的有效数据页的数量、擦写次数以及更新频率,从而确定失效数据块时,可以避免磨损不均衡的问题,保证了固态硬盘的容量。

进一步的,获取模块还用于:获取多个初始数据块;其中,每个初始数据块包括预设数量的数据页,每个数据页用于存储用户数据;每个数据页为有效数据页或无效数据页;判断多个初始数据块中是否存在失效数据块;其中,每个失效数据块中的所有数据页均存储有用户数据,且每个失效数据块包括至少一个有效数据页和至少一个失效数据页;如果多个初始数据块中存在失效数据块,确定失效数据块的数量;如果失效数据块的数量大于1,则获取每个失效数据块对应的运行参数值。

进一步的,装置还包括迁移模块,迁移模块用于:从多个初始数据块中选取目标有效数据块;其中,目标有效数据块中的所有数据页均未存储用户数据;将目标失效数据块中的所有有效数据页中存储的用户数据迁移至多个初始数据块中的目标有效数据块的数据页。

进一步的,获取模块还用于:获取预设的第一记录表、第二记录表和第三记录表;其中第一记录表用于记录每个失效数据块中有效数据页的数量;第二记录表用于记录每个失效数据块的擦写次数的数量;第三记录表用于记录每个失效数据块中最后一次写入用户数据时对应的时间戳;基于第一记录表、第二记录表和第三记录表,获取每个失效数据块对应的有效数据页的数量、擦写次数以及时间戳。

进一步的,每个失效数据块对应的运行结果通过以下公式确定:

其中,Nice

本发明实施例所提供的失效数据块的选取装置,其实现原理及产生的技术效果和前述失效数据块的选取方法实施例相同,失效数据块的选取装置实施例部分,可参考前述失效数据块的选取方法实施例中相应内容。

本发明实施例还提供了一种电子设备,参见图8所示,该电子设备包括处理器130和存储器131,该存储器131存储有能够被处理器130执行的机器可执行指令,该处理器130执行机器可执行指令以实现上述方法。

进一步地,图8所示的电子设备还包括总线132和通信接口133,处理器130、通信接口133和存储器131通过总线132连接。

其中,存储器131可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口133(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线132可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器130可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器130中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器131,处理器130读取存储器131中的信息,结合其硬件完成前述实施例的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述方法,具体实现可参见方法实施例,在此不再赘述。

本发明实施例所提供的失效数据块的选取方法、装置及电子设备,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 随机选取特征的方法、装置、电子设备及存储介质
  • 稿件基因的选取方法、装置与电子设备
  • 译员基因的选取方法、装置与电子设备
  • 稿件基因的选取方法、装置与电子设备
  • 译员基因的选取方法、装置与电子设备
  • 对象选取模型的训练方法、选取方法、装置及电子设备
  • 文本选取方法、文本选取装置、电子设备和可读存储介质
技术分类

06120115585855