【技术实现步骤摘要】
一种适用于Nor Flash数据存储的磨损均衡方法及存储设备
[0001]本专利技术涉及一种非易失闪存技术,尤其是一种适用于Nor Flash数据存储的磨损均衡方法及存储设备。
技术介绍
[0002]Nor Flash是一种非易失闪存技术,其特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。Flash闪存的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是一般用于存储代码量小的程序或者数据。
[0003]Nor Flash在写入数据时,常用的做法是在固定地址写入数据,当这个位置的数据需要改动时,需要先擦除然后再写入,数据只可以由1写成0,不可由0写成1,擦除后Nor flash数据全部变为0xFF,在面对需要频繁改动的数据时,Nor Flash很低的写入和擦除速度大大影响到它的性能,目前通用的Nor Flash存储器每个编程单元擦写寿命一般在十万次左右,当超出这个次数限制后,就会有出现坏块的可能,此时再继续改写存储的数据,正确性就无法保证。
[0004]鉴于此提出本专利技术。
技术实现思路
[0005]本专利技术的一个目的在于克服现有技术的不足,提供一种适用于Nor Flash数据存储的磨损均衡方法,通过降低擦写次数,来延缓Nor Flash存储器到达擦写寿命上限,从而提高Nor Flash存储器的使用寿命。
[0006]本专利技术的另一个目的在于提供存储设备,用于执行上述的适用于N
【技术保护点】
【技术特征摘要】
1.一种适用于Nor Flash数据存储的磨损均衡方法,其特征在于,包括对Nor Flash存储器进行存储页分配的方法、初始化方法和数据的写入、读出方法;所述存储页分配的方法包括:将Nor Flash存储空间至少划分出两个相同大小的存储页,确定两个存储页的起始地址和大小;所述初始化的方法包括:选择其中一个存储页作为活动页,另一个作为备用页,更新内存中的活动页地址、活动页的数据偏移地址、页切换标记三个全局变量的值;所述数据的写入方法包括:步骤a1、获取需要写入的数据;步骤a2、判断活动页的剩余存储空间是否不小于需要写入的数据所需的空间,如果不小于,则从活动页的数据偏移地址开始,写入待存储的数据;如果小于则将备用页切换为活动页,然后将待存储的数据写入新的活动页;步骤a3、更新内存中的活动页的数据偏移地址,写入结束;所述数据的读出方法为:步骤b1、获取需要读出数据的参数;步骤b2、根据获取的参数,从活动页的数据偏移地址开始,从后向前查找需要读出的数据,将最先查找到的且符合参数要求的数据读出到内存中。2.根据权利要求1所述的一种适用于Nor Flash数据存储的磨损均衡方法,其特征在于,所述存储页包括页面属性和数据单元;所述页面属性至少用于定义当前存储页为活动页或备用页;所述数据单元为多个,需要存储的数据以数据单元为单位进行存储,所述数据单元由数据体和数据头组成,所述数据体中存储原始数据,所述数据头的长度为一定值,用于记录数据单元的属性信息。3.根据权利要求2所述的一种适用于Nor Flash数据存储的磨损均衡方法,其特征在于,所述页面属性由页面累加数和页面校验码组成,所述页面累加数为一变量,用于区分当前存储页为活动页或备用页,所述页面校验码为一预设的固定值,用于校验页面属性是否出错。4.根据权利要求3所述的一种适用于Nor Flash数据存储的磨损均衡方法,其特征在于,所述数据头包括:数据编号、数据长度、数据校验值、数据单元偏移量和数据头校验码;所述数据编号用于区分不同数据体,为预设值;所述数据长度用于表示数据体占用存储空间的大小;所述数据校验值为根据数据体通过校验算法计算出的校验值,用于校验数据体是否损坏;所述数据单元偏移量用于表示该数据单元尾部在存储页中的偏移地址;所述数据头校验码为一预设的固定值,用于校验数据头是否损坏。5.根据权利要求4所述的一种适用于Nor Flash数据存储的磨损均衡方法,其特征在于,所述步骤a2中,将备用页切换为活动页包括以下步骤:步骤d1、将备用页的数据全部擦除;步骤d2、从活动页的数据偏移地址开始,从后向前逐个读取数据头,获得数据头中存储的数据编号、数据长度、数据校验值、数据单元偏移量和数据头校验码;
步骤d3、对数据头校验码进行校验,如果校验通过则执行步骤d4,如果校验未通过,则跳过该条数据头,执行步骤d5;步骤d4、判断当前数据编号是否为已读取过,如果是,则跳过该条数据头,执行步骤d5,如果否,则根据数据单元偏移量和数据长度,将数据体读出,计算数据体的校验值,并与数据头中的数据校验值比对,如果相等则将该数据单元写入备用页的数据偏移地址,并标注该数据编号为已读取过,更新备用页的数据偏移地址,然后执行步骤d5,如果不相等则放弃该条数据体,执行步骤d5;步骤d5、判断活动页中是否有下一条数据头,如果有,则读取下一条数据头,并返回步骤d3,如果没有,则将内存中的页切换标记自加1后赋值给备用页的页面累加数,备用页的页面校验码为定义好的固定值,并写入备用页的页面属性;步骤d6、更新内存中的全局变量:活动页地址的值为备用页所在存储页的起始地址,活动页的数据偏移地址的值为备用页的数据偏移地址;完成备用页与活动页的相互切换。6.根据权利要求...
【专利技术属性】
技术研发人员:陈斌,陈国虎,肖斌,张亚伟,
申请(专利权)人:青岛海纳云智能系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。