CN110658981B - 一种提高Flash使用寿命的方法 - Google Patents

一种提高Flash使用寿命的方法 Download PDF

Info

Publication number
CN110658981B
CN110658981B CN201910318856.6A CN201910318856A CN110658981B CN 110658981 B CN110658981 B CN 110658981B CN 201910318856 A CN201910318856 A CN 201910318856A CN 110658981 B CN110658981 B CN 110658981B
Authority
CN
China
Prior art keywords
flash
erasing
area
basic
flashstate
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
CN201910318856.6A
Other languages
English (en)
Other versions
CN110658981A (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.)
Shijiazhuang Kelin Electric Co Ltd
Original Assignee
Shijiazhuang Kelin Electric Co Ltd
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 Shijiazhuang Kelin Electric Co Ltd filed Critical Shijiazhuang Kelin Electric Co Ltd
Priority to CN201910318856.6A priority Critical patent/CN110658981B/zh
Publication of CN110658981A publication Critical patent/CN110658981A/zh
Application granted granted Critical
Publication of CN110658981B publication Critical patent/CN110658981B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种提高FLASH使用寿命的方法,属于数据存储技术领域,包括以下步骤:步骤A、将闪存FLASH的存储空间由大到小分为区、域、段和基本擦除单位四层;步骤B、将FLASH的基本擦除单位、段和域根据平均寿命次数划分为若干个阶段,若基本擦除单位的擦除次数因达到相应阶段的次数需要进入下一个阶段,则寻找并使用擦除次数最少的基本擦除单位,若管理区和统计区的常用段失效,则启用备份段,若启用域的使用超过一定阶段,则启用备用域。本发明的有益效果是:能够显著增加FLASH的寿命,增加系统的稳定性。

Description

一种提高Flash使用寿命的方法
技术领域
本发明属于数据存储技术领域,具体涉及一种提高FLASH使用寿命的方法。
背景技术
现有的系统中,对于存储有以下缺点:若某些文件长期不改动则其所占用的FLASH空间长期搁置,而改动多的文件等所占用FLASH被频繁读写而寿命迅速减小,容易导致FLASH因部分损坏而报废,而且文件系统一旦格式化,某些擦除次数等信息就丢失。
发明内容
本发明要解决的技术问题是提供一种提高FLASH使用寿命的方法,通过设置管理区、数据区、统计区等多区,每个区内按寿命程度等级轮流使用,达到延长使用寿命的效果,并且不受文件系统格式化的干扰。
为解决上述技术问题,本发明采用的技术方案是:
一种提高Flash使用寿命的方法,其特征在于,包括以下步骤:
步骤A、将Flash的扇区划分为管理区、数据区、统计区。包含每个基本擦除单位的擦除次数、寿命阶段等FLASH重要参数的FLASH状态,做成三份分别在内存RAM以结构体变量形式、数据区以文件形式、统计区以二进制形式保存。与FLASH相关的有两个任务,FLASH系统主线任务、FLASH系统监视任务;
步骤B、设备上电后,FLASH系统主线任务依序查看三份FLASH状态记录是否有效,其中若有效标志无效,则依序选择后一份。若最后一份也无效,则新建最后一份且各基本擦除单位的擦除次数等赋值0,并置有效标志;
步骤C、在FLASH有擦除操作时,将擦写次数累计写入内存RAM 中的FLASH状态结构体全局变量的擦写次数元素;
步骤D、将FLASH的基本擦除单位、段、域,根据平均寿命次数划分为若干个阶段,每当擦除次数进入一个新的阶段,就进行相应的寿命管理操作;
步骤E、在关机时或者每天定时将内存FLASH状态变量与数据区的FLASH状态文件进行比较,对应数值不一致且有效时则前者数据更新到后者;在每次FLASH格式化之前或每月月初时将数据区的FLASH状态文件与统计区的FLASH状态记录进行比较,对应数值不一致且有效时则前者数据更新到后者。
本发明的有益效果是:通过将存储空间划分成多层,根据不同的使用状态使用基本擦除单位,能够显著增加FLASH的寿命,增加系统的稳定性。
下面结合附图对本发明进行详细说明。
图1是本发明中FLASH状态记录流图;
图2是本发明的流程图;
图3是图2中监视任务的流程图。
具体实施方式
本发明提供了一种提高FLASH使用寿命的方法,包括以下步骤。
步骤A、FLASH的存储空间设计。将闪存FLASH的存储空间从小到大分为四层,区、域、段、基本擦除单位,参下面的表1。第一层为管理区、数据区、统计区。管理区和统计区的第二层均由1个启用域和9个备用域组成,第三层每域由1个常用段和2个备份段组成,第四层每段由1个基本擦除单位组成。管理区用于管理数据区数据。数据区以文件形式或者简单数据结构形式来存储用户数据。统计区保存FLASH状态的累计结果(例每个基本擦除单位的擦除次数等关键参数),该区不受文件系统管理且不被文件系统格式化,通过包含互斥锁的三个FLSAH读写擦函数来直接底层操作FLASH。
Figure DEST_PATH_IMAGE001
步骤B、FLASH状态记录方法。FLASH状态用来做为FLASH各基本擦除单位间损耗平衡调度的依据之一,它包括每个基本擦除单位的擦除次数、寿命阶段等FLASH重要参数,且有有效标志及校验值。将FLASH状态记录三份,分别在内存RAM 中的FLASH状态结构体全局变量FlashState、数据区的FLASH状态文件FlashState.txt、统计区的FLASH状态记录FlashStateLog三个地方,参图1。根据存储介质、使用寿命、存取速度等多重因素权衡考虑,三份FLASH状态记录的参数值更新频率不一样,生效环境也不一样。
步骤C、FLASH状态记录更新频率。从大到小依次为:内存变量FlashState,一旦基本擦除单位的擦除次数有变则跟着更新;数据区文件FlashState.txt,关机前或每天凌晨一点时,若与内存变量FlashState值不一致时则更新;统计区记录FlashStateLog,仅在每次FLASH格式化之前、或每月初时,若与数据区文件FlashState.txt值不一致时则更新。
步骤D、三份FLASH状态记录的生效先后顺序:内存变量FlashState、数据区文件FlashState.txt、统计区记录FlashStateLog,其中若有效标志无效,则依序选择后一份。若最后一份也无效,则新建最后一份且各基本擦除单位的擦除次数等赋值0,并置有效标志。
步骤E、FLASH的损耗平衡管理、坏块管理、掉电管理。将FLASH的基本擦除单位、段、域,根据平均寿命次数划分为若干个阶段(例10万次,则1万1个阶段分10个阶段),每当擦除次数进入一个新的阶段,就进行相应的寿命管理操作。基本擦除单位的寿命管理:例如,寻找擦除次数最少的基本擦除单位,让其使用起来,让擦除次数最多的基本擦除单位轮休一段时间。管理区和统计区的寿命管理和坏块管理:常用段因掉电、遭遇坏块等失效,则启用备份段;启用域的寿命超过一定阶段,则启用备用域,反之亦然。
步骤F、FLASH相关任务划分。与FLASH相关的有两个任务,FLASH系统主线任务、FLASH系统监视任务。参图2、图3。对FLASH操作添加互斥锁等,防止两个任务等同时刻操作同一片FLASH。FLASH系统主线任务主要执行诸如读写文件之类的正常操作。FLASH系统监视任务发现并处理内外部格式化命令、系统升级、某些严重故障等特殊情况;
步骤G、FLASH系统主线任务。设备上电后,FLASH系统主线任务依序查看三份FLASH状态记录是否有效,参图1。因刚上电,所以第一份的内存RAM结构体全局变量FlashState为无效。接着核查第二份的数据区文件FlashState.txt是否有且有效:若无该文件则创建,若有该文件且有效,则第二份FlashState.txt QUOTE
Figure DEST_PATH_IMAGE002
第一份内存FlashState,然后系统正常运行、第一份开始记录FLASH状态记录。若第二份无效,接着核查第三份的统计区FlashStateLog是否有且有效:若有效,则第三份FlashStateLogt QUOTE
Figure 82897DEST_PATH_IMAGE002
第二份FlashState.txt QUOTE
Figure 531196DEST_PATH_IMAGE002
第一份内存FlashState,然后系统正常运行、第一份开始记录FLASH状态记录。若第三份也无效,则三份均初始化0并置有效标志。然后系统正常运行、第一份开始记录FLASH状态记录。当关机前或每天凌晨一点时,数据区文件FlashState.txt若与内存变量FlashState值不一致时,则更新文件FlashState.txt。当每次FLASH格式化之前、或每月月初时,若统计区记录FlashStateLog与数据区文件FlashState.txt值不一致时,则更新统计区记录FlashStateLog。
以上实施例中:
区、域、段、基本擦除单位—FLASH存储空间划分。一般有区>域>段>基本擦除单位。
管理区—本文指数据区数据的集中管理区域。本文只是讲述的一套方法,不拘于有或无文件系统、集或散管理。
数据区—存储用户数据的区域。文件形式或者简单数据结构形式。
统计区—保存FLASH状态的累计结果(例每个基本擦除单位的擦除次数等关键参数),不受文件系统管理且不被文件系统格式化,通过包含互斥锁的三个FLSAH读写擦函数来直接底层操作FLASH。
域—每个域均由1个常用段和若干个备份段组成。启用标志,值0为备用;值1为启用。
段—每个段由1个或几个基本擦除单位组成。启用标志,值0为备份;值1为常用。常用段—如果系统正常,常用段和备份段的数据保持一致。
基本擦除单位—最小擦除单元。一般NORFLASH中是一个扇区sector,NANDFLASH中是一个块BLOCK。
最小写单元— NORFLASH中是一页page,NANDFLASH中是一页page。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

Claims (4)

1.一种提高FLASH使用寿命的方法,其特征在于,包括以下步骤:
步骤A、将闪存FLASH的存储空间由大到小分为区、域、段和基本擦除单位四层,
所述区包括以文件形式或者简单数据结构形式来存储用户数据的数据区、用于管理数据区数据的管理区和用于保存FLASH状态的累计结果的统计区,
其中,管理区和统计区均包括1个启用域和9个备用域,每个域包括1个常用段和2个备份段,每个段由1个基本擦除单位组成;
步骤B、将FLASH的基本擦除单位、段和域根据平均寿命次数划分为若干个阶段,
若基本擦除单位的擦除次数因达到相应阶段的次数需要进入下一个阶段,则寻找并使用擦除次数最少的基本擦除单位,
若管理区和统计区的常用段失效,则启用备份段,
若启用域的使用超过一定阶段,则启用备用域。
2.根据权利要求1所述的提高FLASH使用寿命的方法,其特征在于,统计区不受文件系统管理且不被文件系统格式化,通过包含互斥锁的三个FLSAH读写擦函数来直接底层操作FLASH。
3.根据权利要求1所述的提高FLASH使用寿命的方法,其特征在于,在步骤B中还包括建立FLASH状态记录并将FLASH状态记录按由低到高的等级分别在内存RAM 中的FLASH状态结构体全局变量FlashState、数据区的FLASH状态文件FlashState.txt和统计区的FLASH状态记录FlashStateLog中分别进行备份,
其中,基本擦除单位的擦除次数有变化则内存变量FlashState中的FLASH状态记录立即更新,
在关机前或每天凌晨一点时,比较内存变量FlashState和数据区文件FlashState.txt中的FLASH状态记录,如果值不一致则更新数据区文件FlashState.txt中的FLASH状态记录,
在每次FLASH格式化之前或每月月初时,比较统计区记录FlashStateLog和数据区文件FlashState.txt中的FLASH状态记录,如果值不一致则更新统计区记录FlashStateLog中的FLASH状态记录。
4.根据权利要求3所述的提高FLASH使用寿命的方法,其特征在于,FLASH系统依次查看三份FLASH状态记录是否有效,如果全部有效则按正常状态进行擦写操作;如果全部无效则新建最后一份且各基本擦除单位的擦除次数等赋值0并置为有效标志,然后按正常状态进行擦写操作;否则将高等级中的FLASH状态记录复制到内存RAM或数据区中,然后按正常状态进行擦写操作。
CN201910318856.6A 2019-04-19 2019-04-19 一种提高Flash使用寿命的方法 Active CN110658981B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910318856.6A CN110658981B (zh) 2019-04-19 2019-04-19 一种提高Flash使用寿命的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910318856.6A CN110658981B (zh) 2019-04-19 2019-04-19 一种提高Flash使用寿命的方法

Publications (2)

Publication Number Publication Date
CN110658981A CN110658981A (zh) 2020-01-07
CN110658981B true CN110658981B (zh) 2022-11-08

Family

ID=69028783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910318856.6A Active CN110658981B (zh) 2019-04-19 2019-04-19 一种提高Flash使用寿命的方法

Country Status (1)

Country Link
CN (1) CN110658981B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111208950B (zh) * 2020-01-15 2023-07-14 山西银河电子设备厂 一种基于单片机的提升norflash使用周期的方法
CN114442906A (zh) * 2020-11-02 2022-05-06 深圳Tcl新技术有限公司 一种数据存储方法、终端及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1805049A (zh) * 2005-11-22 2006-07-19 武汉国光通信有限公司 一种嵌入式系统中非易失性存储器的数据存取方法
CN102081577A (zh) * 2011-01-12 2011-06-01 厦门雅迅网络股份有限公司 Flash存储器的数据存储结构及其数据操作方式
CN102135942A (zh) * 2010-12-31 2011-07-27 北京握奇数据系统有限公司 一种存储设备中实现损耗均衡的方法及存储设备
CN104317671A (zh) * 2014-10-24 2015-01-28 杭州帅锐电子科技有限公司 一种提升非易失存储使用寿命的掉电数据保存恢复算法
CN104464809A (zh) * 2014-11-05 2015-03-25 武汉新芯集成电路制造有限公司 一种延长快闪存储器使用寿命的方法
CN104820641A (zh) * 2015-04-16 2015-08-05 上海冉能自动化科技有限公司 减少flash擦除次数的方法
CN105843558A (zh) * 2016-03-25 2016-08-10 福建联迪商用设备有限公司 处理流水文件的方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4164118B1 (ja) * 2008-03-26 2008-10-08 眞澄 鈴木 フラッシュメモリを用いた記憶装置
US9548108B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver for enhanced flash endurance
US8819385B2 (en) * 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1805049A (zh) * 2005-11-22 2006-07-19 武汉国光通信有限公司 一种嵌入式系统中非易失性存储器的数据存取方法
CN102135942A (zh) * 2010-12-31 2011-07-27 北京握奇数据系统有限公司 一种存储设备中实现损耗均衡的方法及存储设备
CN102081577A (zh) * 2011-01-12 2011-06-01 厦门雅迅网络股份有限公司 Flash存储器的数据存储结构及其数据操作方式
CN104317671A (zh) * 2014-10-24 2015-01-28 杭州帅锐电子科技有限公司 一种提升非易失存储使用寿命的掉电数据保存恢复算法
CN104464809A (zh) * 2014-11-05 2015-03-25 武汉新芯集成电路制造有限公司 一种延长快闪存储器使用寿命的方法
CN104820641A (zh) * 2015-04-16 2015-08-05 上海冉能自动化科技有限公司 减少flash擦除次数的方法
CN105843558A (zh) * 2016-03-25 2016-08-10 福建联迪商用设备有限公司 处理流水文件的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于flash的嵌入式文件系统;朱宇等;《科技信息》;20090305(第07期);475-476页 *

Also Published As

Publication number Publication date
CN110658981A (zh) 2020-01-07

Similar Documents

Publication Publication Date Title
CN103577121B (zh) 一种基于Nand Flash的高可靠线性文件存取方法
KR100644602B1 (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
KR101215864B1 (ko) 전력 손실에 의한 데이터 손상을 방지하는 플래시 메모리관리 방법
US9244833B2 (en) Data-storage device and flash memory control method
CN107943414B (zh) 嵌入式Linux的文件系统分区及数据读写方法
US8312204B2 (en) System and method for wear leveling in a data storage device
US7363540B2 (en) Transaction-safe FAT file system improvements
US7584190B2 (en) Data files systems with hierarchical ranking for different activity groups
KR100437199B1 (ko) 컴퓨터시스템및그에저장된데이터를액세싱하기위한방법
CN103577574B (zh) 一种基于nand flash的高可靠线性文件系统
US8966205B1 (en) System data management using garbage collection and hybrid self mapping
US20070005874A1 (en) File system storing transaction records in flash-like media
CN101901189B (zh) 更新用户数据的方法以及恢复用户数据的方法
JP2006235960A (ja) ガーベッジコレクション高速化方法
KR20080037283A (ko) 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
EP2309392A1 (en) Memory system
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
CN110658981B (zh) 一种提高Flash使用寿命的方法
CN104516959A (zh) 一种管理数据库日志的方法及装置
CN101364166A (zh) 将2048字节页的Nand Flash模拟成硬盘的方法和装置
CN111414320B (zh) 基于日志文件系统的非易失内存构建磁盘cache的方法及系统
US9411692B2 (en) Applying write elision
CN116737064A (zh) 一种固态硬盘的数据管理方法和系统
US20090030954A1 (en) Management of multiple virtual data copies
CN114327292B (zh) 文件管理方法、系统、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant