发明内容
本发明实施例提供一种基于NAND flash的有效数据查找方法和NAND flash存储设备,以解决现有技术中查找有效数据速度慢、浪费资源的问题。
第一方面,本发明实施例提供了一种基于NAND flash的有效数据查找方法,包括:
根据数据块中存储的反向映射表,获取所述数据块中存储的目标数据的物理地址与逻辑地址的反向映射关系;
根据所述反向映射关系,从映射表块存储的正向映射表中获取所述目标数据的逻辑地址与物理地址的正向映射关系;
比较所述反向映射关系与正向映射关系,当比较结果为关系一致时,确定所述目标数据为有效数据。
进一步地,所述反向映射表存储为反向映射表数组,所述数组的每一项为所述数据块中存储的数据的逻辑地址。
进一步地,所述根据数据块中存储的反向映射表,获取所述数据块中存储的目标数据的物理地址与逻辑地址的反向映射关系,包括:
根据所述反向映射表数组,获取所述目标数据在反向映射表数组中的项数和所述目标数据的逻辑地址;
获取所述反向映射表数组在所述数据块中存储的物理地址,根据反向映射表的物理地址和所述目标数据的项数计算出所述目标数据的物理地址。
进一步地,所述根据所述反向映射关系,从映射表块存储的正向映射表中获取所述目标数据的逻辑地址与物理地址的正向映射关系,包括:
获取所述正向映射表的索引表,其中,所述索引表以逻辑地址为索引,记载与所述逻辑地址对应的最新的正向映射关系在所述映射表块中的映射表项的位置;
根据所述反向映射关系中的逻辑地址,在所述索引表中查找所述目标数据的逻辑地址对应的正向映射关系在所述映射表块中的映射表项的位置;
根据所述位置读取所述映射表项,获取所述目标数据的正向映射关系。
进一步地,所述反向映射表存储在所述数据块的最后一页。
第二方面,本发明实施例还提供了一种NAND flash存储设备,所述存储设备包括固件和NAND flash存储器,所述NAND flash存储器包括至少一个映射表块和至少一个数据块,所述数据块中存储有反向映射表;
所述固件包括:
反向映射关系获取模块,用于根据所述数据块中存储的反向映射表,获取所述数据块中存储的目标数据的物理地址与逻辑地址的反向映射关系;
正向映射关系获取模块,用于根据所述反向映射关系,从映射表块存储的正向映射表中获取所述目标数据的逻辑地址与物理地址的正向映射关系;
有效数据确定模块,用于比较所述反向映射关系与正向映射关系,当比较结果为关系一致时,确定所述目标数据为有效数据。
进一步地,所述反向映射表存储为反向映射表数组,所述数组的每一项为所述数据块中存储的数据的逻辑地址。
进一步地,所述反向映射关系获取模块包括:
逻辑地址获取单元,用于根据所述反向映射表数组,获取所述目标数据在反向映射表数组中的项数和所述目标数据的逻辑地址;
物理地址获取单元,用于获取所述反向映射表数组在所述数据块中存储的物理地址,根据反向映射表的物理地址和所述目标数据的项数计算出所述目标数据的物理地址。
进一步地,所述映射表块中还存储有所述正向映射表的索引表,其中,所述索引表以逻辑地址为索引,记载与所述逻辑地址对应的最新的正向映射关系在所述映射表块中的映射表项的位置;
所述正向映射关系获取模块包括:
索引表获取单元,用于获取所述正向映射表的索引表;
映射表项位置查找单元,用于根据所述反向映射关系中的逻辑地址,在所述索引表中查找所述目标数据的逻辑地址对应的最新的正向映射关系在所述映射表块中的映射表项的位置;
正向映射关系获取单元,用于根据所述位置读取所述映射表项,获取所述目标数据的正向映射关系。
进一步地,所述反向映射表存储在所述数据块的最后一页。
本发明实施例提供一种基于NAND flash的有效数据查找方法和NAND flash存储设备,直接根据数据块中存储的反向映射表即可获取所述数据块中存储的目标数据的物理地址与逻辑地址的反向映射关系,然后获取映射表块中目标数据的逻辑地址与物理地址的正向映射关系,最后比较反向映射关系和正向映射关系,如果比较结果为关系一致,则确定查找的目标数据为有效数据,提高了查找有效数据的效率,进而快速释放出更多的存储空间,提升了存储设备的性能,实用性强。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种基于NAND flash的有效数据查找方法的流程图,本实施例可适用于NAND flash存储设备,该方法可以由NAND flash存储设备的固件来执行。
本发明实施例一的方法具体包括:
S101、根据数据块中存储的反向映射表,获取数据块中存储的目标数据的物理地址与逻辑地址的反向映射关系。
具体的,在NAND flash存储设备中,至少含有一个数据块,以页为单位存取数据块中的数据,每个块可以包含多个可编程的页,例如32页、64页等,每一页可以包含528字节、2112字节等。每一个数据块中包括本数据块内数据的反向映射关系的映射表,即数据物理地址与逻辑地址的反向映射关系的映射表。
优选的,所述反向映射表存储为反向映射表数组,该数组的每一项为数据块中存储的数据的逻辑地址。
具体的,反向映射表以数组的形式存储,数组中包括有序的数字编号,以及每个数字编号对应的数据相应的逻辑地址,每个数字编号和对应的逻辑地址组成一项,数字编号即为项数,该项与数据块中的数据页是一一对应的关系,例如数字编号为3,即项数为3的逻辑地址可以与数据块中第3页的数据一一对应。
优选的,所述反向映射表存储在所述数据块的最后一页。
S102、根据所述反向映射关系,从映射表块存储的正向映射表中获取所述目标数据的逻辑地址与物理地址的正向映射关系。
具体的,在NAND flash存储设备中,至少含有一个映射表块,每一个映射表块中存储正向映射表,所述正向映射表,即数据的物理地址与逻辑地址的正向映射关系映射表,根据反向映射表数组中某一项的逻辑地址,从映射表块存储的正向映射表中查找并获取该逻辑地址与物理地址的正向映射关系。
S103、比较所述反向映射关系与正向映射关系,当比较结果为关系一致时,确定所述目标数据为有效数据。
在固件根据需求进行数据整理的过程中,比较基于上述步骤获取的反向映射表和正向映射表,如果对应关系一致,则确定目标数据为有效数据,同理,如果对应关系不一致,则确定目标数据为无效数据。清理无效数据,对有效数据予以保留,释放出更多的可利用空间。
本发明实施例一提供的一种基于NAND flash的有效数据查找方法,将记载反向映射关系的反向映射表存储在数据块中,直接通过读取该反向映射表即可获知反向映射关系,通过比较反向映射关系和正向映射关系,并根据比较结果判断查找的目标数据是否为有效数据,该方法提高了查找有效数据的效率,从而快速对无效数据进行清理。
实施例二
图2为本发明实施例二提供的一种NAND flash有效数据的查找方法的流程图,实施例二在实施例一的基础上,对根据数据块中存储的反向映射表,获取所述数据块中存储的目标数据的物理地址与逻辑地址的反向映射关系的操作进行进一步说明。在本实施例中,反向映射表存储为反向映射表数组,该数组的每一项为数据块中存储的数据的逻辑地址。
如图2所示,本发明实施例二的方法具体包括:
S1011、根据反向映射表数组,获取目标数据在反向映射表数组中的项数和目标数据的逻辑地址。
具体的,根据存储在数据块中的反向映射表数组,按照目标数据所在的页与数组中的项是一一对应关系的规则,获取所述目标数据在反向映射表数组中的项,包含项数和对应的逻辑地址。
S1012、获取反向映射表数组在数据块中存储的物理地址,根据反向映射表的物理地址和目标数据的项数计算出目标数据的物理地址。
具体的,获取反向映射表数组在数据块中存储的物理地址,上述步骤获取了目标数据的项数和对应的逻辑地址,根据预设算法,可以计算出目标数据的物理地址。
S102、根据反向映射关系,从映射表块存储的正向映射表中获取目标数据的逻辑地址与物理地址的正向映射关系。
S103、比较反向映射关系与正向映射关系,当比较结果为关系一致时,确定目标数据为有效数据。
优选的,反向映射表可以存储在数据块的最后一页。
本发明实施例二提供的一种基于NAND flash的有效数据查找方法,根据反向映射表的物理地址和目标数据在反向映射表数组中的的项数和所对应的逻辑地址计算出目标数据的物理地址,以此获取反向映射关系,通过和正向映射关系的比较,确定目标数据是否为有效数据,提高了查找有效数据的效率,保证了查找有效数据的准确性。而且,在反向映射表数组中仅存储数据的逻辑地址,节省了存储空间。
实施例三
图3为本发明实施例三提供的一种NAND flash有效数据的查找方法的流程图,实施例三在实施例一的基础上,对根据所述反向映射关系,从映射表块存储的正向映射表中获取所述目标数据的逻辑地址与物理地址的正向映射关系的操作进行进一步说明。如图3所示,本发明实施例三的方法具体包括:
S101、根据数据块中存储的反向映射表,获取数据块中存储的目标数据的物理地址与逻辑地址的反向映射关系。
S1021、获取正向映射表的索引表,其中,所述索引表以逻辑地址为索引,记载与所述逻辑地址对应的最新的正向映射关系在映射表块中的映射表项的位置。
具体的,映射表块中的映射关系生成后,索引表也就随之确定了。映射表块中存储的是多项逻辑地址与物理地址的正向映射关系表,获取正向映射表的索引表,该索引表以逻辑地址为索引,记载与所述逻辑地址对应的最新的正向映射关系在映射表块中的映射表项的位置。当用户重复写入数据的时候,例如,逻辑地址为0,第一次写入数据,映射表块中对应逻辑地址0的物理地址为A,再次写入数据,映射表块中对应逻辑地址0的物理地址为B,则在索引表中会更新该逻辑地址0与物理地址B的映射关系在映射表块中的映射表项的位置,即在映射表中的地址信息,因此,通过索引表可以查找到该逻辑地址对应的最新的正向映射关系。
S1022、根据反向映射关系中的逻辑地址,在索引表中查找目标数据的逻辑地址对应的正向映射关系在映射表块中的映射表项的位置。
S1023、根据所述位置读取所述映射表项,获取目标数据的正向映射关系。
S103、比较反向映射关系与正向映射关系,当比较结果为关系一致时,确定目标数据为有效数据。
本发明实施例三提供的一种基于NAND flash的有效数据查找方法,根据反向映射关系中的逻辑地址,在索引表中查找目标数据的逻辑地址对应的正向映射关系在映射表块中的映射表项的位置,获取目标数据的正向映射关系,通过和反向映射关系的比较,确定目标数据是否为有效数据,提高了查找有效数据的效率。
实施例四
图4是本发明实施例4中的一种NAND flash存储设备的结构示意图,该存储设备包括固件和NAND flash存储器,所述NAND flash存储器包括至少一个映射表块和至少一个数据块,所述数据块中存储有反向映射表,如图4所示,所述固件包括:反向映射关系获取模块401、正向映射关系获取模块402、有效数据确定模块403,下面对各模块进行具体说明。
反向映射关系获取模块401,用于根据数据块中存储的反向映射表,获取数据块中存储的目标数据的物理地址与逻辑地址的反向映射关系;
正向映射关系获取模块402,用于根据反向映射关系,从映射表块存储的正向映射表中获取目标数据的逻辑地址与物理地址的正向映射关系;
有效数据确定模块403,用于比较反向映射关系与正向映射关系,当比较结果为关系一致时,确定目标数据为有效数据。
优选的,反向映射表存储为反向映射表数组,该数组的每一项为数据块中存储的数据的逻辑地址。
具体的,反向映射表以数组的形式存储,数组中包括有序的数字编号,以及每个数字编号对应的数据相应的逻辑地址,每个数字编号和对应的逻辑地址组成一项,数字编号即为项数,该项与数据块中的数据页是一一对应的关系。
优选的,如图5所示,反向映射关系获取模块401包括:
逻辑地址获取单元501,用于根据反向映射表数组,获取目标数据在反向映射表数组中的项数和目标数据的逻辑地址;
物理地址获取单元502,用于获取反向映射表数组在数据块中存储的物理地址,根据反向映射表的物理地址和目标数据的项数计算出目标数据的物理地址。
具体的,根据反向映射表中存储的数组,按照目标数据所在的页与数组中的项是一一对应关系的规则,通过逻辑地址获取单元501获取目标数据在反向映射表数组中的项数和对应的逻辑地址,利用物理地址获取单元502再获取反向映射表数组在数据块中存储的物理地址,根据预设算法,可以计算出目标数据的物理地址。
优选的,如图6所示,正向映射关系获取模块402包括:
索引表获取单元601,用于获取正向映射表的索引表;
映射表项位置查找单元602,用于根据反向映射关系中的逻辑地址,在索引表中查找目标数据的逻辑地址对应的最新的正向映射关系在映射表块中的映射表项的位置;
正向映射关系获取单元603,用于根据所述位置读取所述映射表项,获取目标数据的正向映射关系。
具体的,映射表块中存储的是多项逻辑地址与物理地址的正向映射关系表,利用索引表获取单元601获取正向映射表的索引表,该索引表以逻辑地址为索引,利用映射表项位置查找单元602在索引表中查找与逻辑地址对应的最新的正向映射关系在映射表块中的映射表项的位置。当用户重复写入数据的时候,例如,逻辑地址为0,第一次写入数据,映射表块中对应逻辑地址0的物理地址为A,再次写入数据,映射表块中对应逻辑地址0的物理地址为B,则在索引表中会更新该逻辑地址0与物理地址B的映射关系在映射表块中的映射表项的位置,即在映射表中的地址信息,因此,通过索引表可以查找到该逻辑地址对应的最新的正向映射关系。根据所述位置读取映射表项,通过正向映射关系获取单元603获取目标数据的正向映射关系。
优选的,反向映射表存储在数据块的最后一页。
本发明实施例四提供的一种NAND flash存储设备,该存储设备的数据块中记载反向映射关系的反向映射表,反向映射关系获取模块直接通过读取该反向映射表即可获知反向映射关系,通过正向映射关系获取模块获取正向映射关系,在有效数据确定模块中比较反向映射关系和正向映射关系,判断目标数据是否为有效数据,提高了查找有效数据的效率,提升了存储设备的性能,实用性强。
本发明实施例提供的一种NAND flash存储设备可执行本发明任意实施例提供的基于NAND flash的有效数据查找方法,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。