一种应用于flash磨损均衡与掉电保存的读写方法技术

技术编号:37958917 阅读:7 留言:0更新日期:2023-06-30 09:33
本发明专利技术属于读写方法技术领域,特别涉及一种应用于flash磨损均衡与掉电保存的读写方法,所述读写方法包括有将需要存储的数据,前后加上特定的帧头($)、帧尾(*)以及异或校验,在存储时,先遍历系统设置存储单元,找到值全为0xff的起始地址,从该地址开始写入,如果该地址超过系统设置的存储单元地址,那么擦除整个块,再从头写入等。本发明专利技术达到能够最大化的使用flash的块单元,仅在整个块写满后才擦除,达到磨损均衡的效果;即使在写入过程中外部断电,也仅仅丢失当前一次的写入结果,之前的结果仍然保留,达到断电保存的效果;且在系统设置的存储单元大小一定时,能够大幅度的提高使用寿命。用寿命。用寿命。

【技术实现步骤摘要】
一种应用于flash磨损均衡与掉电保存的读写方法


[0001]本专利技术属于读写方法
,特别涉及一种应用于flash磨损均衡与掉电保存的读写方法。

技术介绍

[0002]在一些嵌入式产品中,经常需要频繁对运行参数或配置参数进行存储与读取,但通常flash的读写次数仅为10万次,这对于产品运行寿命来说是一个很大的瓶颈;
[0003]传统的嵌入式产品中,对参数存储时,一般不同的参数是定义不同的基地址,在该地址进行存取操作,在存储时需要对该flash块进行擦除后再写入,但一般的flash寿命仅为10万次,假如每分钟需要对该参数进行读写,那么单块的flash可工作的时间为100000/(60*24)=69天;
[0004]一般的读写均衡算法为,对每一块的读写次数进行存储,达到一定次数时(例如设置为9万次),切换到下一块,如图2所示。但该传统方式的弊端在于,不同颗粒间的寿命可能不一致,因而导致该数据的丢失;当该存储值小于块的大小时,浪费存储空间;写入过程如果因外因断电,也会造成数据丢失,因此急需研发一种磨损均衡、能够大幅度的提高使用寿命、断电保存的应用于flash磨损均衡与掉电保存的读写方法。

技术实现思路

[0005](一)要解决的技术问题
[0006]为了克服上述传统方式的存在着不同颗粒间的寿命可能不一致,因而导致该数据的丢失;当该存储值小于块的大小时,浪费存储空间;写入过程如果因外因断电,也会造成数据丢失的缺陷,本专利技术提供一种磨损均衡、能够大幅度的提高使用寿命、断电保存的应用于flash磨损均衡与掉电保存的读写方法。
[0007](二)技术方案
[0008]本专利技术通过如下技术方案实现:本专利技术提出了一种应用于flash磨损均衡与掉电保存的读写方法,所述读写方法具体步骤如下:
[0009]1)开始,从存储地址开始读取5个字节数,前后加上特定的帧头($)、帧尾(*)以及异或校验;
[0010]2)判断5字节是否全为oxff;
[0011]若不是全为oxff,包括以下步骤:
[0012]重新读地址一次,判断地址是否超出设置值,若是超出设置值,擦除该块数据,接着更新参数,判断地址A往后储存是否不超过设置的地址范围,若是超过,在地址A处写入新参数,直至结束,若不是超过,擦除该块数据,在起始地址写入,直至结束;若不是超出设置值,返回步骤1)重新开始;
[0013]若是全为oxff,包括以下步骤:
[0014]直接获取第一个oxff的地址A,判断地址A是否不为块起始地址;若是地址A为块起
始地址,往后读取一组数据,即往后退存储参数的个数,直接判断是匹配帧结构以及校验,如果不匹配,便往下继续遍历,即读取地址继续往后,在判断地址A是否超出设置值,若不是超出设置,返回,重复上述往后读取一组数据,及其后续步骤;若是超出设置,擦除该块数据,接着更新参数,重复上述判断地址A往后储存是否不超过设置的地址范围及其后续步骤;
[0015]若是地址A不是块起始地址,直接更新参数,重复上述判断地址A往后储存是否不超过设置的地址范围及其后续步骤;
[0016]其中,设置值为系统设置的存储单元地址。
[0017](三)有益效果
[0018]本专利技术相对于现有技术,具有以下有益效果:
[0019]本专利技术达到能够最大化的使用flash的块单元,仅在整个块写满后才擦除,达到磨损均衡的效果;即使在写入过程中外部断电,也仅仅丢失当前一次的写入结果,之前的结果仍然保留,达到断电保存的效果;且在系统设置的存储单元大小一定时,能够大幅度的提高使用寿命。
附图说明
[0020]通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:
[0021]图1为本专利技术的读写方法流程图。
[0022]图2为传统的读写方法流程图。
具体实施方式
[0023]本技术方案中:
[0024]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0025]参照图1所示,本专利技术提出了一种应用于flash磨损均衡与掉电保存的读写方法,所述读写方法具体步骤如下:
[0026]1)开始,从存储地址开始读取5个字节数,前后加上特定的帧头
[0027]($)、帧尾(*)以及异或校验;
[0028]2)判断5字节是否全为oxff;
[0029]若不是全为oxff,包括以下步骤:
[0030]重新读地址一次,判断地址是否超出设置值,若是超出设置值,擦除该块数据,接着更新参数,判断地址A往后储存是否不超过设置的地址范围,若是超过,在地址A处写入新参数,直至结束,若不是超过,擦除该块数据,在起始地址写入,直至结束;若不是超出设置值,返回步骤1)重新开始;
[0031]若是全为oxff,包括以下步骤:
[0032]直接获取第一个oxff的地址A,判断地址A是否不为块起始地址;若是地址A为块起始地址,往后读取一组数据,即往后退存储参数的个数,直接判断是匹配帧结构以及校验,
如果不匹配,便往下继续遍历,即读取地址继续往后,在判断地址A是否超出设置值,若不是超出设置,返回,重复上述往后读取一组数据,及其后续步骤;若是超出设置,擦除该块数据,接着更新参数,重复上述判断地址A往后储存是否不超过设置的地址范围及其后续步骤;
[0033]若是地址A不是块起始地址,直接更新参数,重复上述判断地址A往后储存是否不超过设置的地址范围及其后续步骤;
[0034]其中,设置值为系统设置的存储单元地址。
[0035]本专利技术中如图1所示,本方法,如图所示,将需要存储的数据,前后加上特定的帧头($)、帧尾(*)以及异或校验,在存储时,先遍历系统设置存储单元,找到值全为0xff的起始地址,从该地址开始写入,如果该地址超过系统设置的存储单元地址,那么擦除整个块,再从头写入。读取过程反之,先遍历系统设置存储单元,找到值全为0xff的起始地址,往后退存储参数的个数,判断是否满足帧结构以及校验,
[0036]如果不满足,便往下继续遍历,直至遍历整个存储单元。该方式能够最大化的使用flash的块单元,仅在整个块写满后才擦除,达到磨损均衡的效果;即使在写入过程中外部断电,也仅仅丢失当前一次的写入结果,之前的结果仍然保留,达到断电保存的目的;在与传统的方式比较,在系统设置的存储单元大小一定时,能够大幅度的提高使用寿命,如存储参数个数为29字节数时,本方法加入特定结构后为32字节,传统方式只能单块只能工作69天,而本方法可工作100000*4096/(32*60*24)=8888天,显著提高了产品使用周期。
[0037]以上所述仅为本专利技术的优选实施例而已,并不用于限制本专利技术,对于本领域的技术人员来说,本专利技术可以有各种更改和变化。凡本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于flash磨损均衡与掉电保存的读写方法,其特征在于:所述读写方法具体步骤如下:1)开始,从存储地址开始读取5个字节数,前后加上特定的帧头($)、帧尾(*)以及异或校验;2)判断5字节是否全为oxff;若不是全为oxff,包括以下步骤:重新读地址一次,判断地址是否超出设置值,若是超出设置值,擦除该块数据,接着更新参数,判断地址A往后储存是否不超过设置的地址范围,若是超过,在地址A处写入新参数,直至结束,若不是超过,擦除该块数据,在起始地址写入,直至结束;若不是超出设置值,返回步骤1)重新开始;若是全为oxff,包括以下步骤:直接获取...

【专利技术属性】
技术研发人员:张勇鹏杨华炜林仁杰
申请(专利权)人:福建福大北斗通信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1