CN114035741B - 一种flash寿命优化的数据存储方法、装置、设备及介质 - Google Patents
一种flash寿命优化的数据存储方法、装置、设备及介质 Download PDFInfo
- 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
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013499 data model Methods 0.000 claims abstract description 16
- 238000013524 data verification Methods 0.000 claims abstract description 6
- 238000013461 design Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 5
- 238000004806 packaging method and process Methods 0.000 abstract description 2
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing 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存储器的容量为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寿命优化的数据存储方法。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115509465B (zh) * | 2022-11-21 | 2023-03-28 | 杭州字节方舟科技有限公司 | 一种扇区管理方法、装置、电子设备及存储介质 |
Citations (3)
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存储的擦写方法、装置、设备及可读存储介质 |
-
2021
- 2021-09-27 CN CN202111135966.2A patent/CN114035741B/zh active Active
Patent Citations (3)
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)
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 |