NANDFlash存储系统的垃圾回收方法、计算机设备及存储介质与流程

摘要: 本申请涉及闪存数据,特别涉及一种nandflash存储系统的垃圾回收方法、计算机设备及存储介质。背景技术:1、在相关技术中,在固态存储设备(如ssd、emmc、...
NANDFlash存储系统的垃圾回收方法、计算机设备及存储介质与流程

本申请涉及闪存数据,特别涉及一种nand flash存储系统的垃圾回收方法、计算机设备及存储介质。

背景技术:

1、在相关技术中,在固态存储设备(如ssd、emmc、ufs等)的垃圾回收过程中,需要从待回收的src block(源物理块)中查找并搬移有效数据。现有的一种优化方案是在数据写入时预先存储一个索引表,记录该物理块内写数据涉及了哪些l1表(一级映射表),以便垃圾回收时直接读取。然而这种方法在随机写场景需要较大的缓冲空间用来存放索引表。与此同时,另一种普遍存在的问题是,在不具备写入时预建索引机制的情况下,垃圾回收仍需频繁从nand闪存中读取l1表来判断数据有效性,大量重复读取导致极高的时间开销。

技术实现思路

1、本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种nand flash存储系统的垃圾回收方法、计算机设备及存储介质,旨在减少随机写场景的gc耗时。

2、第一方面,本申请实施例提供了一种nand flash存储系统的垃圾回收方法,所述方法包括:

3、在写操作执行过程中,获取物理地址与逻辑地址的映射关系并将所述映射关系同步写入当前物理块内的物理到逻辑映射页,其中,所述物理到逻辑映射页以预设固定间隔穿插分布于所述当前数据块内部;

4、在垃圾回收任务执行过程中,读取源物理块中的全部所述物理到逻辑映射页,遍历所述物理到逻辑映射页的各映射条目;

5、根据各所述映射条目的逻辑地址计算对应的映射表编号,并构建映射表引用位图;

6、根据所述映射表编号的递增顺序遍历所述映射表引用位图,当所述映射条目所记录的物理地址归属于所述源物理块,确定所述映射条目为确定有效数据,并将所述有效数据加入待搬移列表;

7、将所述待搬移列表中的全部有效数据搬移至目标物理块后,对所述源物理块执行擦除操作。

8、根据本申请的一些实施例,所述获取物理地址与逻辑地址的映射关系并将物理地址与逻辑地址的映射关系同步写入物理到逻辑映射页,包括:

9、将当前物理块的页划分为固定大小的组,其中,每个所述组包含n个数据页;

10、在每次所述写操作完成后,获取写入的物理地址与逻辑地址的映射关系,将所述映射关系更新至sram中的物理到逻辑映射缓冲区;

11、当每个所述组的所述数据页的映射条目全部填充完毕后,将所述映射关系写入当前物理块内的物理到逻辑映射页。

12、根据本申请的一些实施例,所述将所述映射关系更新至sram中的物理到逻辑映射缓冲区,包括:

13、获取当前写入的所述数据页的当前物理页号与当前所述组的起始物理页号;

14、计算所述当前物理页号与所述起始物理页号的差,得到当前写入的所述数据页在所述组内的偏移量;

15、根据当前写入的所述物理页内的每个所述逻辑地址,循环将对应的所述逻辑地址的值填入sram中的物理到逻辑映射缓冲区中所述偏移量对应的位置。

16、根据本申请的一些实施例,所述将所述映射关系写入当前物理块内的物理到逻辑映射页之后,还包括:

17、获取所述当前物理块的总页数;

18、在所述写入完成的情况下,当所述当前物理页号小于所述当前物理块的总页数时,清空sram中的所述物理到逻辑映射缓冲区,并更新下一个所述组的起始数据页号。

19、根据本申请的一些实施例,所述构建映射表引用位图,还包括:

20、在所述垃圾回收任务启动时,从sram的空闲内存池动态申请所述映射表引用位图所需的连续存储空间;

21、在所述垃圾回收任务完成后,将所述映射表引用位图占用的所述存储空间释放,归还至sram的空闲内存池。

22、根据本申请的一些实施例,所述源物理块通过以下步骤得到,包括:

23、获取所有已关闭或半关闭的物理块;

24、根据预设的策略算法对所述所有已关闭或半关闭的物理块进行筛选,得到所述源物理,其中,所述预设的策略算法包括以下至少之一:磨损均衡优先、冷热数据分离、高无效率优先。

25、根据本申请的一些实施例,所述方法还包括:

26、当所述垃圾回收任务因优先级抢占或超时保护被中断时,将所述映射表引用位图写入nand flash存储系统的预设指定存储位置。

27、根据本申请的一些实施例,还包括:

28、当所述垃圾回收任务重新启动时,检测所述预设指定存储位置是否存在有效的持久化位图数据;

29、在存在所述有效的持久化位图数据的情况下,从所述预设指定存储位置读取并恢复所述映射表引用位图。

30、第二方面,本申请实施例提供了一种计算机设备,包括:

31、至少一个存储器;

32、至少一个处理器;

33、至少一个计算机程序;

34、所述至少一个计算机程序被存储在所述至少一个存储器中,所述至少一个处理器执行所述至少一个计算机程序以实现上述第一方面所述的nand flash存储系统的垃圾回收方法。

35、第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使计算机执行上述第一方面所述的nandflash存储系统的垃圾回收方法。

36、根据本申请实施例的技术方案,至少具有如下有益效果:本申请通过在写操作过程中同步更新p2l映射数据,使得每个当前数据块内部都维护了完整的反向映射信息。在gc过程中,仅需读取源块内的p2l页即可获知该块内所有数据页的逻辑地址,无需依赖l2p映射表进行逐页查询,大幅降低了gc过程中的映射查询开销。通过构建映射表引用位图(l1_bitmap),将源块所涉及的全部l1表预先去重并压缩为一个精简的候选列表。在后续的有效性验证阶段,每个l1表仅需加载一次,从根本上消除了传统方法中同一l1表被反复加载的性能瓶颈,显著减少了nand读取次数和缓存占用。通过将l1_bitmap持久化到nand flash的指定位置,实现了gc任务的中断续扫功能。当gc因优先级抢占或超时保护被中断后,重新启动时可直接恢复之前构建的l1_bitmap,无需重新读取p2l页和重新构建位图,避免了大量重复计算和i/o操作,显著提升了gc的整体效率。l1_bitmap的存储空间需求极小(仅取决于l1表的总数量),可在sram中高效管理,内存占用低,适用于资源受限的嵌入式存储设备。

37、本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

1.一种nand flash存储系统的垃圾回收方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述获取物理地址与逻辑地址的映射关系并将物理地址与逻辑地址的映射关系同步写入物理到逻辑映射页,包括:

3.根据权利要求2所述的方法,其特征在于,所述将所述映射关系更新至sram中的物理到逻辑映射缓冲区,包括:

4.根据权利要求3所述的方法,其特征在于,所述将所述映射关系写入当前物理块内的物理到逻辑映射页之后,还包括:

5.根据权利要求1所述的方法,其特征在于,所述构建映射表引用位图,还包括:

6.根据权利要求1所述的方法,其特征在于,所述源物理块通过以下步骤得到,包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,还包括:

9.一种计算机设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使计算机执行:如权利要求1至8中任一项所述的方法。