CN102968383A - 一种用于火灾报警系统的提高flash使用寿命的方法 - Google Patents
一种用于火灾报警系统的提高flash使用寿命的方法 Download PDFInfo
- Publication number
- CN102968383A CN102968383A CN2012105387825A CN201210538782A CN102968383A CN 102968383 A CN102968383 A CN 102968383A CN 2012105387825 A CN2012105387825 A CN 2012105387825A CN 201210538782 A CN201210538782 A CN 201210538782A CN 102968383 A CN102968383 A CN 102968383A
- Authority
- CN
- China
- Prior art keywords
- data
- flash
- record
- sector
- write
- 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.)
- Granted
Links
Images
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器件有一个特点,当某空间为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缓冲区的存储的数据的数量M大于实际需要存储的数据的数量N;
数据写入过程包括如下步骤:
a)每次写入一条记录时,首先判断最后一个非空的记录的位置,然后在最后一个非空的记录的位置的下一个位置写入一条记录;
b)如果发现写入一条数据后,所有缓冲区都是非空状态,表示物理缓冲区已写完,需要重新擦除FLASH。
c)在擦除扇区之前,读取最后存入的N条信息暂存,然后擦除整个M条信息所在的扇区,重新写入刚才暂存的N条信息;
d)在数据为空的M-N条的空间中逐一写入数据,直至这M-N条全部写完;
e)重复上述步骤b)、步骤c)和步骤d)。
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 true CN102968383A (zh) | 2013-03-13 |
CN102968383B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114089915A (zh) * | 2017-03-27 | 2022-02-25 | 珠海极海半导体有限公司 | 基于flash存储器的文件追加写操作方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1661569A (zh) * | 2004-02-24 | 2005-08-31 | 鸿富锦精密工业(深圳)有限公司 | 延长铁电存储器使用寿命的数据结构设计系统及方法 |
JP2008071290A (ja) * | 2006-09-15 | 2008-03-27 | Toshiba Corp | メモリコントローラおよびホストコンピュータ |
CN102063379A (zh) * | 2010-12-28 | 2011-05-18 | 天津市亚安科技电子有限公司 | 一种flash存储器的数据存储方法 |
CN102306125A (zh) * | 2011-08-17 | 2012-01-04 | 深圳市共进电子股份有限公司 | 一种flash存储器的数据擦写方法 |
-
2012
- 2012-12-13 CN CN201210538782.5A patent/CN102968383B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1661569A (zh) * | 2004-02-24 | 2005-08-31 | 鸿富锦精密工业(深圳)有限公司 | 延长铁电存储器使用寿命的数据结构设计系统及方法 |
JP2008071290A (ja) * | 2006-09-15 | 2008-03-27 | Toshiba Corp | メモリコントローラおよびホストコンピュータ |
CN102063379A (zh) * | 2010-12-28 | 2011-05-18 | 天津市亚安科技电子有限公司 | 一种flash存储器的数据存储方法 |
CN102306125A (zh) * | 2011-08-17 | 2012-01-04 | 深圳市共进电子股份有限公司 | 一种flash存储器的数据擦写方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114089915A (zh) * | 2017-03-27 | 2022-02-25 | 珠海极海半导体有限公司 | 基于flash存储器的文件追加写操作方法及装置 |
CN114089915B (zh) * | 2017-03-27 | 2022-12-20 | 珠海极海半导体有限公司 | 基于flash存储器的文件追加写操作方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102968383B (zh) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9690695B2 (en) | Data storage device and flash memory control method thereof | |
US8949507B2 (en) | Method for performing block management, and associated memory device and controller thereof | |
CN101236482B (zh) | 降级状态下处理数据的方法及独立冗余磁盘阵列系统 | |
US9569354B2 (en) | System and method to emulate an electrically erasable programmable read-only memory | |
CN103559138A (zh) | 固态硬盘及其空间管理方法 | |
WO2014074449A2 (en) | Wear leveling in flash memory devices with trim commands | |
CN106873908B (zh) | 数据存储方法及装置 | |
CN102043687B (zh) | 实现数据快照的首写拷贝装置及控制方法 | |
WO2008063647A9 (en) | Delaying an operation that reduces a lifetime of memory | |
CN101324862A (zh) | 闪存存储管理方法 | |
CN102955743A (zh) | 固态储存装置及其损耗平均控制方法 | |
CN110517718B (zh) | 一种有效筛选颗粒新增坏块的方法及其系统 | |
CN108897492A (zh) | 一种数据写入方法和装置 | |
CN105512047A (zh) | Flash闪存的写操作、擦除操作方法及装置 | |
US8941935B1 (en) | System and method for initiating refresh operations | |
CN102981977A (zh) | 一种可延长flash使用寿命的数据存储方法 | |
CN108279852A (zh) | 用于智能电能表中提高norflash使用寿命的方法 | |
CN101819821B (zh) | 一种固态硬盘动态损耗均衡方法 | |
CN104102459A (zh) | 一种闪存设备的数据处理方法及闪存设备 | |
CN100465910C (zh) | 对产品中闪存数据的防错、纠错方法 | |
CN102968383A (zh) | 一种用于火灾报警系统的提高flash使用寿命的方法 | |
CN102592678B (zh) | 基于动态窗口管理的磨损均衡方法及装置 | |
CN106098103A (zh) | 一种非易失性存储器中坏点单元的替换方法 | |
CN104102552A (zh) | 一种消息处理方法及装置 | |
CN101251827B (zh) | 信息存储装置及其存储数据处理方法 |
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 |