一种提高Flash擦写寿命的方法

文档序号:8942761阅读:633来源:国知局
一种提高Flash擦写寿命的方法
【技术领域】
[0001]本发明专利涉及一种提高Flash擦写寿命的方法,主要用于智能电子产品、移动互联网设备、移动物联网设备、智能电网设备中。
【背景技术】
[0002]在物联网设备、智能电网设备、智能电子产品中,经常需要频繁、快速、可靠地保存数据,目前的解决方案是软件写入Flash的不同地址,以完成数据保存。
[0003]将信息保存在Flash中,由于Flash的“擦除然后写入”的特性,对同一个变量(比如电压、电机速度等)频繁、快速的保存,要先擦除然后写入Flash的不同地址来完成。由于同一个变量的存储地址总是变化的,带来了困扰,应用软件的读写操作复杂性高、可靠性低、可维护性差。这会使软件复杂性急剧提升,软件开发困难,产品可靠性降低。而且这样的软件可移植性差,常造成重复劳动,耦合性大,维护也是个问题。

【发明内容】

[0004]本发明的目的在于克服上述存在的问题,提供一种能够提高Flash介质(独立的Flash存储芯片、CPU自带的片上Flash等)的擦写寿命的方法。
[0005]本发明的目的是通过如下技术方案来完成的,
[0006]一种提高Flash擦写寿命的方法,包括:
[0007]将每个Flash扇区分为128个子块,根据当前各子块的读写状态建立对应的位偏移寻址信息和擦除次数信息,将所述位偏移寻址信息和擦除次数信息存储于任意一个子块中,并对其进行实时更新;所述位偏移寻址信息占用16个字节,每个字节8位,每一位对应当前Flash扇区的一个子块的状态;读/写操作时获取当前状态下的位偏移寻址信息和擦除次数信息,并根据该位偏移寻址信息对各子块进行读/写;读/写规则为,对于已写过数据但未擦除的子块,不再进行写操作;对于未写过或擦除后未写过数据的子块,不进行读操作。
[0008]所述位偏移寻址信息中每一位对应当前Flash扇区的一个子块的状态,具体为:
[0009]所述位偏移寻址信息中,某一位的值为I,表示该位所对应子块为未写过或擦除后未写过数据的状态;
[0010]所述位偏移寻址信息中,某一位的值为0,表示该位所对应子块为已写过数据但未擦除的状态。
[0011]所述方法还包括:
[0012]根据当前状态下的位偏移寻址信息建立对应的字节偏移寻址信息,将其与所述位偏移寻址信息和擦除次数信息共同存储于任意一个子块中,并进行实时更新;所述字节偏移寻址信息占用2个字节,每个字节8位,每一位对应当前位偏移寻址信息中各个字节的状态;读/写操作时获取当前状态下字节偏移寻址信息和擦除次数信息,并根据字节偏移寻址信息中各个位的值获得其所对应位偏移寻址信息中各个字节的状态,然后结合当前操作和位偏移寻址信息中各个字节的状态,选择获取其中至少一个字节的位偏移寻址信息,最后根据选择的位偏移寻址信息进行读/写操作。
[0013]所述字节偏移寻址信息中每一位对应当前位偏移寻址信息中各个字节的状态,具体为:
[0014]所述字节偏移寻址信息中,某一位的值为1,表示该位所对应位偏移寻址信息的字节为未写过或擦除后未写过数据的状态;
[0015]所述字节偏移寻址信息中,某一位的值为0,表示该位所对应位偏移寻址信息的字节为已写过数据但未擦除的状态。
[0016]读操作时,首先获取当前状态下字节偏移寻址信息和擦除次数信息,然后获取字节偏移寻址信息中最后一个值为O的位所对应字节的位偏移寻址信息,最后对所获取的位偏移寻址信息中最后一个值为O的位所对应的子块进行读操作。
[0017]写操作时,首先获取当前状态下字节偏移寻址信息和擦除次数信息,其次获取字节偏移寻址信息中最后一个值为O的位所对应字节的位偏移寻址信息,然后获取所得位偏移寻址信息中最后一个值为O的位所对应子块的地址,最后对所得地址加I后对应的子块进行写操作。
[0018]所述位偏移寻址信息、字节偏移寻址信息和擦除次数信息均存储于Flash扇区的最后一个子块中。
[0019]所述擦除次数信息为单个独立的Flash扇区的总擦除次数。
[0020]本发明与现有技术相比有如下优点和效果:
[0021]1、每个Flash扇区分为127个子块用于信息的存储,较常规Flash使用提高了Flash的擦写寿命,放大127倍。如,原来Flash的擦/写寿命为10万次,那么使用该方法,Flash的随机擦写寿命可以达1270万次。
[0022]2、由于擦写次数得到极大提高,因此,在实际应用中能够完美替代铁电,降低了硬件成本和硬件复杂性,减少了空间占用。
[0023]3、引入字节偏移寻址信息,能够更加有针对性的、快速的获取位偏移寻址信息,大大提高了工作效率。
[0024]4、应用软件访问Flash中的各字块信息简便灵活,大大降低应用软件的复杂性。提高了应用软件的可靠性、可维护性和可移植性。
【附图说明】
[0025]图1是本发明Flash介质中的子块、位偏移、字节偏移的映射关系图。
【具体实施方式】
[0026]下面将结合附图对本发明做详细的介绍,
[0027]如图1所示,本实施例一种提高Flash擦写寿命的方法,包括:
[0028]将每个Flash扇区分为128个子块,根据当前各子块的读写状态建立对应的位偏移寻址信息和擦除次数信息(单个、独立的FLASH扇区的总擦除次数),将所述位偏移寻址信息和擦除次数信息存储于Flash扇区的最后一个子块中,并对其进行实时更新;
[0029]所述位偏移寻址信息占用16个字节,每个字节8位,每一位对应当前Flash扇区的一个子块的状态:所述位偏移寻址信息中,某一位的值为I,表示该位所对应子块为未写过或擦除后未写过数据的状态;所述位偏移寻址信息中,某一位的值为O,表示该位所对应子块为已写过数据但未擦除的状态。本例中,位偏移寻址信息中字节I的bito位对应子块I的状态,位偏移寻址信息中字节I的bitl位对应子块2的状态,依次顺序类推,将位偏移寻址信息中各个位分别与各子块一一对应。
[0030]读/写操作时获取当前状态下的位偏移寻址信息和擦除次数信息,并根据该位偏移寻址信息对各子块进行读/写;读/写规则为,对于已写过数据但未擦除的子块,不再进行写操作;对于未写过或擦除后未写过数据的子块,不进行读操作。
[0031]为了更加有针对性的、快速的获取位偏移寻址信息,本实施例还包括:
[0032]根据当前状态下的位偏移寻址信息建立对应的字节偏移寻址信息,将其与所
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1