基于擦写次数计数的片上系统文件数据写入方法及系统技术方案

技术编号:38245696 阅读:14 留言:0更新日期:2023-07-25 18:06
本发明专利技术涉及一种基于擦写次数计数的片上系统文件数据写入方法及系统。本发明专利技术对每个存储块的擦写次数进行计数,根据擦写次数与存储器标定的最大擦写次数之间的比值,判定该存储块的磨损程度;将磨损程度划分为多个级别,对每个级别的可用存储块分别使用一个循环链表进行管理;将写入文件数据的存储块管理与各级别循环链表相结合,优先使用磨损程度级别最低的可用存储块,且在写入文件数据时查找合适的可用存储块对该指定的存储块进行取代或交换,或者直接写入指定的存储块。本发明专利技术技术方案即使在文件数据反复写入的情况下,也可以保持数据存储空间擦写次数的总体均衡,有效延长了片上系统数据存储器的使用寿命。上系统数据存储器的使用寿命。上系统数据存储器的使用寿命。

【技术实现步骤摘要】
基于擦写次数计数的片上系统文件数据写入方法及系统


[0001]本专利技术属于数据存储管理和芯片设计领域,具体涉及一种基于擦写次数计数的片上系统文件数据写入方法及系统。

技术介绍

[0002]芯片FLASH存储器中最小一次擦除操作的存储量常称为块,每块的大小根据芯片对存储器管理的粒度不同常分为256、512、1024、2048等字节,每块最大擦写次数决定了该存储块的使用寿命。由于文件的擦写操作存在局部性,即文件中的某些存储块可能频繁写入数据而损坏,而芯片中其他一些存储块可能很少进行擦写操作,从而导致芯片FLASH存储器中不同存储块磨损不均衡的问题,降低了芯片的使用寿命。采用存储块均衡磨损的方法,可以有效地提高芯片存储区的使用寿命。
[0003]为了延长片上系统FLASH存储器的使用寿命,可以使用磨损均衡算法,将擦写操作均匀分布在整个存储介质上。现有技术中,有采用对存储单元进行擦写操作次数计数以达到各单元磨损相对均衡,以及使用缓存以减少擦写操作次数等方法,但只考虑存储单元的管理和分配,未与文件数据管理相结合,无法从根本上解决某些文件反复写入特定区域的数据所带来的存储器寿命缩短问题。因此,如何通过对片上系统的FLASH存储单元的管理和文件数据存储管理的有效结合,在文件反复写入某些数据的情况下仍能达到FLASH存储单元磨损均衡,成为亟待解决的问题。

技术实现思路

[0004]本专利技术的目的是针对在文件数据某些区域反复写入的情况下,保持数据存储单元磨损均衡的需求,而提供一种基于擦写次数计数的片上系统文件数据写入方法及系统。
[0005]具体的,所提出的一种基于擦写次数计数的片上系统文件数据写入方法,包括:对每个存储块的擦写次数进行计数,根据擦写次数与存储器标定的最大擦写次数之间的比值,判定该存储块的磨损程度级别,每个磨损程度级别对应一个循环链表,所述循环链表中,每个表项包括存储块的标识和使用标志字,初始化时,使用标志字为存储器擦除后的初始值,表示该存储块待使用;如果该存储块被分配使用,则使用标志字改写为已使用状态;写入文件数据时,判断文件控制信息中指定的存储块M是否为待写状态,若存储块M为待写状态,则直接将数据写入到存储块M中;若存储块M已写入数据,则执行改写操作:根据命令接收到的写入控制参数、写入数据和存储块M存储的数据,构造本次写入操作所形成的新的缓存数据;对存储块M进行擦除操作,并将其擦写次数加1;根据擦写次数与存储器标定的最大擦写次数之间的比值,判定存储块M的磨损程度级别;若存储块M的磨损程度级别未改变,则直接将新的缓存数据写入到存储块M中;
若存储块M的磨损程度级别变高,则查找是否存在磨损程度级别低于存储块M的磨损程度级别的可用存储块N,若存在,则用所述可用存储块N取代存储块M写入新的缓存数据,将存储块M的信息加入到其擦写次数对应级别的循环链表中,并更新文件控制信息中的文件存储空间信息;若不存在,则查找文件内部满足预设交换条件的擦写次数最小的存储块P,若查找到,则将存储块P与存储块M交换并写入数据,更新文件控制信息中的文件存储空间信息;若未查找到,则直接将新的缓存数据写入到存储块M中。
[0006]本专利技术还提供一种基于擦写次数计数的片上系统文件数据存储管理方法和系统。
[0007]所述片上系统文件数据存储管理方法除了包括前述的文件数据写入方法,还包括:创建文件时,从磨损程度最低级别的循环链表开始,查找可用存储块并分配给该文件,若该级别的循环链表管理的存储空间不能满足文件申请的空间要求,则继续在磨损程度更高级别的循环链表中查找可用存储块并分配给该文件;在文件控制信息中设置文件存储空间信息,用来记录分配给该文件的存储块的标识;删除文件时,根据文件控制信息中记录的存储块的标识,将对应的存储块进行擦除操作且将其擦写次数加1,然后将该存储块的信息加入到其擦写次数对应级别的循环链表。
[0008]本专利技术技术方案对每个FLASH存储块的擦写次数进行计数,根据擦写次数与存储器标定的最大擦写次数之间的比值,判定该存储块的磨损程度;将磨损程度划分为多个级别,对每个级别的可用存储块分别使用一个循环链表进行管理;将写入文件数据的存储块管理与各级别循环链表相结合,优先使用磨损程度级别最低的可用存储块,且在写入文件数据需要改写指定的存储块的数据时,查找合适的可用存储块对该指定的存储块进行取代或交换。具体地说:1.本专利技术技术方案将片上系统的存储单元管理和文件数据写入有机地结合起来,使数据存储空间达到全局整体磨损均衡,即使在文件局部数据反复写入的情况下,也可以保持数据存储空间擦写次数的总体均衡,不会出现个别数据存储单元频繁擦写的情况,有效延长了存储器件的使用寿命;使用多级全局循环链表,对磨损程度处于各个级别的可用储块进行管理的同时,还兼顾文件存储空间的分配和管理,在存储器全局整体磨损均衡的前提下,可以方便地进行文件数据存储管理,提高了管理效率。
[0009]2. 本专利技术技术方案在存在磨损程度级别低于存储块M的磨损程度级别的可用存储块N时,用所述可用存储块N取代存储块M写入数据,并将存储块M的信息加入到其擦写次数对应级别的循环链表中,从而实现存储器的所有存储块之间的均衡磨损;在不存在磨损程度级别低于存储块M的磨损程度级别的可用存储块N时,查找文件内部满足预设交换条件的擦写次数最小的存储块P,若查找到,则将存储块P与存储块M交换并写入数据,更新文件控制信息中的文件存储空间信息;若未查找到,则直接将数据写入到存储块M中,从而实现文件内部各存储块之间的均衡磨损。
[0010]3. 本专利技术技术方案在文件创建时,使用全局循环链表查找可用存储块,优先使用磨损程度级别最低的可用存储块,若低级别的循环链表管理的存储空间不能满足文件申请的空间要求,则继续在磨损程度更高级别的循环链表中查找可用存储块并分配给该文件;
在文件删除时,根据文件控制信息中记录的存储块的标识,将对应的存储块进行擦除操作且将其擦写次数加1,然后将该存储块的信息加入到其擦写次数对应级别的循环链表,从而实现根据存储块磨损等级对文件存储空间进行分配管理,管理方式方便快捷。
附图说明
[0011]图1是本专利技术实施例1中片上系统文件数据写入方法的示意图。
[0012]图2是本专利技术实施例1中循环链表的结构示意图。
[0013]图3是本专利技术实施例1中循环链表带指针的结构示意图。
具体实施方式
[0014]实施例1:本实施例提供一种基于擦写次数计数的片上系统文件数据写入方法,如图1所示,该方法包括:对每个存储块的擦写次数进行计数,根据擦写次数与存储器标定的最大擦写次数之间的比值,判定该存储块的磨损程度级别,每个磨损程度级别对应一个循环链表,所述循环链表中,每个表项包括存储块的标识和使用标志字,初始化时,使用标志字为存储器擦除后的初始值,表示该存储块待使用;如果该存储块被分配使用,则使用标志字改写为已使用状态;本实施例中,所述存储块的标识即为存储块在存储区中的逻辑地址。如图2所示,在每个磨损程度级别的循环链表中,在初始本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于擦写次数计数的片上系统文件数据写入方法,其特征在于,包括:对每个存储块的擦写次数进行计数,根据擦写次数与存储器标定的最大擦写次数之间的比值,判定该存储块的磨损程度级别,每个磨损程度级别对应一个循环链表,所述循环链表中,每个表项包括存储块的标识和使用标志字,初始化时,使用标志字为存储器擦除后的初始值,表示该存储块待使用;如果该存储块被分配使用,则使用标志字改写为已使用状态;写入文件数据时,判断文件控制信息中指定的存储块M是否为待写状态,若存储块M为待写状态,则直接将数据写入到存储块M中;若存储块M已写入数据,则执行改写操作:根据命令接收到的写入控制参数、写入数据和存储块M存储的数据,构造本次写入操作所形成的新的缓存数据;对存储块M进行擦除操作,并将其擦写次数加1;根据擦写次数与存储器标定的最大擦写次数之间的比值,判定存储块M的磨损程度级别;若存储块M的磨损程度级别未改变,则直接将新的缓存数据写入到存储块M中;若存储块M的磨损程度级别变高,则查找是否存在磨损程度级别低于存储块M的磨损程度级别的可用存储块N,若存在,则用所述可用存储块N取代存储块M写入新的缓存数据,将存储块M的信息加入到其擦写次数对应级别的循环链表中,并更新文件控制信息中的文件存储空间信息;若不存在,则查找文件内部满足预设交换条件的擦写次数最小的存储块P,若查找到,则将存储块P与存储块M交换并写入数据,更新文件控制信息中的文件存储空间信息;若未查找到,则直接将新的缓存数据写入到存储块M中。2.根据权利要求1所述的一种基于擦写次数计数的片上系统文件数据写入方法,其特征在于,将存储块P与存储块M交换并写入数据,包括:将存储块P存储的数据写入到存储块M,将存储块P进行擦除操作且将其擦写次数加1,在存储块P中写入新的缓存数据,并在文件控制信息中将存储块M和存储块P的标识交换位置。3.根据权利要求1或2所述的一种基于擦写次数计数的片上系统文件数据写入方法,其特征在于,所述预设交换条件为:Q

≤Q/T,T≥2;其中,Q

为文件内部各存储块擦写次数的最小值;Q为存储块M的擦写次数,T为预设值。4.根据权利要求1所述的基于擦写次数计数的片上系统文件数据写入方法,其特征在于:所述查找是否存在磨损程度级别低于存储块M的可用存储块N,具体包括:在磨损程度级别比存储块M低的循环链表中,从磨损程度最低级别的循环链表开始,到存储块M的磨损程度级别当前所在的循环链表为止,查找使用标志字为待使用的可用存储块N。5.根据权利要求1所述的基于擦写次数计数的片上系统文件数据写入方法,其特征在于:判定该存储块的磨损程度级别,具体包括:设擦写次数与存储器标定的最大擦写次数之间的比值为W,当W≤3/5时,判定磨损程度处于可靠运行级别;当3/5<W≤4/5时,判定磨损程度处于稳定运行级别;当4/5<W≤9/10时,判定磨损程度处于正常运行级别;当9/10<W<1时,判定存储块处于风险运行级别。6.根据权利要求1所述的基于擦写次数计数的片上系统文件数据写入方法,其特征在
于:对于每个磨损程度级别的循环链表,设立可用存储块首指针和可用存储块尾指针;初始化时,可用存储块首指针指向所述循环链表的首地址,可用存储块尾指针指向所述循环链表的尾地址;当释放一个可用存储块时,将该存储块标记为已使用,且可用存储块首指针指向下一个可用存储块首地址;当回收一个可用存储块时,可用存储块尾指针加1,且在该指针指示的地址处写入回收的存储块的标识。7.根据权利要求1所述的基于擦写次数计数的片上系统文件数据写入方法,其特征在于:初始化时,磨损程度级别较低的循环链表的长度大于磨损程度级别较高的循环链表的长度,各级循环链表的长度根据存储块的磨损程度进行动态管理。8.一种基于擦写次数计数的片上系统文件数据存储管理方法,其特征在于,对每个存储块的擦写次数进行计数,根据擦写次数与存储器标定的最大擦写次数之间的比值,判定该存储块的磨损程度;将磨损程度划分为多个级别,对每个级别分别建立一个循环链表,用来管理磨损程度处于该级别的可用存储块;所述循环链表中,每个表项包括存储块的标识和使用标志字,初始化时,使用标志字为存储器擦除后的初始值,表示该存储块待使用;如果该存储块被分配使用,则使用标志字改写为已使用状态;创建文件时,从磨损程度最低级别的循环链表开始...

【专利技术属性】
技术研发人员:张鲁国何骏丁琦
申请(专利权)人:郑州信大捷安信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1