本发明涉及存储器,尤其涉及一种存储器磨损均衡方法、装置、设备及介质。
背景技术:
1、目前在主流的嵌入式存储器固件测试中,尤其以安卓等手机平台为主,在性能测试之前,一般预先填入部分数据,接着跑长达数天的测试,测试后会导致存储器中块的闪存可擦写次数差值增加过大,或者在性能测试之前,跑过多轮的全盘循环覆盖写,也会导致块的闪存可擦写次数差值增加过大,这时候再跑测试,会启动磨损平衡机制,从而导致测试的性能出现波动。
技术实现思路
1、有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种存储器磨损均衡方法、装置、设备及介质,用于根据存储器的具体状态以及垃圾收集的紧迫情况执行相应的垃圾收集,避免影响存储器的正常工作及性能。
2、本发明提供如下技术方案:
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、从所述存储器中的多个数据块中基于第一目标擦写条件确定目标数据块,并从所述存储器中的多个空闲块中基于第二目标擦写条件确定目标空闲块;
31、将所述目标数据块中的数据搬移至所述目标空闲块。
32、第二方面,本发明提出一种存储器磨损均衡装置,所述装置包括:
33、第一定义模块,用于定义高优先级平衡垃圾收集对应的第一队列状态,以及低优先级平衡垃圾收集对应的第二队列状态;
34、第一置位模块,用于基于存储器的闪存可擦写次数情况置位所述第一队列状态或第二队列状态;
35、第二定义模块,用于定义所述高优先级平衡垃圾收集对应的第一活动状态,以及所述低优先级平衡垃圾收集对应的第二活动状态;
36、第二置位模块,用于基于存储器状态根据所述第一队列状态的置位情况,或第二队列状态的置位情况,置位所述第一活动状态,或所述第二活动状态,并清除对应的所述第一队列状态和所述第二队列状态。
37、第三方面,本发明提出一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的存储器磨损均衡方法的步骤。
38、第三方面,本发明提出一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的存储器磨损均衡方法的步骤。
39、本发明公开的存储器磨损均衡方法、装置、设备及介质,定义高优先级平衡垃圾收集对应的第一队列状态,以及低优先级平衡垃圾收集对应的第二队列状态;基于存储器的闪存可擦写次数情况置位所述第一队列状态或第二队列状态;定义所述高优先级平衡垃圾收集对应的第一活动状态,以及所述低优先级平衡垃圾收集对应的第二活动状态;基于存储器状态根据所述第一队列状态的置位情况,或第二队列状态的置位情况,置位所述第一活动状态,或所述第二活动状态,并清除对应的所述第一队列状态和第二队列状态。这样,基于存储器的闪存可擦写次数情况以及存储器状态来确定执行高优先级平衡垃圾收集或低优先级平衡垃圾收集,可避免影响存储器的正常性能,以及防止过度磨损均衡或无效磨损均衡。
40、为使本发明的上述目的、特征和优点能更明显和易懂,下文特举较佳实施例,并配合所附附图,做详细说明如下。