一种flash存储器的数据擦写方法

文档序号:6430922阅读:271来源:国知局
专利名称:一种flash存储器的数据擦写方法
技术领域
本发明涉及数据存储技术领域,尤其涉及一种FLASH存储器的数据擦写方法。
背景技术
FLASH存储器是一种半导体存储器,具有集成度高、读取速度快、单一供电、再编程次数多等显著优点。FLASH存储器作为非易失数据存储设备,被广泛地应用于嵌入式系统中。单片机内的FLASH可以在线编程,也可以存储程序运行时的数据,但修改FLASH中的数据时需要先进行擦除,即修改一个字节的数据也要先擦除这个字节所在扇区的全部数据, 然后再写入数据。传统的数据写入方法采用如下的过程1.先将整个扇区的数据读出到缓存中;2。在缓存中修改数据;3.擦除扇区,将缓存中修改后的数据写回该扇区内。这种传统的方法存在以下不足每改动扇区中的一个字节都要擦除整个扇区的数据,而某些数据需要频繁修改,该数据所在的扇区会被频繁擦除。由此可知传统的FLASH写入方法需要频繁的擦除数据,但是FLASH的擦除次数是有限的,使用传统方法进行上数据的写入和修改会大大降低FLASH的使用寿命。

发明内容
本发明的目的在于提供一种FLASH存储器的数据擦写方法,有效降低FLASH存储器的擦除次数,延长FLASH存储器的使用寿命。本发明的目的是通过以下技术方案实现的。一种FLASH存储器的数据擦写方法,包括
在需要向扇区中写入数据时,首先判断该扇区的剩余空间是否足够存放当前待写入的数据,若足够,则将数据直接写入该扇区的空闲空间;若不够,则擦除该扇区后再写入数据; 写入完成后记录本次写入数据的起始及结束地址信息,并更新有效数据地址信息为本次写入数据的首地址。优选地,上述方法中,在每次向扇区中写入数据的过程中,将数据顺序写入扇区的空闲空间的最低地址。优选地,判断扇区的剩余空间是否足够存放当前待写入的数据的方法为读取上次写入数据的地址信息记录,将扇区的结束地址减去上次写入数据的结束地址得到扇区的剩余空间大小,比较剩余空间和当前待写入的数据的大小,若前者大于后者,则认定剩余空间足够存放当前待写入的数据,否则不够存放当前待写入的数据。优选地,上述方法中,在判断出扇区的剩余空间足够存放当前待写入数据时,读取上次写入数据的地址信息记录,以上次写入数据的结束地址的下一字节开始写入当前待写入数据。优选地,上述方法还包括在第一次写入数据时,擦除整个扇区,从该扇区的起始位置开始写入。与现有技术相比,本发明实施例具有以下有益效果本发明在扇区中顺序写入数据,以最后一次写入数据的地址为有效数据地址,而在扇区中剩余空间不足够写入数据时才擦除整个扇区并从其初始位置开始写入,这样明显大大减少了扇区的擦除次数,不仅提高了效率,而且延长了 FLASH存储器的使用寿命。


图1是本发明实施例中FLASH存储器的数据擦写方法流程。图2是本发明实施例中扇区中数据的存放布局。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参阅图1所示,本实施例中FLASH存储器的数据擦写方法包括以下步骤。101、在需要写入更新扇区中的信息时,判断上一次存放数据的记录是否存在,若存在,则执行步骤102 ;若不存在,则执行步骤103。102、由于是第一次写入数据,按照普通流程,擦除整个扇区,并从该扇区的起始位置开始写入数据,记录本次写入数据的起始地址和结束地址,并更新有效数据地址信息为本次写入数据的首地址。103、读取上次写入数据的地址信息记录,据此计算当前扇区中的剩余空间。计算方法为将扇区的结束地址减去上次写入数据的结束地址记得到当前扇区的剩余空间大小。104、判断剩余空间是否足够存放本次要写入的数据,若足够,则执行步骤105 ;若不够,则执行步骤106。105、以上次写入数据的结束地址的下一字节为起始位置开始写入本次要写入的数据,记录本次写入数据的起始地址和结束地址信息,并更新有效数据地址信息为本次写入数据的首地址。106、擦除整个扇区,从该扇区的开始位置写入数据,写入完成之后记录本次写入数据的起始地址和结束地址信息,并更新有效数据地址信息为本次写入数据的首地址。107、等待下一次写入数据时,返回步骤101。请参阅图2所示,该图示出了本实施例中在FLASH存储器中的一个扇区sector中的数据存放布局,其中,recordl、record2、…、last record是依次写入的数据,其中,last record是最后一次写入的数据,其数据地址即为有效数据地址。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种FLASH存储器的数据擦写方法,其特征在于,该方法包括在需要向扇区中写入数据时,首先判断该扇区的剩余空间是否足够存放当前待写入的数据,若足够,则将数据直接写入该扇区的空闲空间;若不够,则擦除该扇区后再写入数据; 写入完成后记录本次写入数据的起始及结束地址信息,并更新有效数据地址信息为本次写入数据的首地址。
2.如权利要求1所述的FLASH存储器的数据擦写方法,其特征在于,该方法中,在每次向扇区中写入数据的过程中,将数据顺序写入扇区的空闲空间的最低地址。
3.如权利要求2所述的FLASH存储器的数据擦写方法,其特征在于,判断扇区的剩余空间是否足够存放当前待写入的数据的方法为读取上次写入数据的地址信息记录,将扇区的结束地址减去上次写入数据的结束地址得到扇区的剩余空间大小,比较剩余空间和当前待写入的数据的大小,若前者大于后者,则认定剩余空间足够存放当前待写入的数据,否则不够存放当前待写入的数据。
4.如权利要求2所述的FLASH存储器的数据擦写方法,其特征在于,该方法中,在判断出扇区的剩余空间足够存放当前待写入数据时,读取上次写入数据的地址信息记录,以上次写入数据的结束地址的下一字节开始写入当前待写入数据。
5.如权利要求1至4任一所述的FLASH存储器的数据擦写方法,其特征在于,该方法还包括在第一次写入数据时,擦除整个扇区,从该扇区的起始位置开始写入。
全文摘要
本发明提供了一种FLASH存储器的数据擦写方法,该方法包括在需要向扇区中写入数据时,首先判断该扇区的剩余空间是否足够存放当前待写入的数据,若足够,则将数据直接写入该扇区空闲空间的最低地址;若不够,则擦除该扇区后再写入数据到该扇区的最低地址;写入完成后记录本次写入数据的开始及结束地址信息,并更新有效数据地址信息为本次写入数据的首地址。本发明在扇区中顺序写入数据,以最后一次写入数据的首地址为有效数据首地址,而在扇区中剩余空间不足够写入数据时才擦除整个扇区并从其初始位置开始写入,这样明显大大减少了扇区的擦除次数,不仅提高了效率,而且延长了FLASH存储器的使用寿命。
文档编号G06F12/02GK102306125SQ201110235360
公开日2012年1月4日 申请日期2011年8月17日 优先权日2011年8月17日
发明者汪澜, 王志波, 闫瑞轩 申请人:深圳市共进电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1