一种延长电可擦除存储元件使用寿命的方法与流程

文档序号:13913227阅读:153来源:国知局
本发明涉及一种延长电可擦除存储元件使用寿命的方法,属于存储器
技术领域

背景技术
:电可擦除存储元件,是一种掉电后数据不丢失的存储芯片,具有电源消失后,存储的数据依然存在的特性,并且可以通过高电压来进行反复擦写的存储器;该器件广泛应用于对数据存储安全性及可靠性要求高的应用场合;芯片手册上介绍电可擦除存储元件的擦写次数一般在10万次以上。工程应用中使用到电可擦除存储元件时,考虑到电可擦除存储元件的擦写次数是有限制的,在不改变总擦写次数的情况下,延长电可擦除存储元件的使用寿命,是在使用电可擦除存储元件时急需解决的一个重要问题。技术实现要素:本发明提供了一种延长电可擦除存储元件使用寿命的方法,以用于在不改变总的擦除次数的情况下,通过将电可擦除存储元件的各个扇区均匀的划分为若干个存储块区域,通过循环按块存储和读取的方式,来延长电可擦除存储元件的使用寿命。本发明的技术方案是:一种延长电可擦除存储元件使用寿命的方法,首先在不减少总的擦写次数的情况下,将电可擦除存储元件的各个扇区均匀的划分为若干个存储块区域,每个存储块区域比所需存储的内容多2个字节,其中多出的2个字节用来存放标志位flag和异或校验位;然后使用时在存储区域进行循环延时存储和读取用于保证每个存储块区域写入次数的均衡,实现延长电可擦除存储元件的使用寿命;所述存储步骤如下:step1、对电可擦除存储元件的存储块区域延时写入数据,先设置一个数组记录上次写入的数据;step2、cpu执行其他程序,定时时间到,先响应定时器中断内容:将当前要写入的数据与上次写入的数据进行对比,若两次数据一致,则判断标志a置0不进行写入操作,cpu继续执行其他程序;step3、若两次数据不一致,则判断标志a置1,延时固定时间,再次检测标志位;step4、若判断标志a变为0,则不进行写入操作,cpu继续执行其他程序,若判断标志a仍为1,则先将要写入的数据按字节做异或关系运算,最终得到的一个字节为异或校验位,再进行写入操作,写入的顺序为标志位、要写入的数据、异或校验位,然后将判断标志a置0;step5、初始标志位flag为0,单个扇区的所有存储块区域写入完毕后,标志位flag加1,然后换另一扇区以存储块区域的形式继续进行写入,在写入该扇区之前先将该扇区的所有内容檫除;所述读取步骤如下:a)对电可擦除存储元件的存储块区域上电加载读取数据,先读取每个扇区的第一个字节的标志位flag,以确定最后所存储的数据在哪个扇区中;b)在确定的扇区中,查找到最后写入的一组数据的存储块区域;c)将查找到的数据读取出来,即为上一次存储写入的数据;d)将读取出来的数据去掉头字节和尾字节,按字节进行异或关系运算,所得到的异或校验位与取出来的异或校验位进行对比,若一致则读取出来的数据正确;e)若不一致,则读取出前一个存储块区域所存储的数据,然后重复d步骤,直到读取出的数据的异或校验位与读取到的异或校验位一致,保证数据正确不丢失。所述标志位flag用于快速查找扇区和区分未写入的存储块区域。所述读取步骤使用黄金比例查找算法来精确查找到最后写入的一组数据的存储块区域。黄金比例查找算法:它是一种精确的一维搜索(linesearch)算法。黄金比例搜索算法只需要计算目标函数值,而无需计算导数之类的值,因此用起来非常容易,应用广泛。黄金比例查找算法:已知x1、x2两个点,现在要求的是x3;但是如何来确定x3,并且使得每次的收敛都处于一个接近完美的状态;事实证明,黄金比例查找算法是极好的;此处黄金比例满足的关系式是根据黄金比例找到x3后,再根据黄金比例来找到x4、x5,如图2所示;根据需要,以此类推来找到最后写入数据的那个存储块区域;根据黄金比例查找算法找到x3,取出x3前后存储块区域的标志位flag,对比标志位flag是否被写入;若写入,则继续向后寻找x4,同样的过程,取出x4前后的存储块区域的标志位;若未被写入,则向前寻找x5,以此类推,直到找到为止;找到的标志是,读取的三个标志位flag前面两个被写入,后一个未被写入;或者是前一个被写入后两个未被写入,如图3所示。本发明的有益效果是:1)在不改变总的擦除次数的情况下,通过将电可擦除存储元件的各个扇区均匀的划分为若干个存储块区域,通过循环按块写入的方式,来延长电可擦除存储元件的使用寿命;2)延时对比写入的方法,避免了所要存储的数据在短时间内发生多次变化而多次写入,进而增加了写入的次数和擦除的次数,导致使用寿命的缩短;3)标志位flag用于快速查找扇区和区分为写入的存储块区域;4)上电加载读取步骤使用黄金比例查找算法来精确查找到最后写入的一组数据的存储块区域;5)存储步骤中进行存储数据之前和读取步骤中读取到数据之后均要对数据进行异或校验,以保证数据正确不丢失。附图说明图1为本发明中读写数据的流程图;图2为本发明黄金比例算法的解释图;图3为本发明中查找到的左后存入数据的正确位置的表示图。具体实施方式实施例1:如图1‐3所示,一种延长电可擦除存储元件使用寿命的方法,首先在不减少总的擦写次数的情况下,将电可擦除存储元件的各个扇区均匀的划分为若干个存储块区域,每个存储块区域比所需存储的内容多2个字节,其中多出的2个字节用来存放标志位flag和异或校验位;然后使用时在存储区域进行循环延时存储和读取用于保证每个存储块区域写入次数的均衡,实现延长电可擦除存储元件的使用寿命;所述存储步骤如下:step1、对电可擦除存储元件的存储块区域延时写入数据,先设置一个数组记录上次写入的数据;step2、cpu执行其他程序,定时时间到,先响应定时器中断内容:将当前要写入的数据与上次写入的数据进行对比,若两次数据一致,则判断标志a置0不进行写入操作,cpu继续执行其他程序;step3、若两次数据不一致,则判断标志a置1,延时固定时间,再次检测标志位;step4、若判断标志a变为0,则不进行写入操作,cpu继续执行其他程序,若判断标志a仍为1,则先将要写入的数据按字节做异或关系运算,最终得到的一个字节为异或校验位,再进行写入操作,写入的顺序为标志位、要写入的数据、异或校验位,然后将判断标志a置0;step5、初始标志位flag为0,单个扇区的所有存储块区域写入完毕后,标志位flag加1,然后换另一扇区以存储块区域的形式继续进行写入,在写入该扇区之前先将该扇区的所有内容檫除;所述读取步骤如下:a)对电可擦除存储元件的存储块区域上电加载读取数据,先读取每个扇区的第一个字节的标志位flag,以确定最后所存储的数据在哪个扇区中;b)在确定的扇区中,查找到最后写入的一组数据的存储块区域;c)将查找到的数据读取出来,即为上一次存储写入的数据;d)将读取出来的数据去掉头字节和尾字节,按字节进行异或关系运算,所得到的异或校验位与取出来的异或校验位进行对比,若一致则读取出来的数据正确;e)若不一致,则读取出前一个存储块区域所存储的数据,然后重复d步骤,直到读取出的数据的异或校验位与读取到的异或校验位一致,保证数据正确不丢失。进一步的,所述标志位flag用于快速查找扇区和区分未写入的存储块区域。进一步的,所述读取步骤使用黄金比例查找算法来精确查找到最后写入的一组数据的存储块区域。进一步的,所述存储步骤step1中延时的时间设定为1s,设定时间太长会导致断电保存的数据不是最新,时间太短会导致写入判断频繁。所述存储步骤step4中,在写入数据之前要对数据按字节进行异或关系运算,假定要进行异或的数据为59、67、13,异或关系运算的方法见表1:表1上表中异或运算的方法为两个数字按二进制数进行对比;相同时为0,不同则为1,异或的结果再与第三个数字进行比较;从上表中可以看出校验的结果为117(01110101)。实施例2:如图1-3所示,一种延长电可擦除存储元件使用寿命的方法,本实施例与实施例1相同,其中:本实施例中,设定要写入的字节个数为8个,单个扇区的大小为512个字节,总共有10个扇区;因此要按照10个字节为一个存储块区域来划分单个扇区,每个扇区可以划分为51个存储块区域,剩下的两个字节不再使用。通过循环按块写入的方式,来确保写入每一个存储块区域数据写入次数的一致,进而来延长电可擦除存储元件的使用寿命;当一个块存储区域写完时,写入的地址自动加10,以便于下次的写入;当一个扇区写完时,跳过最后的2个字节,换另一个扇区继续写入;由于电可擦除存储元件的存储地址是以0开始的故要以511来结束,即遇到510、1022、等数字的时候自动的加两个字节来正常的跳转到另一个扇区。本实施例中,多出的2个字节其中一个用来存放标志位flag;该标志位flag是用来快速定位最后写入数据的扇区和区分未写入的存储块区域:由于电可擦除存储元件型号的不同,扇区的个数也不一样,标志位flag用来上电加载读取时快速查找到最后写入的数据所在的扇区,通过读取每一个扇区的第一个标志位flag,比较大小,来定位最后写入的数据在哪一个扇区;由于未写入的区域的都是处于高电平1的状态,在未作区分读取的时候也可以将其读取出来,所以用flag来区分未写入的数据存储块区域,当0和254同时存在时,规定0以后的数据都大于254,以此类推,取决于电可擦除存储元件型号的不同所拥有的扇区的多少,一个字节有8位,当8位全部为1时为255,但是255与未写入存储块区域的首字节所处的状态是一样的,故舍弃255。本实施例中,多出的2个字节的另一个用来存放异或校验,由于在储存过程中可能会存在数据错存,虽然这种情况的概率较小,但是为了保证数据的准确性,增加了异或校验,把读取到的数据去掉标志位flag和异或校验,按字节相异或,再把得到的一个字节的数据与取到的异或校验相比较,就可以判断出来读取到的数据是否正确,若不正确则取出前一块区域的数据,再重复上述步骤,依次类推来取出正确的数据;由于在取到最后存入的一个存储块区域是已经获知了其地址,所以只需在原来地址的基础上再减10即可,同理在遇到512、1024、等地址时,地址自动的减2;一般情况下存储的数据是不会出错的。现模拟上电过程使用黄金比例查找算法找出最后写入数据的存储块区域,假定最后存储的数据在第8个扇区的第38个存储块区域中,然后来寻找到这个存储块区域:首先读取每个扇区的第一个字节的标志位flag,通过比较大小的方式,来确定最后所存储的数据在第8个扇区中;接着是根据黄金比例快速查找算法找到x3,取出x3前后存储块区域的标志位flag,对比标志位flag是否被写入;若写入,则继续向后寻找x4,同样的过程,取出x4前后的存储块区域的标志位;若未被写入,则向前寻找x5,以此类推,直到找到为止,如图2;找到的标志是,读取的三个标志位flag前面两个被写入,后一个未被写入;或者是前一个被写入后两个未被写入,如图3所示。查找过程见下表2:表2ad1d2d3第一次19被写入被写入被写入第二次31被写入被写入被写入第三次38被写入被写入未被写入上表中a表示根据黄金比例快速查找算法计算(有小数取整)出来的该扇区的第几个存储块区域;d1、d2、d3分别表示读取出来的前一个存储块区域的标志位flag、本个存储块区域的标志位flag和下一个存储块区域的标志位flag;被写入与未被写入表示该存储块区域是非被写入。从上表中可以看出,在本实施例的情况下,只需要3次便可以找到该扇区的最后写入数据的那个存储块区域。本实施方式中,通过本方法进行存储和读取操作,数据总的擦写次数不变,但是针对每一个存储块区域来说,数据的擦写次数是原来的若干分之一倍,电可擦除存储元件的使用寿命是原来的若干倍。上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1