CN102968383B - 一种用于火灾报警系统的提高flash使用寿命的方法 - Google Patents

一种用于火灾报警系统的提高flash使用寿命的方法 Download PDF

Info

Publication number
CN102968383B
CN102968383B CN201210538782.5A CN201210538782A CN102968383B CN 102968383 B CN102968383 B CN 102968383B CN 201210538782 A CN201210538782 A CN 201210538782A CN 102968383 B CN102968383 B CN 102968383B
Authority
CN
China
Prior art keywords
data
write
record
flash
sector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210538782.5A
Other languages
English (en)
Other versions
CN102968383A (zh
Inventor
冯勇
石险峰
翁斌
李连葆
黄岭
赵本清
汪礼苗
张庆庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
YI'AI FIRE-FIGHTING ELECTRONICS Co Ltd BENGBU
Original Assignee
YI'AI FIRE-FIGHTING ELECTRONICS Co Ltd BENGBU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by YI'AI FIRE-FIGHTING ELECTRONICS Co Ltd BENGBU filed Critical YI'AI FIRE-FIGHTING ELECTRONICS Co Ltd BENGBU
Priority to CN201210538782.5A priority Critical patent/CN102968383B/zh
Publication of CN102968383A publication Critical patent/CN102968383A/zh
Application granted granted Critical
Publication of CN102968383B publication Critical patent/CN102968383B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Fire Alarms (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种用于火灾报警系统的提高FLASH使用寿命的方法,预留的FLASH缓冲区的存储的数据的数量M大于实际需要存储的数据的数量N;a)每次写入一条记录时,首先判断最后一个非空的记录的位置,然后在下一个位置写入一条记录;b)如果发现写入一条数据后,所有缓冲区都是非空状态,需要重新擦除FLASH;c)在擦除扇区之前,读取最后存入的N条信息暂存,然后擦除整个M条信息所在的扇区,重新写入刚才暂存的N条信息;d)在此M-N条的空间中逐一写入数据,直至这M-N条全部写完;e)重复上述步骤b)、c)和d)。本发明的一种用于火灾报警系统的提高FLASH使用寿命的方法,可以调整延长寿命的倍数。

Description

一种用于火灾报警系统的提高FLASH使用寿命的方法
技术领域
本发明涉及一种用于火灾报警系统的提高FLASH使用寿命的方法。
背景技术
火灾报警系统中,需要存储大量历史记录信息,历史记录一般存储在FLASH器件中。FLASH器件有一个特点,当某空间为0时,不可以通过写操作写为1,但如果某位为1,可以通过写操作写为0,如果需要把某空间由0写为1,必须擦除整个扇区(把整个扇区写为1),而一般一个扇区往往比较大,因此为了写入某一个字节,往往需要先备份其他数据,然后擦除整个扇区,然后写入备份以及需要写入的数据,FLASH器件有使用寿命的限制,一般擦写次数超过1万次后,器件将失效。一般常规历史记录的存储方法是开辟一片区域用于存储历史记录,并记录当前写入的位置,当有条信息写入时,在当前写入位置写入数据,然后把当前写入的位置(指针)下移,如此不断重复,当写入位置到达缓冲区的末端位置时,需要从缓冲区的头部写入,这时头部的缓冲区原来已经有写入数据,因此必须先读取整个扇区的数据,然后擦除FLASH芯片扇区,然后把新数据以及原来的数据写入,因此,在缓冲区全部被写入数据后,每写入一条数据,都需要擦除FLASH扇区一次,使用这种方法,FLASH的使用寿命大约1万次,不适合系统的长期运行。
发明内容
本发明是为避免上述已有技术中存在的不足之处,提供一种用于火灾报警系统的提高FLASH使用寿命的方法,以延长FLASH使用寿命。
本发明为解决技术问题采用以下技术方案。
一种用于火灾报警系统的提高FLASH使用寿命的方法,其特点是,预留的FLASH缓冲区的存储的数据的数量M大于实际需要存储的数据的数量N;
数据写入过程包括如下步骤:
a)每次写入一条记录时,首先判断最后一个非空的记录的位置,然后在最后一个非空的记录的位置的下一个位置写入一条记录;
b)如果发现写入一条数据后,所有缓冲区都是非空状态,表示物理缓冲区已写完,需要重新擦除FLASH;
c)在擦除扇区之前,读取最后存入的N条信息暂存,然后擦除整个M条信息所在的扇区,重新写入刚才暂存的N条信息;此时系统中有M-N条记录的空间是空;
d)在此数据为空的M-N条的空间中逐一写入数据,直至这M-N条全部写完;所有缓冲区再次为步骤b)中所述的非空状态;
e)重复上述步骤b)、c)和d)。
与已有技术相比,本发明有益效果体现在:
本发明的用于火灾报警系统的提高FLASH使用寿命的方法,开辟FLASH空间能够存放的历史记录的数量M大于实际存放的历史记录的数量N,因此每写入M-N个数据才需要擦除扇区一次,避免了现有技术中每写入一条数据都需要擦除FLASH扇区一次的问题,可以延长使用寿命M-N倍,通过改变实际存储历史记录的数量,可以调整延长寿命的倍数。
附图说明
图1为本发明的提高FLASH使用寿命的方法的数据写入流程图。
图2为本发明的提高FLASH使用寿命的方法的FLASH芯片擦写过程示意图。
以下通过具体实施方式,并结合附图对本发明作进一步说明。
具体实施方式
参见图1,一种用于火灾报警系统的提高FLASH使用寿命的方法,预留的FLASH缓冲区的存储的数据的数量M大于实际需要存储的数据的数量N;
数据写入过程包括如下步骤:
a)每次写入一条记录时,首先判断最后一个非空的记录的位置,然后在最后一个非空的记录的位置的下一个位置写入一条记录;
b)如果发现写入一条数据后,所有缓冲区都是非空状态,表示物理缓冲区已写完,需要重新擦除FLASH;
c)在擦除扇区之前,读取最后存入的N条信息暂存,然后擦除整个M条信息所在的扇区,重新写入刚才暂存的N条信息;此时系统中有M-N条记录的空间是空;
d)在数据为空的M-N条的空间中逐一写入数据,直至这M-N条全部写完;所有缓冲区再次为步骤b)中所述的非空状态;
e)重复上述步骤b)、c)和d)。
常规火灾报警系统存放历史数据的方式是采用一种俗称为环形缓冲区的方式存放,其特点是在存放过程中,可以不挪动数据,只需要在缓刑缓冲区的头部和尾部操作即可。设总共可存入K条数据。每写入一条数据,尾部往后移一个记录,当尾部加1等于头部时,表示缓冲区写满,此时,头部位置也要往后移一个记录。头部位置或尾部位置超过实际环形缓冲区的实际末端时,都要改为实际环形缓冲区的开始端。这种存放方式的特点是开辟的FLASH空间能够存放的历史记录的数量与实际存放的历史记录的数量相等。
本发明与上述常规实施方式的区别是:开辟FLASH空间能够存放的历史记录的数量M大于实际存放的历史记录的数量N。
本发明以FLASH芯片SST39SF040为例讲述具体实现过程。SST39SF040芯片每片扇区为4096字节,当某字节的数据是空(即通过程序读出的数据为全1,下同)时,可以不擦除整个扇区,直接写入数据,否则必须擦除整个扇区(擦除的作用就是把整个扇区全部写为1),按每条记录信息为8字节计算,总共可以存放M=512个历史数据。在本实施例中,实际存放N=500条历史记录。
SST39SF040芯片的初始化信息都是空,可以随时写入记录而不用擦除SST39SF040扇区。程序在写入历史记录时,首先判断最后一个非空的位置,然后在该位置后端写入数据,如果写入数据后全部扇区都为非空,表示整个扇区写满,此时需要擦除整个扇区,写入最后的499条数据以及当前需要写入的数据,此时剩余12个记录空间为空,可以写入数据,因此每写12条数据才擦除一次扇区,延长FLASH使用寿命到12倍。
如图2,图中白色方块表示该空间为空,灰色方块表示该方块写入了数据,为非空状态。
第一步,如图2中状态A所示,在没有写入数据时,整个扇区为空;
第二步,如图2中状态B所示,在写入512条数据后,全部扇区为非空,整个扇区都写满数据;
第三步,如图2中状态C所示,首先备份最后写入的500条数据,然后擦除扇区,整个扇区为空;
第四步,如图2中状态D所示,写入刚才备份的500条数据,此时空余12条存储空间为空(图中位置1-12为空位置,可以写入数据);
第五步,如图2中状态E所示,而后可以依次在位置1-12逐一写入数据;当将位置12写入数据后,全部扇区再次为非空状态,整个扇区都写满数据;然后重复第三步和第四步。清空整个扇区后写入备份的500条数据,空出位置13-24,再次按照顺序逐一写入数据。
通过上述办法,由于FLASH空间能够存放的历史记录的数量M比实际存放的历史记录的数量N大12,因此每写入12个数据才需要擦除扇区一次,可以延长使用寿命12倍,通过改变实际存储历史记录的数量,可以调整延长寿命的倍数,例如,实际存储记录为400条,每写入112个数据才需要擦除扇区一次,可以延长使用寿命到112倍。
虽然本发明已依据较佳实施例在上文中加以说明,但这并不表示本发明的范围只局限于上述的结构,只要被本的发明权利要求所覆盖的结构均在保护范围之内。本技术领域的技术人员在阅读上述的说明后可很容易地发展出的等效替代结构,在不脱离本发明之精神与范围下所作之均等变化与修饰,皆应涵盖于本发明保护范围之内。

Claims (1)

1.一种用于火灾报警系统的提高FLASH使用寿命的方法,其特征是,
针对一个扇区,预留FLASH缓冲区;该预留的FLASH缓冲区的存储的数据的数量M大于实际需要存储的数据的数量N;
数据写入过程包括如下步骤:
a)每次写入一条记录时,首先判断扇区中最后一个非空的记录的位置,然后在最后一个非空的记录的位置的下一个位置写入一条记录;
b)如果发现写入一条数据后,所有缓冲区都是非空状态,表示物理缓冲区已写完,需要重新擦除FLASH;
c)在擦除扇区之前,读取最后存入的N条信息暂存,然后擦除整个M条信息所在的扇区,重新写入上述暂存的N条信息;
d)在数据为空的M-N条的空间中逐一写入数据,直至这M-N条全部写完;
e)重复上述步骤b)、步骤c)和步骤d)。
CN201210538782.5A 2012-12-13 2012-12-13 一种用于火灾报警系统的提高flash使用寿命的方法 Active CN102968383B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210538782.5A CN102968383B (zh) 2012-12-13 2012-12-13 一种用于火灾报警系统的提高flash使用寿命的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210538782.5A CN102968383B (zh) 2012-12-13 2012-12-13 一种用于火灾报警系统的提高flash使用寿命的方法

Publications (2)

Publication Number Publication Date
CN102968383A CN102968383A (zh) 2013-03-13
CN102968383B true CN102968383B (zh) 2015-08-19

Family

ID=47798535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210538782.5A Active CN102968383B (zh) 2012-12-13 2012-12-13 一种用于火灾报警系统的提高flash使用寿命的方法

Country Status (1)

Country Link
CN (1) CN102968383B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664208B (zh) * 2017-03-27 2022-02-15 珠海极海半导体有限公司 基于flash存储器的文件追加写操作方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1661569A (zh) * 2004-02-24 2005-08-31 鸿富锦精密工业(深圳)有限公司 延长铁电存储器使用寿命的数据结构设计系统及方法
CN102063379A (zh) * 2010-12-28 2011-05-18 天津市亚安科技电子有限公司 一种flash存储器的数据存储方法
CN102306125A (zh) * 2011-08-17 2012-01-04 深圳市共进电子股份有限公司 一种flash存储器的数据擦写方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071290A (ja) * 2006-09-15 2008-03-27 Toshiba Corp メモリコントローラおよびホストコンピュータ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1661569A (zh) * 2004-02-24 2005-08-31 鸿富锦精密工业(深圳)有限公司 延长铁电存储器使用寿命的数据结构设计系统及方法
CN102063379A (zh) * 2010-12-28 2011-05-18 天津市亚安科技电子有限公司 一种flash存储器的数据存储方法
CN102306125A (zh) * 2011-08-17 2012-01-04 深圳市共进电子股份有限公司 一种flash存储器的数据擦写方法

Also Published As

Publication number Publication date
CN102968383A (zh) 2013-03-13

Similar Documents

Publication Publication Date Title
CN102568609B (zh) 用于自主nand刷新的系统和方法
CN101354681B (zh) 存储器系统、非易失性存储器的磨损均衡方法及装置
CN101656106B (zh) 一种向eeprom写入数据的方法及装置
CN102081577B (zh) 对Flash存储器的数据存储结构进行数据操作的方法
CN103559138B (zh) 固态硬盘及其空间管理方法
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
CN110347335B (zh) 一种固态硬盘数据存储方法、装置
CN106484319A (zh) 用于非易失性存储器的支持无效命令
US9569354B2 (en) System and method to emulate an electrically erasable programmable read-only memory
CN102662852A (zh) 一种利用MCU内部数据Flash存储非易失性数据的方法
CN102572330A (zh) 一种液晶电视机Flash芯片的数据读取、写入和擦除的方法
CN102033793A (zh) 快照方法和固态硬盘
CN102214143A (zh) 一种多层单元闪存的管理方法、装置及存储设备
CN104375784A (zh) 一种降低虚拟磁盘管理复杂度的方法和装置
CN108228093B (zh) 使用后台介质扫描来监控存储器的方法和装置
CN102981977A (zh) 一种可延长flash使用寿命的数据存储方法
CN100465910C (zh) 对产品中闪存数据的防错、纠错方法
CN101819821B (zh) 一种固态硬盘动态损耗均衡方法
CN105512047A (zh) Flash闪存的写操作、擦除操作方法及装置
CN102968383B (zh) 一种用于火灾报警系统的提高flash使用寿命的方法
CN107507644A (zh) 存储器装置及其操作方法
CN106098103A (zh) 一种非易失性存储器中坏点单元的替换方法
CN107329912A (zh) 一种nand flash阵列的掉电处理方法
CN108279852A (zh) 用于智能电能表中提高norflash使用寿命的方法
KR20110054788A (ko) 비-휘발성 버퍼를 이용한 데이터 저장 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant