一种管理异常存储块的方法和装置与流程

1.本发明涉及数据存储

技术领域


:,尤其涉及一种管理异常存储块的方法和装置。

背景技术


::2.随着信息技术的飞速发展和数据量的剧增,数据存储设备得到广泛应用,例如闪存作为一种非易失性随机访问存储介质近年来得到飞速发展和应用。3.通常,存储设备(例如nand闪存)中发生异常存储块的主要原因包括:擦写次数增加引起的老化、干扰因素(例如:相邻单元写入干扰、长时间存储电荷流失、读操作引起的干扰,电压稳定程度、温差效应等)等;目前,针对异常存储块的管理通常是在闪存的原始误码率超过了纠错能力的情况下,将发生异常的一个或多个存储单元记录为uecc(uncorrectableerrorcorrectioncode,不可纠错码),并将存储单元所在的存储块记录为不可用的异常存储块。然而,其他干扰因素所被标记为不可用的异常存储块,往往是可恢复的;可见,目前现有的管理异常存储块的方法存在管理颗粒度较大,管理的准确性较低的问题,并且在标记的异常存储块的数量较多的情况下,缩短了存储设备的使用寿命。技术实现要素:4.有鉴于此,本发明实施例提供一种管理异常存储块的方法和装置,能够自动地将有效数据从异常存储块移动至其他可用存储块,并自动判断出异常存储块是否满足设定回收条件,在对异常存储块执行回收操作得到可用的目标存储块以后,为目标存储块生成新的存储块编号;以生成目标存储块中的存储数据的目标物理地址;通过构建存储数据的逻辑地址与目标物理地址的对应关系;从目标存储块中定位存储数据。本发明的实施例提高了管理异常存储块的准确度、精细化程度以及自动化程度,从而延长了存储设备的使用寿命。5.为实现上述目的,根据本发明的一个方面,提供了一种管理异常存储块的方法,包括:响应于针对异常存储块的回收操作,获取所述异常存储块包含的有效数据;将所述有效数据从所述异常存储块移动至其他可用存储块,在判断出所述异常存储块满足设定回收条件的情况下,对所述异常存储块执行回收操作,得到可用的目标存储块;为所述目标存储块生成新的存储块编号;基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;构建所述存储数据的逻辑地址与目标物理地址的对应关系;以通过所述对应关系从所述目标存储块中定位所述存储数据。6.可选地,所述响应于针对异常存储块的回收操作,包括:接收到针对异常存储块进行回收操作的外部命令,根据所述外部命令触发针对所述异常存储块的回收操作;或者,监听所述异常存储块归属的存储设备上的数据交互状态,在判断出所述数据交互状态为空闲、并且保持空闲状态的时长超过设定时长阈值的情况下,触发针对所述异常存储块的回收操作。7.可选地,所述判断所述异常存储块满足设定回收条件,包括:在将所述有效数据从所述异常存储块移动至其他可用存储块之后,判断所述异常存储块中是否仍存在剩余有效数据,如果是,则在确定出所述剩余有效数据归属于一个或多个异常存储单元的情况下,确定所述异常存储块满足所述设定回收条件;否则,确定所述异常存储块包含的一个或多个异常存储单元包含的数据为无效数据,并确定所述异常存储块满足所述设定回收条件。8.可选地,所述对所述异常存储块执行回收操作得到可用的目标存储块,包括:在对所述异常存储块执行回收操作后生成参考存储块;针对所述参考存储块执行数据读写操作,根据所述数据读写操作的操作结果判断所述参考存储块是否为可用;在所述操作结果指示为正常的情况下,确定所述参考存储块为可用的目标存储块;否则确定所述参考存储块为不可恢复的异常存储块。9.可选地,所述针对所述参考存储块执行数据读写操作,包括:获取生成所述参考存储块的所述异常存储块的数据存储类型;其中,所述数据存储类型与所述异常存储块产生一个或多个异常存储单元时所述使用的数据存储类型相同;针对所述参考存储块,执行对应于所述数据存储类型的数据读写操作,以确定所述数据读写操作的结果。10.可选地,所述针对所述参考存储块执行数据读写操作,根据所述数据读写操作的读写结果确定得到的所述参考存储块是否为可用;包括:将任意数据写入到所述参考存储块;获取所述异常存储块中异常存储单元对应的存储位置;从所述参考存储块中定位到所述存储位置,并从所述存储位置执行读取数据的操作,在判断出读取数据的操作结果为正常的情况下,确定所述参考存储块为可用的目标存储块;否则确定所述参考存储块为不可恢复的异常存储块。11.可选地,所述为所述目标存储块生成新的存储块编号,包括:获取所述目标存储块归属的存储设备包含的存储块总数;为所述目标存储块设置新的存储块编号,其中,所述新的存储块编号大于所述存储块总数。12.可选地,所述为所述目标存储块设置新的存储块编号,其中,所述新的存储块编号大于所述存储块总数,包括:获取所述目标存储块对应的所述异常存储块的原存储块编号;基于所述原存储块编号,叠加设定偏移量得到所述新的存储块编号;其中,所述原存储块编号与所述设定偏移量的叠加结果大于所述存储块总数。13.可选地,所述基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;并构建所述存储数据的逻辑地址与目标物理地址的对应关系;包括:接收到针对所述目标存储块包含的存储数据的操作指令,获取所述存储数据对应的逻辑地址,为所述存储数据构建其对应的所述逻辑地址与所述目标物理地址的对应关系;其中,所述目标物理地址为基于所述新的存储块编号所生成;所述通过所述对应关系,从所述目标存储块中定位所述存储数据,包括:通过所述对应关系、以及所述存储数据对应的所述逻辑地址查到所述存储数据的目标物理地址;从所述目标物理地址中解析出所述新的存储块编号,在判断出所述新的存储块编号大于所述存储块总数的情况下,将所述新的存储块编号减去所述设定偏移量,得到所述原存储块编号,基于所述原存储块编号对应的物理地址定位所述存储数据。14.根据本发明的另一方面,提供了一种管理异常存储块的装置,所述装置包括:触发回收模块、执行回收模块、管理存储块模块;其中,所述触发回收模块,用于响应于针对异常存储块的回收操作,获取所述异常存储块包含的有效数据;所述执行回收模块,用于在将所述有效数据从所述异常存储块移动至其他可用存储块之后,判断出所述异常存储块满足设定回收条件的情况下,对所述异常存储块执行回收操作,得到可用的目标存储块;所述管理存储块模块,用于为所述目标存储块生成新的存储块编号;基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;构建所述存储数据的逻辑地址与目标物理地址的对应关系;以通过所述对应关系从所述目标存储块中定位所述存储数据。15.可选地,所述管理异常存储块的装置,用于响应于针对异常存储块的回收操作,包括:接收到针对异常存储块进行回收操作的外部命令,根据所述外部命令触发针对所述异常存储块的回收操作;或者,监听所述异常存储块归属的存储设备上的数据交互状态,在判断出所述数据交互状态为空闲、并且保持空闲状态的时长超过设定时长阈值的情况下,触发针对所述异常存储块的回收操作。16.可选地,所述管理异常存储块的装置,用于判断所述异常存储块满足设定回收条件,包括:在将所述有效数据从所述异常存储块移动至其他可用存储块之后,判断所述异常存储块中是否仍存在剩余有效数据,如果是,则在确定出所述剩余有效数据归属于一个或多个异常存储单元的情况下,确定所述异常存储块满足所述设定回收条件;否则,确定所述异常存储块包含的一个或多个异常存储单元包含的数据为无效数据,并确定所述异常存储块满足所述设定回收条件。17.可选地,所述管理异常存储块的装置,用于对所述异常存储块执行回收操作得到可用的目标存储块,包括:在对所述异常存储块执行回收操作后生成参考存储块;针对所述参考存储块执行数据读写操作,根据所述数据读写操作的操作结果判断所述参考存储块是否为可用;在所述操作结果指示为正常的情况下,确定所述参考存储块为可用的目标存储块;否则确定所述参考存储块为不可恢复的异常存储块。18.可选地,所述管理异常存储块的装置,用于针对所述参考存储块执行数据读写操作,包括:获取生成所述参考存储块的所述异常存储块的数据存储类型;其中,所述数据存储类型与所述异常存储块产生一个或多个异常存储单元时所述使用的数据存储类型相同;针对所述参考存储块,执行对应于所述数据存储类型的数据读写操作,以确定所述数据读写操作的结果。19.可选地,所述管理异常存储块的装置,用于针对所述参考存储块执行数据读写操作,根据所述数据读写操作的读写结果确定得到的所述参考存储块是否为可用;包括:将任意数据写入到所述参考存储块;获取所述异常存储块中异常存储单元对应的存储位置;从所述参考存储块中定位到所述存储位置,并从所述存储位置执行读取数据的操作,在判断出读取数据的操作结果为正常的情况下,确定所述参考存储块为可用的目标存储块;否则确定所述参考存储块为不可恢复的异常存储块。20.可选地,所述管理异常存储块的装置,用于为所述目标存储块生成新的存储块编号,包括:获取所述目标存储块归属的存储设备包含的存储块总数;为所述目标存储块设置新的存储块编号,其中,所述新的存储块编号大于所述存储块总数。21.可选地,所述管理异常存储块的装置,用于为所述目标存储块设置新的存储块编号,其中,所述新的存储块编号大于所述存储块总数,包括:获取所述目标存储块对应的所述异常存储块的原存储块编号;基于所述原存储块编号,叠加设定偏移量得到所述新的存储块编号;其中,所述原存储块编号与所述设定偏移量的叠加结果大于所述存储块总数。22.可选地,所述管理异常存储块的装置,用于基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;并构建所述存储数据的逻辑地址与目标物理地址的对应关系;包括:接收到针对所述目标存储块包含的存储数据的操作指令,获取所述存储数据对应的逻辑地址,为所述存储数据构建其对应的所述逻辑地址与所述目标物理地址的对应关系;其中,所述目标物理地址为基于所述新的存储块编号所生成;所述通过所述对应关系,从所述目标存储块中定位所述存储数据,包括:通过所述对应关系、以及所述存储数据对应的所述逻辑地址查到所述存储数据的目标物理地址;从所述目标物理地址中解析出所述新的存储块编号,在判断出所述新的存储块编号大于所述存储块总数的情况下,将所述新的存储块编号减去所述设定偏移量,得到所述原存储块编号,基于所述原存储块编号对应的物理地址定位所述存储数据。23.根据本发明的另一方面,提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述管理异常存储块的方法。24.根据本发明的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行上述管理异常存储块的方法。25.上述发明中的一个实施例具有如下优点或有益效果:能够自动地将有效数据从异常存储块移动至其他可用存储块,并自动判断出异常存储块是否满足设定回收条件,在对异常存储块执行回收操作得到可用的目标存储块后,为目标存储块生成新的存储块编号;以生成目标存储块中的存储数据的目标物理地址;通过构建存储数据的逻辑地址与目标物理地址的对应关系;从目标存储块中定位存储数据。本发明的实施例提高了管理异常存储块的准确度、精细化程度以及自动化程度,从而延长了存储设备的使用寿命。26.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明27.在下面结合附图对于示例性实施例的描述中,本发明的更多细节、特征和优点被公开,在附图中:图1是本发明示例性实施例提供的一种管理异常存储块的方法的流程示意图;图1a是本发明示例性实施例提供的一种回收异常存储块的流程示意图;图2是本发明示例性实施例提供的一种管理可用的目标存储块的方法的流程示意图;图2a是本发明示例性实施例提供的一种异常存储块包含的数据的结构示意图;图2b是本发明示例性实施例提供的一种可用的目标存储块包含的数据的结构示意图;图2c是本发明示例性实施例提供的一种现有的数据逻辑地址和物理地址的对应关系示意图;图2d是本发明示例性实施例所构建的一种数据逻辑地址和物理地址的对应关系示意图;图3是本发明示例性实施例提供的一种管理异常存储块的装置的结构示意图;图4示出了能够用于实现本发明的实施例的示例性电子设备的结构框图。具体实施方式28.下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。29.应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。30.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。31.需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。32.本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。33.通常,在存储设备的使用中,由于擦写次数过多使存储单元的绝缘层变薄,导致存储电荷泄露,而浮栅中的存储电荷量和存储数据直接相关,因此读取数据时该存储单元会报错,如果该报错存储单元个数超过了纠错能力,则会记录为uecc(uncorrectableerrorcorrectioncode,不可纠错码),并且将存储块记录为异常存储块(也称之为坏块)。由该原因导致的存储单元存在无法恢复的特征,因此该种类的存储块将不再可用。34.而由于其他干扰因素,例如:相邻单元写入干扰、读次数过多、静止过久或者温度变化,也可能导致存储单元中的存储电荷量发生变化,使得根据存储电荷量读取出来的数据发生错误,因此也可能导致读取出现uecc,将所在的存储块记录为异常存储块;但是该种类的存储块的绝缘层并没有发生明显变化,在回收操作后可以正常使用。因此,该种类的异常存储会被记录为不可用是不合理的,导致降低存储设备的使用寿命。因此对该种类型的异常存储块加以回收,重新利用,可以在很大程度上有效延长存储设备的使用寿命。35.鉴于此,如图1所示,本发明实施例提供了一种管理异常存储块的方法,该方法可以包括以下步骤:步骤s101:响应于针对异常存储块的回收操作,获取所述异常存储块包含的有效数据。36.具体地,在本发明的实施例中,异常存储块指包含有一个或多个标记为uecc(uncorrectableerrorcorrectioncode,不可纠错码)存储单元的存储块;除了擦写次数过多引起存储单元本身的损坏导致的uecc外,其他干扰因素(例如:相邻单元写入干扰、长时间存储电荷流失、读操作引起的干扰,电压稳定程度、温差效应等)导致的uecc,可以通过将该存储块执行回收操作后,使得该存储块可以重新进行数据读写;其中,对存储块的回收操作包括将异常存储块重新擦除,恢复为空白存储块,即恢复为存储块的初始状态。在本发明的实施例中,针对不同类型的因素导致的uecc进行判断。37.进一步地,触发针对异常存储块的回收操作的方法可以有两种:第一种方法:接收到针对异常存储块进行回收操作的外部命令,根据所述外部命令触发针对所述异常存储块的回收操作;具体地,外部命令可以通过磁盘管理软件中的选项、脚本、命令行等方法发送,可以理解的是,在执行对一个或多个异常存储块的回收操作的过程中,需暂停数据读写操作。38.第二种方法:监听所述异常存储块归属的存储设备上的数据交互状态,在判断出所述数据交互状态为空闲、并且保持空闲状态的时长超过设定时长阈值的情况下,触发针对所述异常存储块的回收操作;具体地,可以通过监听所述异常存储块归属的存储设备与主机之间的数据交互状态,其中,数据交互例如,存储设备与主机之间的数据读写、接收主机的控制指令等;数据交互状态可以为数据交互中、空闲(指不存在数据交互)等;在监听到数据交互状态为空闲的时长超过设定时长阈值的情况下,自动触发异常存储块的回收操作。其中,可以根据业务场景、存储设备类型等配置设定时长阈值的具体数值,例如:100ms。由此可见,通过自动监听数据交互状态而触发异常存储块的回收操作,提高了管理异常存储块的自动化程度和效率。39.即,所述响应于针对异常存储块的回收操作,包括:接收到针对异常存储块进行回收操作的外部命令,根据所述外部命令触发针对所述异常存储块的回收操作;或者,监听所述异常存储块归属的存储设备上的数据交互状态,在判断出所述数据交互状态为空闲、并且保持空闲状态的时长超过设定时长阈值的情况下,触发针对所述异常存储块的回收操作。40.进一步地,在接收到异常存储块的回收操作的请求(或指令)后,获取所述异常存储块包含的有效数据,通常每个存储块具有设定存储容量(例如:32m、64m等),存储块包含的有效数据指当前在该存储块中存储的数据量。可以理解的是,在对异常存储块进行回收(重新擦写)操作之间,需要处理当前存储块中存储的有效数据(例如:复制或移动到其他未标记异常的可用存储块)。41.步骤s102:将所述有效数据从所述异常存储块移动至其他可用存储块,在判断出所述异常存储块满足设定回收条件的情况下,对所述异常存储块执行回收操作,得到可用的目标存储块。42.具体地,为保持存储数据的可用性,针对异常存储块中的有效数据,首先将所述有效数据从所述异常存储块移动至其他可用存储块。其中,获取存储块中有效数据的方法可以通过读取为存储块设置的变量,利用该变量指示该存储块中包含的有效数据的数量。43.然后判断出异常存储块是否满足设定回收条件。通常,在管理块中包含的有效数据数量为零的情况下,代表该存储块中不存在有效数据,可以直接回收以重新使用该存储块。因此,设定回收条件关联于异常存储块中包含有效数据的数量,例如:将有效数据的数量为零作为设定回收条件。44.具体地,判断所述异常存储块是否满足设定回收条件,包括:在将所述有效数据从所述异常存储块移动至其他可用存储块之后,判断所述异常存储块中是否仍存在剩余有效数据,如果是,则在确定出所述剩余有效数据归属于一个或多个异常存储单元的情况下,确定所述异常存储块满足所述设定回收条件;否则,确定所述异常存储块包含的一个或多个异常存储单元包含的数据为无效数据,并确定所述异常存储块满足所述设定回收条件。45.进一步地,一个存储块包含多个存储页,因此在移动有效数据时,可以以存储页为单位进行遍历,在全部遍历之后,代表可以获取全部可以得到的有效数据并移动到其他可用存储块,在该步骤之后判断,是否当前异常存储块包含的有效数据为零,如果为零,则满足设定回收条件;如果当前有效数据不为零,代表标记为uecc的存储单元包含有效数据(该有效数据无法被正常读取),在这种情况下,可以将有效数据的数量直接设置为零以使该异常存储块满足设定回收条件,即,在确定出所述剩余有效数据归属于一个或多个异常存储单元的情况下,确定所述异常存储块满足所述设定回收条件,否则说明异常存储单元不包含有效数据,则可以继续执行该异常存储块的回收操作(擦除操作等)。46.进一步地,在判断出所述异常存储块满足设定回收条件的情况下,对所述异常存储块执行回收操作,得到参考存储块,进一步确定参考存储块是否为可用的目标存储块。47.优选地,由于导致uecc异常存储单元的多种因素中存在存储单元本身损坏的原因,因此,在执行回收操作之后,判断执行回收操作得到参考存储块是否为可用。48.在本发明的实施例中,判断的方法为:针对异常存储块进行回收操作后生成的参考存储块,写入任意数据(本发明对数据的内容和大小不做限定)用于测试,并查看写入数据操作是否正常;并获取在执行回收操作之前产生uecc的存储单元(即异常存储单元)的存储位置(例如地址等),定位到该存储位置并从该存储位置读取数据,查看读取数据的读取结果是否正常;在数据的读写均为正常的情况下,判断该参考存储块为可用的目标存储块,否则确定参考存储块为不可恢复的存储块;在本发明的实施例中,目标存储块即为可以正常用于数据存储的可用的存储块。即,所述对所述异常存储块执行回收操作得到可用的参考存储块,包括:在对所述异常存储块执行回收操作后生成参考存储块;针对所述参考存储块执行数据读写操作,根据所述数据读写操作的操作结果判断所述参考存储块是否为可用;在所述操作结果指示为正常的情况下,确定所述参考存储块为可用的目标存储块;否则确定所述参考存储块为不可恢复的无法继续使用的异常存储块。又即,针对所述参考存储块执行数据读写操作,根据所述数据读写操作的读写结果确定得到的所述参考存储块是否为可用;包括:将任意数据写入到所述参考存储块;获取所述异常存储块中异常存储单元对应的存储位置;从所述参考存储块中定位到所述存储位置,并从所述存储位置执行读取数据的操作,在判断出读取数据的操作结果为正常的情况下,确定所述参考存储块为可用的目标存储块;否则确定所述参考存储块为不可恢复的异常存储块。49.优选地,在对参考存储块执行数据读写操作时,获取该参考存储块的原始的数据存储类型,原始的数据存储类型例如包括tlc模式、slc模式、mlc模式等中的任意一种或者多种,其中,slc(single-levelcell)模式为一个存储器储存单元可存放1bit的数据,mlc(multi-levelcell)模式为一个存储器储存单元可存放2bit的数据,tlc(triple-levelcell)模式为一个存储器储存单元可存放3bit的数据等。例如,获取回收得到该参考存储块的异常存储块发生uecc时所使用的数据存储类型为tlc模式,则利用tlc模式(即相同的数据存储类型)执行测试参考存储块的数据读写操作;即,针对所述参考存储块执行数据读写操作,包括:获取生成所述参考存储块的所述异常存储块的数据存储类型;其中,所述数据存储类型与所述异常存储块产生一个或多个异常存储单元时所述使用的数据存储类型相同;针对所述参考存储块,执行对应于所述数据存储类型的数据读写操作,以确定所述数据读写操作的结果。50.由此可见,通过对回收异常存储块得到的参考存储块是否为可用的目标存储块进行判断,区分出已经恢复为可用的目标存储块,或者确定为不可恢复的异常存储块,从而提高了管理异常存储块的自动化程度,并提高了管理异常存储块的精细化程度。51.步骤s103:为所述目标存储块生成新的存储块编号;基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;构建所述存储数据的逻辑地址与目标物理地址的对应关系;以通过所述对应关系从所述目标存储块中定位所述存储数据。52.具体地,目标存储块即为经过回收后可用的存储块;针对存储于该存储块上的数据来说,在将任意存储数据写入(即存储)到存储块时,为该存储数据分配逻辑地址,并管理其逻辑地址与其物理地址之间的对应关系;可以理解的是,每一个新写入存储块中的存储数据均会被分配唯一的逻辑地址。而该存储数据的物理地址基于该存储块编号所确定。通过逻辑地址与物理地址之间的对应关系,可以定位数据读取数据,还可以判断该数据是否有效,例如通常可以通过将存储块包含的存储页的数据正常读取出来,以获取存储页中存储数据的逻辑地址,然后查询逻辑地址与物理地址之间的对应关系(对应关系可以存储于对应关系表、对应关系数据库、对应关系文件等),确定该逻辑地址对应的物理地址是否为该存储页,如果是,则表示该存储页中的数据是有效数据,反之,则为无效数据。由此可见,逻辑地址与物理地址之间的对应关系是定位存储数据的重要依据。53.其中,物理地址是由存储块编号、存储页编号、存储页包含的存储单元编号等确定的;在对异常存储块执行回收操作得到可用的目标存储块,其物理地址保持不变,当在新的可用的目标存储块写入新的数据后,为新的逻辑数据分配了对应的新的逻辑地址,就导致在逻辑地址与物理地址之间的对应关系中间出现多个(例如两个)逻辑地址对应同一个物理地址的情况,进而导致进一步地多种数据读写问题。54.下面利用图2a、图2b、图2c的示意图举例说明:图2a是本发明示例性实施例提供的一种异常存储块包含的数据的结构示意图;图2a示出了异常存储块包含的一个存储页包含的示意数据,如图2a所示,在异常存储块包含的存储页中:数据1对应的逻辑地址为“数据1逻辑地址”,其对应的物理地址为“物理地址b”。55.图2b是本发明示例性实施例提供的一种可用的目标存储块包含的数据的结构示意图;图2b示出了可用存储块包含的一个存储页包含的示意数据,如图2b所示,在回收异常存储块之后得到的可用的目标存储块所包含的存储页中与图2a相同的物理地址,写入了新的数据m,其对应的逻辑地址为“数据m逻辑地址”,其对应的物理地址仍为“物理地址b”。56.基于图2a、图2b的示例数据,图2c是一种现有的数据逻辑地址和物理地址的对应关系示意图;如图2c所示,“逻辑地址1”对应的物理地址为“物理地址b”,“逻辑地址m”对应的物理地址同样为“物理地址b”;而“逻辑地址1”对应的物理地址为“物理地址b”是异常存储块的对应关系,已知在对异常存储块进行回收操作后,该对应关系实际为无效的对应关系。但是如果采用遍历对应关系然后删除无效对应关系的方法,会导致计算资源和时间上的大量消耗,影响了存储设备的数据读写操作。57.鉴于此,在本发明的实施例中,采用为目标存储块生成新的存储块编号,基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址的技术手段克服上述问题。58.本发明的实施例在将异常存储块执行回收操作,得到新的可用的目标存储块以后,为目标存储块生成新的存储块编号。以基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址。59.具体地,为目标存储块生成新的存储块编号;其中,新的存储块编号大于所述存储块总数;例如:存储设备中包含的存储块总数为1000;可以理解的是,不同类型、不同用途的存储设备,包含的存储块为不同,本发明对具体存储块的总数和容量不做限定。通过计算和生成大于存储块总数的存储块编号,可以使得逻辑地址和物理地址的对应关系的有效性和唯一性,克服多个逻辑地址对应于同一个物理地址的问题。60.具体地,为目标存储块生成新的存储块编号的方法包括:由于存储数据的物理地址是结合存储块编号、存储页编号、存储页包含的存储单元编号等数据所确定的,因此存储块编号的不同可以确定出唯一的物理地址。61.获取所述目标存储块对应的所述异常存储块的原存储块编号;基于所述原存储块编号,叠加设定偏移量得到所述新的存储块编号;其中,所述原存储块编号与所述设定偏移量的叠加结果大于所述存储块总数。具体的,可以根据异常存储块的原存储块编号,叠加一个较大的设定偏移量,使得(原存储块编号+较大偏移量)的叠加结果大于存储块总数,例如:一个存储设备包含1000个存储块,存储块编号为0~999;假设原存储块编号为500,设定偏移量为1000,则得到新的存储块编号为1500,即,新的存储块编号大于存储块总数1000。本发明对新的存储块编号的具体数值、对设定偏移量的具体数值不做限定。62.进一步地,在接收到新的数据写入(存储)的指令,存储数据时,为该数据生成逻辑地址,同时构建其逻辑地址与新的目标物理地址之间的对应关系(目标物理地址为基于新的存储块编号所生成),即,基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;并构建所述存储数据的逻辑地址与目标物理地址的对应关系;包括:接收到针对所述目标存储块包含的存储数据的操作指令,获取所述存储数据对应的逻辑地址,为所述存储数据构建其对应的所述逻辑地址与所述目标物理地址的对应关系;其中,所述目标物理地址为基于所述新的存储块编号所生成。基于图2a、图2b的示例数据,图2d示出了本发明实施例所构建的一种数据逻辑地址和物理地址的对应关系示意图;不同于现有的方法对应的图2c的示例,如图2d所示,逻辑地址m对应的物理地址为“物理地址a”,“物理地址a”为基于所述新的存储块编号(其中,编号大于存储块总数)所生成的,作为目标存储块中的存储数据的目标物理地址。63.由此可见,通过基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;构建所述存储数据的逻辑地址与目标物理地址的对应关系提高了管理异常存储块的效率,节省了处理存储块中的数据消耗的资源。64.进一步地,通过所述对应关系从所述目标存储块中定位所述存储数据。具体地,利用新构建的逻辑地址与目标物理地址的对应关系,可以从存储块中定位和读取数据。优选地,在新的存储块编号为基于所述原存储块编号,叠加设定偏移量(例如1000)得到的情况下,可以将目标物理地址包含的新的存储块编号减去设定偏移量的方法来执行对数据进行定位并读取的操作指令,即,通过所述对应关系、以及所述存储数据对应的所述逻辑地址查到所述存储数据的目标物理地址;从所述目标物理地址中解析出所述新的存储块编号,在判断出所述新的存储块编号大于所述存储块总数的情况下,将所述新的存储块编号减去所述设定偏移量,得到所述原存储块编号,基于所述原存储块编号对应的物理地址定位所述存储数据。65.由此可见,通过本发明的实施例所构建的逻辑地址与目标物理地址的对应关系来管理和定位存储数据,进一步度提高了管理存储块的数据读写的效率,并克服了与回收操作关联的无效的逻辑地址和物理地址之间的对应关系而导致的数据读写问题。66.如图1a所示,本发明实施例提供了一种回收异常存储块的流程,该流程可以包括以下步骤:步骤s101a:开始。67.步骤s102a:判断是否遍历了异常存储块的全部存储页,如果是,执行步骤s104a;否则执行步骤s103a。68.步骤s103a:以存储页为单位将存储页包含的有效数据从异常存储块移动至其他可用存储块。69.步骤s104a:判断是否存在剩余有效数据,如果是,执行步骤s105a;否则执行步骤s106a。70.步骤s105a:确定出所述剩余有效数据归属于一个或多个异常存储单元。71.步骤s106a:确定所述异常存储块满足所述设定回收条件,对异常存储块执行回收操作。72.步骤s101a-步骤s106a描述了针对任一异常存储块,在对异常存储块执行回收操作之前的流程,即,所述判断所述异常存储块是否满足设定回收条件,包括:在将所述有效数据从所述异常存储块移动至其他可用存储块之后,判断所述异常存储块中是否仍存在剩余有效数据,如果是,则在确定出所述剩余有效数据归属于一个或多个异常存储单元的情况下,确定所述异常存储块满足所述设定回收条件;否则,确定所述异常存储块包含的一个或多个异常存储单元包含的数据为无效数据,并确定所述异常存储块满足所述设定回收条件。73.针对存储设备存在的多个异常存储块,可以通过循环执行步骤s101a-步骤s106a执行对每一个异常存储块的回收的步骤。74.如图2所示,本发明实施例提供了一种管理可用的目标存储块的方法的流程,该流程可以包括以下步骤:步骤s201:获取所述目标存储块对应的所述异常存储块的原存储块编号;基于所述原存储块编号,叠加设定偏移量得到所述新的存储块编号;其中,所述原存储块编号与所述设定偏移量的叠加结果大于所述存储块总数。75.步骤s202:接收到针对所述目标存储块包含的存储数据的操作指令,获取所述存储数据对应的逻辑地址,为所述存储数据构建其对应的所述逻辑地址与所述目标物理地址的对应关系。76.步骤s203:通过所述对应关系、以及所述存储数据对应的所述逻辑地址查到所述存储数据的目标物理地址;从所述目标物理地址中解析出所述新的存储块编号,在判断出所述新的存储块编号大于所述存储块总数的情况下,将所述新的存储块编号减去所述设定偏移量,得到所述原存储块编号,基于所述原存储块编号对应的物理地址定位所述存储数据。77.具体地,步骤s201-步骤s203描述了管理可用的目标存储块的方法的流程,关于为存储块设置新的存储块编号、构建新的逻辑地址与目标物理地址的对应关系、利用对应关系定位并读取数据的具体描述与步骤s103的描述一致,在此不再赘述。78.本发明实施例提供了一种管理异常存储块的装置,该装置用于实现上述管理异常存储块的方法。如图3所示的示意性框图,基于管理异常存储块的装置300包括:触发回收模块301、执行回收模块302、管理存储块模块303。其中,所述触发回收模块301,用于响应于针对异常存储块的回收操作,获取所述异常存储块包含的有效数据;所述执行回收模块302,用于在将所述有效数据从所述异常存储块移动至其他可用存储块之后,判断出所述异常存储块满足设定回收条件的情况下,对所述异常存储块执行回收操作,得到可用的目标存储块;所述管理存储块模块303,用于为所述目标存储块生成新的存储块编号;基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;构建所述存储数据的逻辑地址与目标物理地址的对应关系;以通过所述对应关系从所述目标存储块地中定位所述存储数据。79.本实施例中,能够自动地将有效数据从异常存储块移动至其他可用存储块,并自动判断出异常存储块是否满足设定回收条件,在对异常存储块执行回收操作得到可用的目标存储块后,为目标存储块生成新的存储块编号;以生成目标存储块中的存储数据的目标物理地址;通过构建存储数据的逻辑地址与目标物理地址的对应关系;从目标存储块中定位存储数据。本发明的实施例提高了管理异常存储块的准确度、精细化程度以及自动化程度,从而延长了存储设备的使用寿命。80.本发明示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本发明实施例的方法。81.本发明示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。82.本发明示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。83.参考图4,现将描述可以作为本发明的电子设备400的结构框图,其是可以应用于本发明的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,数据中心服务器、笔记本电脑、瘦客户机、膝上型计算机、台式计算机、工作站、个人数字助理、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。84.如图4所示,电子设备400包括计算单元401,其可以根据存储在只读存储器(rom)402中的计算机程序或者从存储单元408加载到随机访问存储器(ram)403中的计算机程序,来执行各种适当的动作和处理。在ram403中,还可存储设备400操作所需的各种程序和数据。计算单元401、rom402以及ram403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。85.电子设备400中的多个部件连接至i/o接口405,包括:输入单元406、输出单元407、存储单元408以及通信单元409。输入单元406可以是能向电子设备400输入信息的任何类型的设备,输入单元406可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元407可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元408可以包括但不限于磁盘、光盘。通信单元409允许电子设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。86.计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理。例如,在一些实施例中,上述管理异常存储块的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由rom402和/或通信单元409而被载入和/或安装到电子设备400上。在一些实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为上述管理异常存储块的方法。87.用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。88.在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。89.如本发明使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。90.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。91.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。92.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。当前第1页12当前第1页12

技术特征:


1.一种管理异常存储块的方法,其特征在于,所述方法包括:响应于针对异常存储块的回收操作,获取所述异常存储块包含的有效数据;将所述有效数据从所述异常存储块移动至其他可用存储块,在判断出所述异常存储块满足设定回收条件的情况下,对所述异常存储块执行回收操作,得到可用的目标存储块;为所述目标存储块生成新的存储块编号;基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;构建所述存储数据的逻辑地址与目标物理地址的对应关系;以通过所述对应关系从所述目标存储块中定位所述存储数据。2.根据权利要求1所述的方法,其特征在于,所述响应于针对异常存储块的回收操作,还包括:接收到针对异常存储块进行回收操作的外部命令,根据所述外部命令触发针对所述异常存储块的回收操作;或者,监听所述异常存储块归属的存储设备上的数据交互状态,在判断出所述数据交互状态为空闲、并且保持空闲状态的时长超过设定时长阈值的情况下,触发针对所述异常存储块的回收操作。3.根据权利要求1所述的方法,其特征在于,所述判断所述异常存储块满足设定回收条件,包括:在将所述有效数据从所述异常存储块移动至其他可用存储块之后,判断所述异常存储块中是否仍存在剩余有效数据,如果是,则在确定出所述剩余有效数据归属于一个或多个异常存储单元的情况下,确定所述异常存储块满足所述设定回收条件;否则,确定所述异常存储块包含的一个或多个异常存储单元包含的数据为无效数据,并确定所述异常存储块满足所述设定回收条件。4.根据权利要求1所述的方法,其特征在于,所述对所述异常存储块执行回收操作得到可用的目标存储块,包括:在对所述异常存储块执行回收操作后生成参考存储块;针对所述参考存储块执行数据读写操作,根据所述数据读写操作的操作结果判断所述参考存储块是否为可用;在所述操作结果指示为正常的情况下,确定所述参考存储块为可用的目标存储块;否则确定所述参考存储块为不可恢复的异常存储块。5.根据权利要求4所述的方法,其特征在于,所述针对所述参考存储块执行数据读写操作,包括:获取生成所述参考存储块的所述异常存储块的数据存储类型;其中,所述数据存储类型与所述异常存储块产生一个或多个异常存储单元时使用的数据存储类型相同;针对所述参考存储块,执行对应于所述数据存储类型的数据读写操作,以确定所述数据读写操作的结果。6.根据权利要求4所述的方法,其特征在于,所述针对所述参考存储块执行数据读写操作,根据所述数据读写操作的读写结果确定得到的所述参考存储块是否为可用,包括:
将任意数据写入到所述参考存储块;获取所述异常存储块中异常存储单元对应的存储位置;从所述参考存储块中定位到所述存储位置,并从所述存储位置执行读取数据的操作,在判断出读取数据的操作结果为正常的情况下,确定所述参考存储块为可用的目标存储块;否则确定所述参考存储块为不可恢复的异常存储块。7.根据权利要求1所述的方法,其特征在于,所述为所述目标存储块生成新的存储块编号,包括:获取所述目标存储块归属的存储设备包含的存储块总数;为所述目标存储块设置新的存储块编号,其中,所述新的存储块编号大于所述存储块总数。8.根据权利要求7所述的方法,其特征在于,所述为所述目标存储块设置新的存储块编号,其中,所述新的存储块编号大于所述存储块总数,包括:获取所述目标存储块对应的所述异常存储块的原存储块编号;基于所述原存储块编号,叠加设定偏移量得到所述新的存储块编号;其中,所述原存储块编号与所述设定偏移量的叠加结果大于所述存储块总数。9.根据权利要求1或权利要求8任一所述的方法,其特征在于,所述基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;并构建所述存储数据的逻辑地址与目标物理地址的对应关系,包括:接收到针对所述目标存储块包含的存储数据的操作指令,获取所述存储数据对应的逻辑地址,为所述存储数据构建其对应的所述逻辑地址与所述目标物理地址的对应关系;其中,所述目标物理地址为基于所述新的存储块编号所生成;所述通过所述对应关系,从所述目标存储块中定位所述存储数据,包括:通过所述对应关系、以及所述存储数据对应的所述逻辑地址查到所述存储数据的目标物理地址;从所述目标物理地址中解析出所述新的存储块编号,在判断出所述新的存储块编号大于存储块总数的情况下,将所述新的存储块编号减去设定偏移量,得到原存储块编号,基于所述原存储块编号对应的物理地址定位所述存储数据。10.一种管理异常存储块的装置,其特征在于,所述装置包括:触发回收模块、执行回收模块、管理存储块模块;其中,所述触发回收模块,用于响应于针对异常存储块的回收操作,获取所述异常存储块包含的有效数据;所述执行回收模块,用于在将所述有效数据从所述异常存储块移动至其他可用存储块之后,判断出所述异常存储块满足设定回收条件的情况下,对所述异常存储块执行回收操作,得到可用的目标存储块;所述管理存储块模块,用于为所述目标存储块生成新的存储块编号;基于所述新的存储块编号,生成所述目标存储块中的存储数据的目标物理地址;构建所述存储数据的逻辑地址与目标物理地址的对应关系;以通过所述对应关系从所述目标存储块中定位所述存储数据。
11.一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。

技术总结


本发明提供一种管理异常存储块的方法和装置,属于数据存储技术领域。方法包括:将有效数据从异常存储块移动至其他可用存储块,并自动判断出异常存储块是否满足设定回收条件,对异常存储块执行回收操作得到可用的目标存储块,并为所述目标存储块生成新的存储块编号、以及生成目标存储块中的存储数据的目标物理地址;通过构建存储数据的逻辑地址与目标物理地址的对应关系,从目标存储块中定位存储数据。本发明的实施例提高了管理异常存储块的准确度、精细化程度以及自动化程度,从而延长了存储设备的使用寿命。存储设备的使用寿命。存储设备的使用寿命。


技术研发人员:

陈文涛 叶中杰

受保护的技术使用者:

合肥康芯威存储技术有限公司

技术研发日:

2022.11.18

技术公布日:

2022/12/19

本文发布于:2024-09-25 04:35:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/41656.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   数据   异常   目标
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议