数据回收方法、控制器和计算机可读存储介质与流程

文档序号:29825900发布日期:2022-04-27 11:33阅读:75来源:国知局
数据回收方法、控制器和计算机可读存储介质与流程

1.本发明涉及储存设备领域,特别涉及一种数据回收方法、控制器和计算机可读存储介质。


背景技术:

2.基于目前的储存设备,例如nand flash设备,作为重要的存储介质,以其具有的高性能、高存储密度、小体积等众多优势,受到越来越广泛的应用。但是nand flash存在特殊的擦写操作,要求ftl实现一种称为垃圾回收的技术。在垃圾回收操作中,存在一个遍历回收源块过程,这个遍历回收源块的过程耗时较长,并且会导致ram中缓存的逻辑映射表的切换操作,存在较大开销。如果一个回收源块在完成整个数据回收任务前发生断电,每次重启后都需要对这个回收源块重新遍历所有数据,查询每一笔数据是否有效,相当于将断电重启前已经完成的操作再做一次,极大影响了设备的性能。


技术实现要素:

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.图1是本发明一个实施例提供的用于执行数据回收方法的系统架构平台的示意图;
31.图2是本发明一个实施例提供的数据回收方法的示意图;
32.图3是本发明一个实施例提供的数据回收方法的流程图之一;
33.图4是本发明一个实施例提供的数据回收方法的流程图之一;
34.图5是本发明一个实施例提供的数据回收方法中的数据有效性判断流程图;
35.图6是本发明一个实施例提供的数据回收方法中的闪存转换层的功能原理图。
具体实施方式
36.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
37.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书、权利要求书或上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
38.在相关技术中,基于目前的储存设备,例如nand flash设备,作为重要的存储介质,以其具有的高性能、高存储密度、小体积等众多优势,受到越来越广泛的应用。但是nand flash存在特殊的擦写操作,要求ftl实现一种称为数据回收的技术。在数据回收操作中,存在一个遍历回收源块过程,这个遍历回收源块的过程耗时较长,并且会导致ram中缓存的逻辑映射表的切换操作,存在较大开销。如果一个回收源块在完成整个数据回收任务前发生断电,每次重启后都需要对这个回收源块重新遍历所有数据,查询每一笔数据是否有效,相当于将断电重启前已经完成的操作再做一次,极大影响了设备的性能。
39.基于上述情况,本发明实施例提供了一种数据回收方法、控制器和计算机可读存储介质,上述方法包括以下步骤:首先,在储存设备上电重启后,获取预存的回收源块号和当前准备回收的数据的地址信息;接着,根据回收源块号和当前准备回收的数据的地址信息,确定与回收源块号对应的回收源块以及在回收源块中与当前准备回收的数据的地址信息对应的回收数据地址;最后,从回收源块中的回收数据地址开始执行数据回收处理。根据本发明实施例的技术方案,由于上电重启后,根据预存的回收源块号和当前准备回收的数据的地址信息来确定对应的回收源块和对应的当前准备回收的数据地址,并从该数据地址开始执行数据回收处理,避免了上电重启后要重新从头开始进行数据回收处理,极大提高了储存设备数据回收处理的性能。
40.下面结合附图,对本发明实施例作进一步阐述。
41.如图1所示,图1是本发明一个实施例提供的用于执行数据回收方法的系统架构平台100的示意图。
42.在图1的示例中,该系统架构平台100设置有处理器110和存储器120,其中,处理器110和存储器120可以通过总线或者其他方式连接,图1中以通过总线连接为例。
43.存储器120作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器120可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。
44.本领域技术人员可以理解的是,图1中示出的系统架构平台并不构成对本发明实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
45.在图1所示的系统架构平台中,处理器110可以调用储存在存储器120中的数据回
收程序,从而执行数据回收方法。
46.基于上述系统架构平台,下面提出本发明的数据回收方法的各个实施例。
47.如图2所示,图2是本发明一个实施例提供的数据回收方法的示意图,一种储存设备,编程前需要对编程的block进行擦除,编程最小单位为page,已经编程的page在下次擦除前不能再覆写。上层的逻辑写的最小单位为sector,并且允许直接覆写,这就需要闪存转换层实现数据回收操作。基于图2,提出图3至图4的数据回收方法流程图。
48.如图3、图4所示,图3、图4是本发明一个实施例提供的数据回收方法的流程图,包括但不限于有步骤s1,步骤s2,步骤s3,步骤s4。
49.步骤s1,在储存设备断电之前,在执行数据回收处理的情况下,记录当前处理的回收源块号以及回收源块中的当前准备回收的数据的地址信息。
50.步骤s2,将当前处理的回收源块的回收源块号以及回收源块中的当前准备回收的数据的地址信息记录在内存中;
51.当设定条件触发后,将内存中的回收源块号和当前准备回收的数据的地址信息写入至储存设备。
52.步骤s3,将内存中的回收源块号和当前准备回收的数据的地址信息记录于关键元数据,以使关键元数据携带有回收源块号和当前准备回收的数据的地址信息;利用闪存转换层将关键元数据写入至储存设备。
53.步骤s4,在储存设备上电重启后,获取预存的回收源块号和当前准备回收的数据的地址信息,根据回收源块号和当前准备回收的数据的地址信息,确定与回收源块号对应的回收源块以及在回收源块中与当前准备回收的数据的地址信息对应的回收数据地址,从回收源块中的回收数据地址开始执行数据回收处理。
54.由于上电重启后,根据预存的回收源块号和当前准备回收的数据的地址信息来确定对应的回收源块和对应的当前准备回收的数据地址,并从该数据地址开始执行数据回收处理,避免了上电重启后要重新从头开始进行数据回收处理,极大提高了储存设备数据回收处理的性能。
55.需要说明的是,关于上述设定条件触发为同步触发,该触发通过闪存转换层进行。
56.另外,需要说明的是,关于上述储存设备上电重启后,通过闪存转换层重建关键元数据,读取关键元数据所携带的回收源块号和当前准备回收的数据的地址信息。
57.另外,需要理解的是,关于上述闪存转换层,存在有以下功能:如图6所示,上层应用通过逻辑地址来访问存储设备,闪存转换层把不同的逻辑地址映射到储存设备中的不同位置,实现映射管理的功能。
58.本发明实施例提供的一种数据回收方法还包括:如图5所示,对回收源块中的数据进行有效性验证;当验证结果为有效,将回收源块中的有效数据迁移至回收目的块中,并擦除回收源块中的所有数据,当验证结果为无效,擦除回收源块中的所有数据。以此来释放数据块,达到有效数据聚集的目的,用于数据回收后的编程写入。
59.上述数据回收的过程称为遍历回收过程,在这一过程中,ram中缓存的逻辑映射表可能执行切换操作。如图6所示,遍历查询每一笔数据,就是通过检查每一笔数据的逻辑到物理的映射关系确认此笔数据是否有效,遍历的数据可能是逻辑离散的,这就需要访问多个不同的逻辑映射表,而ram中缓存的逻辑映射表数据是有限的,这就可能存在逻辑映射表
的切换操作。
60.基于上述的数据回收方法,下面提出本发明的控制器和计算机可读存储介质的各个实施例。
61.另外,本发明的一个实施例提供了一种控制器,该控制器包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的数据回收方法。
62.可以理解的是,处理器和存储器可以通过总线或者其他方式连接。
63.需要说明的是,本实施例中的控制器,可以对应为如图1所示实施例中的储存设备,能够构成图1所示实施例中的储存设备一部分,两者属于相同的发明构思,因此两者具有相同的实现原理以及有益效果,此处不再详述。
64.实现上述实施例的数据回收方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例的数据回收方法,例如,执行以上描述的图3至图6中的方法步骤。
65.值得注意的是,本发明实施例的控制器的具体实施方式和技术效果,可对应参照上述数据回收方法的具体实施方式和技术效果。
66.此外,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,当计算机可执行指令用于执行上述的数据回收方法,例如,执行以上描述的图3至6中的方法步骤。
67.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
68.以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1