一种数据管理方法及装置的制造方法【
技术领域:
】[0001]本发明涉及固态硬盘领域,具体涉及一种数据管理方法及装置。【
背景技术:
】[0002]映射表不能固定更新到某一个或者某几个块(block)中,否则,会反复擦写某一个或者某几个块,增加坏块的风险。因此需要让映射表的存放尽可能在闪存(flash)中流动起来。[0003]如果把映射表分成若干独立的页,当作普通的数据页(datapage)写入flash中,同普通的数据页一起进行耗损均衡(WL,WearLeveing)和垃圾回收器(GC,GarbageCollector)的回收操作。但是由于映射表页(mappingtablepage)没有对应的逻辑页(LPN,LogicalPageNumber)号,会造成GC回收时的麻烦。[0004]因此,如何便于GC对数据页和映射表页进行统一的回收和管理成为亟待解决的问题。【
发明内容】[0005]有鉴于此,本发明期望提供一种数据管理方法及装置,至少便于GC对数据页和映射表进行统一的回收和管理。[0006]为达到上述目的,本发明的技术方案是这样实现的:[0007]本发明公开了一种数据管理方法,所述方法包括:[0008]将映射表分成Μ个独立的映射表页,Μ为正整数;[0009]为每个映射表页分配唯一的虚拟LPN号;[0010]基于所述虚拟LPN号存储所述映射表页。[0011]上述方案中,优选地,所述基于所述虚拟LPN号存储所述映射表页,包括:[0012]预留出映射表页的页尾的整型字段;[0013]将虚拟LPN号存放于所述整型字段中。[0014]上述方案中,优选地,所述为每个映射表页分配虚拟LPN号,包括:[0015]获取数据页所对应的第一字段;其中,所述第一字段是指文件系统为数据页预留的字段;[0016]基于所述第一字段确定第二字段;其中,所述第二字段为所述文件系统覆盖不到的字段;[0017]从所述第二字段中随机或按照顺序依次为每一个映射表页分配唯一的虚拟LPN号。[0018]上述方案中,优选地,所述方法还包括:[0019]对数据进行回收处理时,[0020]获取当前页所对应的LPN号;[0021]基于所述LPN号确定当前页的类型;[0022]当所述当前页为映射表页时,对应族表判断映射表页的有效性,如果所述映射表页无效,则对所述映射表页进行回收处理;[0023]当所述当前页为数据页时,对应映射表判断数据页的有效性,如果所述数据页无效,则对所述数据页进行回收处理。[0024]上述方案中,优选地,所述基于所述LPN号确定当前页的类型,包括:[0025]查看所述LPN号所对应的字段类型;[0026]如果所述字段类型为第一字段,则判定当前页的类型为数据页;[0027]如果所述字段类型为第二字段,则判定当前页的类型为映射表页。[0028]上述方案中,优选地,所述族表中记录有以虚拟LPN号为索引,映射表与物理页码(VPN,VirtualPageNumber)的--对应关系;[0029]所述映射表中记录有以LPN号为索引,数据页与VPN的一一对应关系。[0030]上述方案中,优选地,所述对应族表判断映射表页的有效性,包括:[0031]获取映射表页对应的VPN号;[0032]在族表中根据所述映射表页的虚拟LPN号查找与所述虚拟LPN号对应的标准VPN号;[0033]判断所述VPN号是否与所述标准VPN号一致,如果一致,判断所述映射表页有效;如果不一致,判断所述映射表页无效。[0034]上述方案中,优选地,所述对应映射表判断数据页的有效性,包括:[0035]获取数据页对应的VPN号;[0036]在映射表中根据所述数据页的LPN号查找与所述LPN号对应的标准VPN号;[0037]判断所述VPN号是否与所述标准VPN号一致;如果一致,判断所述数据页有效;如果不一致,判断所述数据页无效。[0038]本发明还公开了一种数据管理装置,所述装置包括:[0039]划分单元,用于将映射表分成Μ个独立的映射表页,Μ为正整数;[0040]分配单元,用于为每个映射表页分配虚拟逻辑页LPN号;[0041]存储单元,用于基于所述虚拟LPN号存储所述映射表页。[0042]上述方案中,优选地,所述存储单元,还用于:[0043]预留模块,用于预留出映射表页的页尾的整型字段;[0044]存放模块,用于将虚拟LPN号存放于所述整型字段中。[0045]上述方案中,优选地,所述分配单元,包括:[0046]第一获取模块,用于获取数据页所对应的第一字段;其中,所述第一字段是指文件系统为数据页预留的字段;[0047]第一确定模块,用于基于所述第一字段确定第二字段;其中,所述第二字段为所述文件系统覆盖不到的字段;[0048]分配模块,用于从所述第二字段中随机或按照顺序依次为每一个映射表页分配唯一的虚拟LPN号。[0049]上述方案中,优选地,所述装置还包括:回收单元,其中,所述回收单元,包括:[0050]第二获取模块,用于获取当前页所对应的LPN号;[0051]第二确定模块,用于基于所述LPN号确定当前页的类型;[0052]第一回收模块,用于当所述当前页为映射表页时,对应族表判断映射表页的有效性,如果所述映射表页无效,则对所述映射表页进行回收处理;[0053]第二回收模块,用于当所述当前页为数据页时,对应映射表判断数据页的有效性,如果所述数据页无效,则对所述数据页进行回收处理。[0054]优选地,所述第二确定模块,还用于:查看所述LPN号所对应的字段类型;如果所述字段类型为第一字段,则判定当前页的类型为数据页;如果所述字段类型为第二字段,则判定当前页的类型为映射表页。[0055]上述方案中,优选地,所述族表中记录有以虚拟LPN号为索引,映射表与物理页码VPN的——对应关系;[0056]所述映射表中记录有以LPN号为索引,数据页与VPN的对应关系。[0057]上述方案中,优选地,所述第一回收模块,还用于:[0058]获取映射表页对应的VPN号;[0059]在族表中根据所述映射表页的虚拟LPN号查找与所述虚拟LPN号对应的标准VPN号;[0060]判断所述VPN号是否与所述标准VPN号一致,如果一致,判断所述映射表页有效;如果不一致,判断所述映射表页无效。[0061]上述方案中,优选地,所述第二回收模块,还用于:[0062]获取数据页对应的VPN号;[0063]在映射表中根据所述数据页的LPN号查找与所述LPN号对应的标准VPN号;[0064]判断所述VPN号是否与所述标准VPN号一致;如果一致,判断所述数据页有效;如果不一致,判断所述数据页无效。[0065]本发明所提供的一种数据管理方法及装置,将映射表分成Μ个独立的映射表页,Μ为正整数;为每个映射表页分配唯一的虚拟LPN号;基于所述虚拟LPN号存储所述映射表页;如此,至少便于GC对数据页和映射表页进行统一的回收和管理。【附图说明】[0066]图1为本发明实施例提供的一种数据管理方法的实现流程示意图;[0067]图2为本发明实施例提供的另一种数据管理方法的实现流程示意图;[0068]图3为本发明实施例提供的又一种数据管理方法的实现流程示意图;[0069]图4(a)为本发明实施例提供的一个映射表页示意图,图4(b)为本发明实施例提供的另一个映射表页示意图,图4(c)为本发明实施例提供的当前族表的示意图;[0070]图5为本发明实施例提供的再一种数据管理方法的实现流程示意图;[0071]图6为本发明实施例一种数据管理装置的结构示意图;[0072]图7为本发明实施例另一种数据管理装置的结构示意图;[0073]图8为本发明实施例又一种数据管理装置的结构示意图;[0074]图9为本发明实施例再一种数据管理装置的结构示意图。当前第1页1 2 3 4