基于SPINORFlash数据存储的区块自适应分配方法及系统与流程
- 国知局
- 2024-07-31 23:09:05
本发明属于计算机存储,尤其涉及基于spi nor flash数据存储的区块自适应分配方法及系统。
背景技术:
1、在嵌入式系统中,为保证系统寿命与稳定性,通常会对flash读写进行统计,从操作系统层对flash读写做出限制,从而延长flash芯片的使用寿命;一般在嵌入式系统中,文件子系统会对模块做出写平衡,平衡块读写次数;现有软件基于mtd的闪存文件子系统(jffs2,yffs2)基于自行维护的逻辑块列表进行了写平衡算法的处理,但由于这些操作依赖于文件子系统,因此只能记录到通过文件子系统挂载后对设备的读写,不能记录对mtd原始设备进行直接读写的操作,准确度存在一定缺陷。
2、如授权公告号为cn111061649b的专利公开了一种存储器的存储空间自适应分配方法,将存储器内各存储芯片的所有扇区分为数据区和标记区,逐一读取各存储芯片信息后,将各存储芯片实际数据区的硬件地址空间映射成逻辑地址空间,将各存储芯片的标记区映射成标志空间地址表;针对显示未擦除的扇区执行擦除操作,对各存储芯片内的已经执行过擦除操作的扇区,更新该扇区在标志空间中的标志字节;将需要写入存储芯片内的数据起始地址设置成该存储芯片的逻辑地址;将待写入扇区的已有全部数据与待写入数据一起作为该待写入扇区的最终数据;微控制器针对存储芯片内的扇区是否执行了擦除操作做出擦除扇区数据或者把最终数据直接写入扇区,避免重复擦写存储芯片。
3、以上现有技术均存在以下问题:1)现有软件基于mtd的闪存文件子系统(jffs2,yffs2)基于自行维护的逻辑块列表进行了写平衡算法的处理,但由于这些操作依赖于文件子系统,因此只能记录到通过文件子系统挂载后对设备的读写,不能记录对mtd原始设备进行直接读写的操作,准确度存在一定缺陷;2)对于现有的区块负载分配方法,使用参数单一,对应区块分配精度低和数据迁移的错误率高,并且无法做到自适应调整,为了解决上述问题本发明提供了基于spi nor flash数据存储的区块自适应分配方法及系统。
技术实现思路
1、针对现有技术的不足,本发明提出了基于spi nor flash数据存储的区块自适应分配方法及系统,首先,对spi nor flash驱动层进行侵入式修改,嵌入区块使用记录表并初始化。在接收到上层指令时,更新相应区块记录表,执行实际擦除操作,同时提供查询接口供上层获取区块使用统计数据。其次,采集并分析记录表内反馈的统计数据,引入深度学习算法制定自适应区块分配策略,计算最优读写操作分配方案。接着,构建预测模型,利用历史与实时使用数据预测各区块使用趋势和寿命变化,以此动态优化分配策略。随后,设置区块寿命阈值,修改文件子系统算法并与改版驱动层集成。在文件子系统执行写操作时,依据区块使用情况动态调整读写任务分配,监控工作状态并根据预测寿命限制读写操作。最后,通过硬件与软件实时测试,收集测试数据评估性能,依此优化调整分配策略。设定性能指标阈值,实时监控测试过程,当检测到flash性能下降或异常时,触发告警并反馈至策略与交互界面,实现异常自动修正。本方法有效解决了现有技术中区块管理准确度低、无法应对设备老化等问题,显著提升了spi nor flash数据存储系统的性能、可靠性和使用寿命。
2、为实现上述目的,本发明提供如下技术方案:
3、基于spi nor flash数据存储的区块自适应分配方法,包括:
4、步骤s1:侵入式修改spi nor flash驱动层,并对区块嵌入使用记录表并初始化,当接收到上层指令时,对指令对应区块的记录表进行更新并执行实际的擦除操作,同时通过查询接口查询区块嵌入记录表,获取对应区块记录表内的统计数据,并反馈给上层;
5、步骤s2:采集并分析区块记录表内反馈的统计数据,根据分析结果,引入深度学习算法制定自适应区块分配策略,并利用制定的分配策略计算得出最优的读写操作分配方案;
6、步骤s3:构建预测模型,并将采集的各区块历史和实时使用情况统计数据输入到预测模型当中,预测出各个区块的使用趋势和寿命变化数据,将预测的使用趋势和寿命变化数据反馈到步骤s2中的自适应区块分配策略,并对策略进行实时优化;
7、步骤s4:设置区块寿命阈值,修改文件子系统算法并将其与修改后的驱动层进行集成,当文件子系统执行写操作时,根据获取的区块使用情况,动态调整读写任务的分配,同时监控区块工作状态,根据监控工作状态和预测的寿命变化数据,利用设置的区块寿命阈值限制区块的读写操作;
8、步骤s5:将步骤s1到步骤s4过程在硬件和软件上进行实时测试,收集实时测试数据,并利用收集到的测试数据对测试性能进行评估,根据评估结果优化调整自适应区块分配策略;
9、步骤s6:设定性能指标的阈值,并实时监控步骤s5测试过程的性能指标,当监测到flash性能下降或出现异常时,根据设定性能指标的阈值触发告警,并将异常情况反馈到自适应区块分配策略和交互界面,对异常进行自动修正。
10、具体的,步骤s2引入深度学习算法制定自适应区块分配策略,采用一种强化学习算法,具体步骤包括:
11、s201、根据区块记录表内反馈的统计数据,构建自适应区块分配策略中强化学习当前t时刻的输入状态其中,表示当前t时刻第i个区块的已使用空间的百分比,表示当前t时刻第i个区块的读写次数,表示当前t时刻第i个区块的擦除次数,表示当前t时刻第i个区块的预测剩余寿命,表示当前t时刻向第i个区块发送读写请求的数量,表示当前t时刻向第i个区块发送请求的类型,表示当前t时刻向第i个区块发送请求的优先级,表示当前t时刻低负载区块的数量与分布,表示当前t时刻第i个区块历史工作负载的平均值,当前t时刻联合执行动作为其中,表示当前t时刻执行数据强制迁移的动作,表示当前t时刻执行提高低负载和低使用频次区块选择优先级的动作,表示当前t时刻对达到寿命阈值的区块执行限制读写的动作,表示当前t时刻执行提高或降低特定请求优先级的动作,当前t时刻组合奖励函数rt,具体组合奖励函数为:
12、其中,表示所有区块的空间利用率优化奖励,表示所有区块读写效率奖励,表示所有区块寿命管理奖励,表示请求优先级满足奖励,α1,α2,α3,α4表示对应奖励的加权系数,k1,k2,k3,k4表示对应奖励的增益系数;std(.)表示标准差运算符,βi表示根据第i个区块负载状态确定的读写效率系数,γi表示根据区块i的剩余寿命确定的剩余寿命奖励系数,表示第i个区块的寿命阈值,qh,t+1,ql,t+1依次表示下一时刻高优先级和低优先级请求的状态;f(.)表示高优先级和低优先级请求状态拟合函数;
13、s202、基于sac强化学习算法构建自适应区块分配策略模型,并将构建的当前t时刻的输入状态st、当前t时刻联合执行动作at和当前t时刻组合奖励函数rt输入到构建的自适应区块分配策略模型进行训练,获取训练完成度的自适应区块分配策略模型;
14、s203、将获取的自适应区块分配策略模型部署到修改后的spinorflash驱动层内,根据实时下发的请求指令和获取的各区块使用情况数据,生成最优的读写操作和区块分配方案。
15、具体地,步骤s3具体步骤包括:
16、s301、从记录表中收集各区块的历史使用情况统计数据与区块当前时刻使用情况数据和区块的物理属性和磨损数据,并对收集到的历史和实时数据进行清洗和去除异常值预处理;
17、s302、基于bilstm和单头注意力网络构建预测模型,并将预处理后的历史使用情况数据输入到构建的预测模型中,并采用五折交叉验证对模型进行训练,获取训练完成预测模型;
18、s303、将预处理的区块当前时刻使用情况数据输入到训练完成预测模型,计算得到未来12小时内各区块的使用趋势数据,利用计算得到的使用趋势数据和当前时刻区块的物理属性和磨损数据,计算得到各区块剩余使用寿命,并将各区块剩余寿命按照降序进行排序;
19、s304、将计算得到的未来12小时区块使用趋势数据以及降序排列后各区块剩余寿命,反馈到自适应区块分配策略模型中,对区块分配策略模型进行动态调整。
20、具体地,步骤s4具体步骤包括:
21、s401、根据设置的区块寿命阈值和计算得到的区块剩余使用寿命,输入到自适应区块分配策略模型中获取区块读写限制指令和数据强制迁移指令;
22、s402、文件子系统执行写操作时,当第j个区块剩余寿命和擦除次数超过对应设置的阈值时,根据获取的区块读写限制指令和数据强制迁移指令,对第j个区块进行读写限制;
23、s403、收集排序后各区块的剩余寿命、历史数据迁移错误率和剩余擦写次数,并将收集的数据输入到综合模糊算法中,对各区块的健康度进行评估,获取各区块综合健康得分;
24、s404、对获取的健康得分进行降序排列,根据排序结果,利用数据强制迁移指令将第j个区块的擦除操作和读写数据强制转移到经排序后综合健康得分第一的第k个区块中进行操作和存储。
25、具体地,步骤s5的具体过程包括:
26、s501、通过结合硬件层面和软件层面搭建测试环境,启动测试环境,按照实际工作负载模式模拟读写操作,并通过修改spi nor flash驱动层实时抓取flash设备的运行指标数据和各区块的测试指标数据;
27、s502、对获取的运行指标数据和测试指标数据进行预处理,并利用预处理后的指标数据计算得到各区块综合健康得分的变化、数据迁移成功率、读写限制执行情况,并将计算得到的区块综合健康得分的变化、数据迁移成功率、读写限制执行情况与设定的行业基准阈值进行比较,获取自适应区块分配策略的有效性和效率;
28、s502、根据获取的自适应区块分配策略的有效性和效率,定位到当前时刻自适应区块分配策略中具体的性能瓶颈,并根据性能瓶颈自动调整自适应区块分配策略的参数,并对调整后的策略进行新一轮实时测试、迭代优化,直到所有的测试结果满足行业基准阈值。
29、具体地,步骤s6中测试过程的性能指标包括读写速度、擦写次数、延迟、错误率、缓存命中率和队列深度与i/o繁忙度。
30、基于spi nor flash数据存储的区块自适应分配系统,包括:驱动层记录与查询模块、自适应区块分配模块、文件子系统与分区管理协同模块、系统测试与优化模块和性能监控与告警模块;
31、驱动层记录与查询模块,用于初始化区块使用记录表,记录和更新每个区块的使用信息,实现上层软件查询和返回区块记录表使用过程数据;自适应区块分配模块,用于根据驱动层记录的flash使用情况数据,制定自适应的区块分配策略,并预测未来flash的使用趋势;文件子系统与分区管理协同模块,用于根据区块使用频率动态调整写分配策略,同时根据区块使用过程数据,实时监控各区块的状态;系统测试与优化模块,用于对实际环境中的系统进行测试和测试数据的收集,并利用收集的测试数据对自适应区块分配策略进行优化调整;性能监控与告警模块,用于实时监控flash的工作性能,当flash性能下降或出现异常时触发告警,并对异常进行处理;
32、具体地,驱动层记录与查询模块包括区块使用记录单元和查询接口单元;自适应区块分配模块包括数据分析单元、分配策略制定单元和预测单元;文件子系统与分区管理协同模块包括文件子系统修改单元和分区管理单元;系统测试与优化模块包括测试数据收集单元和优化调整单元;性能监控与告警模块包括性能监控单元和告警触发单元;
33、区块使用记录单元,用于初始化区块使用记录表,记录每个区块的使用次数、擦除次数信息,并在每次擦除或写入操作时更新对应区块的记录;查询接口单元,用于提供接口供上层软件查询区块使用记录表,并返回区块的使用情况数据;数据分析单元,用于读取驱动层记录的flash使用情况数据,并分析各区块的使用频率、擦写次数以及剩余寿命;分配策略制定单元,用于根据数据分析单元的分析结果制定自适应的区块分配策略,实现最优的数据读写操作分配;预测单元,用于根据历史数据预测未来flash的使用趋势,以调整区块分配策略;文件子系统修改单元,用于修改文件子系统的内部算法,并根据区块使用频率动态调整写分配策略;分区管理单元,用于在flash分区上建立详细的区块使用记录表,实时监控各区块擦除次数、使用频率,当某个区块的擦除次数达到预设的寿命阈值时,触发写保护或限制读写操作,并对读写操作数据进行强制迁移,防止区块过度使用导致数据丢失或性能下降;测试数据收集单元,用于在实际环境中对系统进行测试,并收集测试数据;优化调整单元,用于根据测试结果分析系统性能,并利用分析结果对自适应区块分配策略进行优化调整;性能监控单元,用于实时监控flash的性能指标,收集并分析性能数据,以评估flash的工作状态;告警触发单元,用于根据预设的阈值,当flash性能下降或出现异常时触发告警。
34、具体的,一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现基于spi nor flash数据存储的区块自适应分配方法。
35、与现有技术相比,本发明的有益效果是:
36、1.本发明针对现有技术的不足,通过侵入式修改spi nor flash驱动层,使得系统能直接对mtd原始设备进行读写的操作,提高获取数据的准确度,并通过引入深度学习算法制定自适应区块分配策略,并结合预测模型动态优化分配策略,实现了对区块使用情况的精确记录和分析;通过修改文件子系统算法,并根据区块使用情况动态调整读写任务分配,有效延长了flash的使用寿命;通过上述策略本发明不仅解决了现有技术中区块管理准确度低和无法应对设备老化等问题,还显著提升了flash数据存储系统的整体性能和可靠性。
37、2.本发明通过实时测试与性能评估,不断优化自适应区块分配策略,确保其在各种工作负载下均能达到最佳性能;同时,通过设定性能指标阈值并实时监控,一旦flash性能下降或出现异常,系统能够迅速触发告警并自动修正异常,保证了存储系统的稳定与可靠;本发明不仅提高了数据存储效率,还延长了flash的使用寿命,降低了维护成本;此外,其实时优化和自动修正机制,使得存储系统更加智能化。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196099.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。