CN114035741B - 一种flash寿命优化的数据存储方法、装置、设备及介质 - Google Patents

一种flash寿命优化的数据存储方法、装置、设备及介质 Download PDF

Info

Publication number
CN114035741B
CN114035741B CN202111135966.2A CN202111135966A CN114035741B CN 114035741 B CN114035741 B CN 114035741B CN 202111135966 A CN202111135966 A CN 202111135966A CN 114035741 B CN114035741 B CN 114035741B
Authority
CN
China
Prior art keywords
sector
data
flash
storage
index
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
CN202111135966.2A
Other languages
English (en)
Other versions
CN114035741A (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.)
Beijing Aerospace Era Laser Navigation Technology Co ltd
Original Assignee
Beijing Aerospace Era Laser Navigation Technology 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 Beijing Aerospace Era Laser Navigation Technology Co ltd filed Critical Beijing Aerospace Era Laser Navigation Technology Co ltd
Priority to CN202111135966.2A priority Critical patent/CN114035741B/zh
Publication of CN114035741A publication Critical patent/CN114035741A/zh
Application granted granted Critical
Publication of CN114035741B publication Critical patent/CN114035741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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]
    • 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/0638Organizing or formatting or addressing of data

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)

Abstract

本发明提供了一种FLASH寿命优化的数据存储方法、装置、设备及介质,数据存储方法包括:设计存储数据模型,将同一周期内的存储数据按照存储模型封装,保证同一周期数据存储在同一Flash扇区内;增加存储数据校验,对同一Flash扇区内的存储数据计算校验和并存储,能够保证存储数据可靠性,便于数据处理;建立存储数据索引,Flash扇区编号与擦除次数对应,以均衡使用所有存储扇区,减少Flash各扇区擦除次数不均衡的情况,通过索引能够监控Flash寿命状况。

Description

一种FLASH寿命优化的数据存储方法、装置、设备及介质
技术领域
本发明属于嵌入式系统应用软件技术领域,特别涉及一种FLASH寿命优化的数据存储方法、装置、设备及介质。
背景技术
嵌入式系统在运行过程中,对于性能参数、工作状态等数据有大量非易失存储需求,以便依据存储数据进行事后分析和维护诊断等。Flash作为典型的非易失存储器具有容量大、功耗低、可擦写次数多、控制灵活等特点,因此广泛用于构建嵌入式系统内部或外部的非易失存储空间。与内存、磁盘等存储介质不同,Flash存储器的每个存储单元只有在擦除以后才能写入数据,擦除的基本单位由一定个数读、写基本单元组成,一个可擦除的基本单位称为一个扇区。通常扇区擦除操作所需的时间比写入操作多一个数量级,并且每个扇区允许的擦除次数是有限的,这个擦除次数决定了Flash存储器的寿命。
嵌入式系统设计时,Flash存储器容量应当大于单次工作过程中需要存储的数据量,否则系统设计不符合使用需求。设Flash存储器的容量为v,扇区集合为s,其个数为k,单个扇区容量为ls,则v=ls*k。目前,嵌入式应用软件在使用Flash进行数据存储时,通常按照以下方法进行:
(1)应用软件申请内存空间r,大小至少为一个扇区容量ls,为了便于处理,内存空间r大小通常为2*ls,用于Flash数据存储的缓存;
(2)应用软件运行过程中,将需要存储的数据保存在内存空间r内,当内存空间r内数据长度等于ls后,擦除扇区s1,将内存空间r内ls长度的数据写入s1
(3)重复过程2,依次将数据存入Flash扇区s2,s3……;
(4)嵌入式系统再次上电工作时,重复上述过程。
该Flash数据存储方法空间分配如图1所示。
该Flash数据存储方法中,存在以下缺陷:
(1)在嵌入式系统工作过程中,Flash存储器扇区使用分布不均衡。嵌入式系统设计时,Flash存储器通常会按照预留余量设计,Flash实际扇区个数k大于数据存储需要的扇区个数n,即Flash存储器容量v大于系统单次工作时需要存储的数据量。由图1可以看出,因系统工作状况不同,Flash存储器扇区s1至sn的使用概率依次降低,sn至sk的扇区在系统寿命内未被使用,导致Flash存储器扇区使用不均衡,Flash整体寿命缩短。
(2)同一周期存储数据可能在不同扇区,不便于数据的处理。为了减少Flash扇区擦除次数,该方法将内存空间r缓存满后再进行扇区擦除和写入,设应用软件同一周期需要缓存的数据集合为p,其长度为lp,由图1可以看出,同一周期的数据在内存空间r内缓存,通常ls不会恰好满足为lp的整数倍,因此周期数据p可能存储在两个扇区内,如图1所示,p4实际存储于s1、s2两个扇区,对于数据处理增加难度。
(3)上述Flash数据存储方法无法获取Flash扇区擦除次数,因而无法统计Flash的使用寿命情况。
发明内容
为了克服现有技术中的不足,本发明人进行了锐意研究,提供了一种FLASH寿命优化的数据存储方法、装置、设备及介质,以达到均衡使用Flash各扇区,延长其使用寿命;或者提高数据存储的可靠性和易处理性;或者同时能够在Flash使用过程中监控其寿命状况的至少一个目的。
为了克服现有技术中的不足,达到上述至少一个目的,本发明提供的一种FLASH寿命优化的数据存储方法、装置、设备及介质,设计存储数据模型,将同一周期内的存储数据按照存储模型封装,保证同一周期数据存储在同一Flash扇区内;增加存储数据校验,对同一Flash扇区内的存储数据计算校验和并存储,能够保证存储数据可靠性,便于数据处理;建立存储数据索引,Flash扇区编号与擦除次数对应,以均衡使用所有存储扇区,减少Flash各扇区擦除次数不均衡的情况,通过索引能够监控Flash寿命状况。
本发明提供的技术方案具体阐述如下。
第一方面,一种FLASH寿命优化的数据存储方法,包括如下步骤:
步骤(1),设计存储数据模型,将单一周期需存储的数据集合p头部添加帧头、帧计数,尾部添加帧尾,以辨别不同周期的存储数据;单个扇区的容量已知,在设计数据存储模型时,满足如下关系:
ls%lp≥5 (1)
式(1)中,lp为单一周期需存储的数据集合p的数据长度;ls为单个扇区容量,式(1)确保整数个数据集合p分布在Flash同一扇区后,至少剩余5字节的地址空间,其中5字节的地址空间用于后续存储校验和及索引值,大于5字节又不足lp的剩余部分可以作为预留区;
步骤(2),将需要存储的数据集合p缓存在内存空间r内,r内缓存数据满足ls/lp整数个后,采用crc校验方式获得缓存数据crc校验和;其中,内存空间r满足如下条件:lr≥ls,lr为内存缓存的长度;
步骤(3),运行数据存储时,读取Flash存储器全部k个扇区的索引,查询索引中的最大值;获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区;将内存空间r内缓存数据写入该扇区,将crc校验和存储在Flash扇区剩余地址空间内,同时索引增加1后存储在该Flash扇区剩余地址空间;
步骤(4),重复步骤(2)和(3),依次将数据存入Flash扇区。
进一步地,步骤(3)中,扇区剩余地址空间中预留区、校验和、数据索引的设置区间或存储位置可调。
进一步地,步骤(3)中,所述查询索引中的最大值以确定起始存储扇区步骤中:
①如果获得的扇区索引值除0xffffff外无其他值,则取Flash存储器的第一个扇区作为起始存储扇区;
②如果获得的扇区索引值除0xffffff外存在其他有效值,则获取有效值中的最大值;如果获得的扇区索引值无0xffffff,则正常获取索引的最大值;获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区。
第二方面,一种FLASH寿命优化的数据存储装置,包括存储数据模型设计模块、存储数据校验模块、数据存储运行模块和存储数据索引模块:
存储数据模型设计模块:用于设计存储数据模型,将单一周期需存储的数据集合p头部添加帧头、帧计数,尾部添加帧尾,以辨别不同周期的存储数据;单个扇区的容量已知,在设计数据存储模型时,满足如下关系:
ls%lp≥5 (1)
式(1)中,lp为单一周期需存储的数据集合p的数据长度;ls为单个扇区容量,式(1)确保整数个数据集合p分布在Flash同一扇区后,至少剩余5字节的地址空间,其中5字节的地址空间用于后续存储校验和及索引值,大于5字节又不足lp的剩余部分可以作为预留区;
存储数据校验模块,用于将需要存储的数据集合p缓存在内存空间r内,r内缓存数据满足ls/lp整数个后,采用crc校验方式获得缓存数据crc校验和;其中,内存空间r满足如下条件:lr≥ls,lr为内存缓存的长度;
数据存储运行模块,用于在运行数据存储时,读取Flash存储器全部k个扇区的索引,查询索引中的最大值;获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区;将内存空间r内缓存数据写入该扇区,将crc校验和存储在Flash扇区剩余地址空间内;
存储数据索引模块,用于在运行数据存储时,将最大索引值增加1后存储在当前Flash扇区剩余地址空间内。
进一步地,所述数据存储运行模块,在查询索引中的最大值以确定起始存储扇区时,如果获得的扇区索引值除0xffffff外无其他值,则取Flash存储器的第一个扇区作为起始存储扇区;
如果获得的扇区索引值除0xffffff外存在其他有效值,则获取有效值中的最大值;如果获得的扇区索引值无0xffffff,则正常获取索引的最大值;获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区。
第三方面,一种FLASH寿命优化的数据存储设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实施第一方面所述的FLASH寿命优化的数据存储方法。
第四方面,一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实施第一方面所述的FLASH寿命优化的数据存储方法。
根据本发明提供的一种FLASH寿命优化的数据存储方法、装置、设备及介质,具有以下有益效果:
(1)本发明提供的一种FLASH寿命优化的数据存储方法、装置、设备及介质,设计存储数据模型,将同一周期内的存储数据按照存储模型封装,保证同一周期数据存储在同一Flash扇区内;同时增加存储数据校验,对同一Flash扇区内的存储数据计算校验和并存储,Flash各扇区内存储数据易于分离处理,保证数据可靠性;
(2)本发明提供的一种FLASH寿命优化的数据存储方法、装置、设备及介质,建立存储数据索引,Flash扇区编号与擦除次数对应,使Flash存储器在寿命期内各扇区使用次数均衡,增加Flash存储器整体使用寿命;
(3)本发明提供的一种FLASH寿命优化的数据存储方法、装置、设备及介质,存储索引能够反映Flash使用寿命情况,提高系统存储数据可靠性。
附图说明
图1是常用Flash数据存储方法示意图;
图2是本发明数据集合p存储格式示意图;
图3是本发明改进Flash数据存储方法示意图;
图4是本发明改进Flash数据存储方法执行流程图。
具体实施方式
下面通过对本发明进行详细说明,本发明的特点和优点将随着这些说明而变得更为清楚、明确。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
根据本发明的第一方面,提供了一种FLASH寿命优化的数据存储方法,设应用程序单一周期需存储的数据集合为p,其数据长度为lp;Flash存储器的存储容量为v,扇区集合为s,其个数为k,单个扇区容量为ls;内存缓存为r,其长度为lr;该数据存储方法包括如下步骤:
(1)设计存储数据模型
单一周期需存储的数据集合p设计为如图2所示存储格式。将单一周期需存储的数据集合p头部添加帧头、帧计数,尾部添加帧尾,通过帧头、帧尾和帧计数,能够辨别不同周期的存储数据,容易区别存储数据在时间维度上的先后次序。单个扇区的容量已知,在设计数据存储模型时,应当满足如下关系:
ls%lp≥5 (1)
式(1)是设计存储数据模型时,确保整数个p分布在Flash同一扇区后,至少剩余5字节的地址空间,这一地址空间在每个扇区的尾部,用于后续存储校验和及索引值,大于5字节又不足lp的剩余部分可以作为预留区,这样能够保证同一周期数据存储在同一Flash扇区内。
(2)增加存储数据校验
当r内缓存数据满足(ls/lp)整数个后,采用crc校验方式,对缓存数据计算crc校验和。Flash存储器是按照扇区进行擦除和写入操作的,对同一扇区所有存储数据计算1次校验和能够保证数据正确性,减少每一周期存储数据均计算校验和的重复工作,提高了存储效率。由式(1),可将crc校验和存储在Flash扇区剩余地址空间内,如剩余地址空间的第ls-3和ls-4地址空间中。其中,内存空间r应当满足如下条件:
lr≥ls (2)
式(2)是保证内存缓存r内能够缓存一个扇区容量ls的数据,以保证在缓存足够数据后,仅擦除一次本次待写入扇区,减少扇区擦除次数。
数据处理时,读取同一扇区存储数据后,按照同样约定进行校验和计算,与Flash扇区内存储的校验和进行比较以确定数据是否正确。同时,对于Flash扇区读写异常的情况,也能够通过校验进行甄别,增加了数据存储的可靠性。
(3)建立存储数据索引
由式(1),将每个扇区最后3个字节作为存储索引,存储索引与扇区编号为求模对应关系,扇区编号与索引约定从0开始。当使用扇区0进行数据存储时,索引值存储0,当使用扇区1进行数据存储时,索引值存储1,以此类推。当索引值为Flash扇区总数k时,重新使用扇区0进行数据存储,索引值存储k。3个字节可以表示2^24共16777216个索引,能够覆盖Flash存储器的擦除寿命。每次擦除扇区进行存储时,将索引写入扇区最后3个字节地址空间中,即ls-0、ls-1和ls-2。当然,扇区剩余地址空间中预留区的位置、存储校验和及数据索引的存储位置均可设置,如在扇区剩余地址空间中三者顺序可依次为预留区、校验和、数据索引,也可为校验和、数据索引、预留区。
设计存储数据模型、增加存储数据校验、建立存储数据索引后,Flash数据存储空间分配如图3所示。
(4)执行数据存储
按照图3所示Flash数据存储空间,每次系统运行时,首先读取Flash存储器全部k个扇区的索引,查询索引中的最大值;Flash存储器中若存在未操作扇区,则读取其初始值每一bit均为1,所以未操作的扇区索引值一定为0xffffff(十六进制表示形式,等同于十进制16777216),而该值一般是远大于Flash扇区擦除寿命次数的,因此在计算索引中最大值时不考虑该初始值。
(i)如果获得的扇区索引值除0xffffff外无其他值,则取Flash存储器的第一个扇区实施存储;
(ii)如果获得的扇区索引值除0xffffff外存在其他有效值,则获取有效值中的最大值;
(iii)如果获得的扇区索引值无0xffffff,则正常获取索引的最大值;
获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区,同时索引增加1,以此类推。执行流程如图4所示。
根据本发明的第二方面,提供了一种FLASH寿命优化的数据存储装置,包括存储数据模型设计模块、存储数据校验模块、数据存储运行模块和存储数据索引模块:
存储数据模型设计模块:用于设计存储数据模型,将单一周期需存储的数据集合p头部添加帧头、帧计数,尾部添加帧尾,以辨别不同周期的存储数据;单个扇区的容量已知,在设计数据存储模型时,满足如下关系:
ls%lp≥5 (1)
式(1)中,lp为单一周期需存储的数据集合p的数据长度;ls为单个扇区容量,式(1)确保整数个数据集合p分布在Flash同一扇区后,至少剩余5字节的地址空间,其中5字节的地址空间用于后续存储校验和及索引值,大于5字节又不足lp的剩余部分可以作为预留区;
存储数据校验模块,用于将需要存储的数据集合p缓存在内存空间r内,r内缓存数据满足ls/lp整数个后,采用crc校验方式获得缓存数据crc校验和;其中,内存空间r满足如下条件:lr≥ls,lr为内存缓存的长度;
数据存储运行模块,用于在运行数据存储时,读取Flash存储器全部k个扇区的索引,查询索引中的最大值;①如果获得的扇区索引值除0xffffff外无其他值,则取Flash存储器的第一个扇区作为起始存储扇区;②如果获得的扇区索引值除0xffffff外存在其他有效值,则获取有效值中的最大值;如果获得的扇区索引值无0xffffff,则正常获取索引的最大值;获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区;将内存空间r内缓存数据写入该扇区,将crc校验和存储在Flash扇区剩余地址空间内;
存储数据索引模块,用于在运行数据存储时,将最大索引值增加1后存储在当前Flash扇区剩余地址空间内。
根据本发明的第三方面,提供了一种FLASH寿命优化的数据存储设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实施第一方面所述的FLASH寿命优化的数据存储方法。
根据本发明的第四方面,提供了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实施第一方面所述的FLASH寿命优化的数据存储方法。
以上结合具体实施方式和范例性实例对本发明进行了详细说明,不过这些说明并不能理解为对本发明的限制。本领域技术人员理解,在不偏离本发明精神和范围的情况下,可以对本发明技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本发明的范围内。本发明的保护范围以所附权利要求为准。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

Claims (7)

1.一种FLASH寿命优化的数据存储方法,其特征在于,包括如下步骤:
步骤(1),设计存储数据模型,将单一周期需存储的数据集合p头部添加帧头、帧计数,尾部添加帧尾,以辨别不同周期的存储数据;单个扇区的容量已知,在设计数据存储模型时,满足如下关系:
ls % lp≥5 (1)
式(1)中,lp为单一周期需存储的数据集合p的数据长度;ls为单个扇区容量,式(1)确保整数个数据集合p分布在Flash同一扇区后,至少剩余5字节的地址空间,其中5字节的地址空间用于后续存储校验和及索引值,大于5字节又不足lp的剩余部分作为预留区;
步骤(2),将需要存储的数据集合p缓存在内存空间r内,r内缓存数据满足ls/lp整数个后,采用crc校验方式获得缓存数据crc校验和;其中,内存空间r满足如下条件:lr≥ls,lr为内存缓存的长度;
步骤(3),运行数据存储时,读取Flash存储器全部k个扇区的索引,查询索引中的最大值;获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区;将内存空间r内缓存数据写入该扇区,将crc校验和存储在Flash扇区剩余地址空间内,同时索引增加1后存储在该Flash扇区剩余地址空间;
步骤(4),重复步骤(2)和(3),依次将数据存入Flash扇区。
2.根据权利要求1所述的FLASH寿命优化的数据存储方法,其特征在于,步骤(3)中,扇区剩余地址空间中预留区、校验和、数据索引的设置区间或存储位置可调。
3.根据权利要求1所述的FLASH寿命优化的数据存储方法,其特征在于,步骤(3)中,所述查询索引中的最大值以确定起始存储扇区步骤中:
①如果获得的扇区索引值除0xffffff外无其他值,则取Flash存储器的第一个扇区作为起始存储扇区;
②如果获得的扇区索引值除0xffffff外存在其他有效值,则获取有效值中的最大值;如果获得的扇区索引值无0xffffff,则正常获取索引的最大值;获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区。
4.一种FLASH寿命优化的数据存储装置,其特征在于,包括存储数据模型设计模块、存储数据校验模块、数据存储运行模块和存储数据索引模块:
存储数据模型设计模块:用于设计存储数据模型,将单一周期需存储的数据集合p头部添加帧头、帧计数,尾部添加帧尾,以辨别不同周期的存储数据;单个扇区的容量已知,在设计数据存储模型时,满足如下关系:
ls % lp≥5 (1)
式(1)中,lp为单一周期需存储的数据集合p的数据长度;ls为单个扇区容量,式(1)确保整数个数据集合p分布在Flash同一扇区后,至少剩余5字节的地址空间,其中5字节的地址空间用于后续存储校验和及索引值,大于5字节又不足lp的剩余部分作为预留区;
存储数据校验模块,用于将需要存储的数据集合p缓存在内存空间r内,r内缓存数据满足ls/lp整数个后,采用crc校验方式获得缓存数据crc校验和;其中,内存空间r满足如下条件:lr≥ls,lr为内存缓存的长度;
数据存储运行模块,用于在运行数据存储时,读取Flash存储器全部k个扇区的索引,查询索引中的最大值;获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区;将内存空间r内缓存数据写入该扇区,将crc校验和存储在Flash扇区剩余地址空间内;
存储数据索引模块,用于在运行数据存储时,将最大索引值增加1后存储在当前Flash扇区剩余地址空间内。
5.根据权利要求4所述的FLASH寿命优化的数据存储装置,其特征在于,所述数据存储运行模块,在查询索引中的最大值以确定起始存储扇区时,如果获得的扇区索引值除0xffffff外无其他值,则取Flash存储器的第一个扇区作为起始存储扇区;
如果获得的扇区索引值除0xffffff外存在其他有效值,则获取有效值中的最大值;如果获得的扇区索引值无0xffffff,则正常获取索引的最大值;获取索引最大值后对k求模即得到上次运行存储使用的最后一个Flash扇区编号,本次运行即使用该扇区编号后的一个扇区作为起始存储扇区。
6.一种FLASH寿命优化的数据存储设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实施权利要求1至3之一所述的FLASH寿命优化的数据存储方法。
7.一种可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实施权利要求1至3之一所述的FLASH寿命优化的数据存储方法。
CN202111135966.2A 2021-09-27 2021-09-27 一种flash寿命优化的数据存储方法、装置、设备及介质 Active CN114035741B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111135966.2A CN114035741B (zh) 2021-09-27 2021-09-27 一种flash寿命优化的数据存储方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111135966.2A CN114035741B (zh) 2021-09-27 2021-09-27 一种flash寿命优化的数据存储方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN114035741A CN114035741A (zh) 2022-02-11
CN114035741B true CN114035741B (zh) 2024-02-09

Family

ID=80140269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111135966.2A Active CN114035741B (zh) 2021-09-27 2021-09-27 一种flash寿命优化的数据存储方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114035741B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115509465B (zh) * 2022-11-21 2023-03-28 杭州字节方舟科技有限公司 一种扇区管理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823642A (zh) * 2014-03-17 2014-05-28 深圳市道通科技有限公司 用于Flash均衡存储的方法及系统
CN105183392A (zh) * 2015-09-18 2015-12-23 广州日滨科技发展有限公司 一种定长数据在flash的存储方法
CN113220239A (zh) * 2021-05-24 2021-08-06 厦门四信通信科技有限公司 一种flash存储的擦写方法、装置、设备及可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823642A (zh) * 2014-03-17 2014-05-28 深圳市道通科技有限公司 用于Flash均衡存储的方法及系统
CN105183392A (zh) * 2015-09-18 2015-12-23 广州日滨科技发展有限公司 一种定长数据在flash的存储方法
CN113220239A (zh) * 2021-05-24 2021-08-06 厦门四信通信科技有限公司 一种flash存储的擦写方法、装置、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于贪婪策略的NAND FLASH存储器的磨损均衡算法研究;贾鑫;张少平;;计算机科学(第S2期);第322-326页 *

Also Published As

Publication number Publication date
CN114035741A (zh) 2022-02-11

Similar Documents

Publication Publication Date Title
US8775874B2 (en) Data protection method, and memory controller and memory storage device using the same
US8560926B2 (en) Data writing method, memory controller and memory storage apparatus
US9684468B2 (en) Recording dwell time in a non-volatile memory system
US9690702B2 (en) Programming non-volatile memory using a relaxed dwell time
US8898370B2 (en) Data storage method for flash memory, and flash memory controller and flash memory storage system using the same
TWI585770B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US20110055457A1 (en) Method for giving program commands to flash memory, and controller and storage system using the same
US9274943B2 (en) Storage unit management method, memory controller and memory storage device using the same
TWI423022B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
CN108399109A (zh) 软解码调度
US8667348B2 (en) Data writing method for non-volatile memory module and memory controller and memory storage apparatus using the same
US20150161035A1 (en) Retirement of physical memory based on dwell time
TW201703052A (zh) 平均磨損方法、記憶體儲存裝置及記憶體控制電路單元
TWI479315B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
CN109491588A (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN114035741B (zh) 一种flash寿命优化的数据存储方法、装置、设备及介质
TWI658361B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI548991B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9298610B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
TWI393146B (zh) 具有錯誤修正碼容量設定單元之快閃記憶體控制器及其方法
TWI805379B (zh) 基於資料優先級的風險評估方法、記憶體儲存裝置及記憶體控制電路單元
US9152348B2 (en) Data transmitting method, memory controller and data transmitting system
CN113204316A (zh) 一种使用flash进行高效数据存储的方法
KR100246184B1 (ko) 리드-솔로몬 에러 정정 코드를 이용한 프레쉬 메모리 시스템의 운영 방법
US10884660B2 (en) Memory management method, memory storage device and memory control circuit unit

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