一种确保nandflash写均衡的方法与流程

    专利查询2022-07-08  135


    一种确保nand flash写均衡的方法
    技术领域
    1.本发明属于嵌入式技术领域,尤其是涉及一种确保nand flash写均衡的方法。


    背景技术:

    2.目前嵌入式系统中针对nand flash的使用和普通flash方式一样,都是基于编程器烧录后的数据存储顺序及分布,位置不变。此种方法有如下两点缺陷:1、空间浪费:按照目前的使用方式,嵌入式软件开发时都是预先规划好分区,同时按顺序分配好各分区要求大小的空间,不管分区到底使用了多少,这样各个分区都有很大的一块空闲区域,造成了较大的浪费,提高了产品成本;2、无法进行写均衡:软件设计时,固件、配置文件、数据文件都被设计成存在固定的区域,固件写入次数少,配置文件和数据文件写入比较频繁,这就容易造成存储配置文件和数据文件的区域特别容易坏,如果此时没有较完善的坏块管理功能的话,产品就损坏了。


    技术实现要素:

    3.有鉴于此,本发明旨在提出一种确保nand flash写均衡的方法,以解决上述问题中的不足之处。
    4.为达到上述目的,本发明的技术方案是这样实现的:
    5.第一方面本方案公开了一种确保nand flash写均衡的方法,对nand flash中每个block的擦写次数进行级别标记,在申请操作时,在block闲置区域选取最优级别的block进行分配。
    6.进一步的,包括对擦写次数标记的方法:在每次写操作时在当前page的sparearea区域中写入此page 的写次数。
    7.进一步的,包括对等级标记的方法:等级标记是对整个block进行的,统计当前block中所有page 的写次数。
    8.进一步的,包括级别统计方法,包括以下步骤:
    9.s01、在nand flash写page操作时,在spare area中user区域特定位置写入统计次数,每次加1;
    10.s02、在nand flash对block擦除操作时,对block中所有page的写入次数进行统计,并根据级别分配到对应安全级,并写入到此block中第一个page的spare area中user区域特定位置。
    11.进一步的,包括均衡分配方法,包括以下步骤:
    12.s11:在申请flash资源的动作中,根据各个block的安全级别进行优先分配。
    13.进一步的,包括碎片整理方法,包括以下步骤:
    14.s21、重启,进入到安全模式;
    15.s22、读取所有block的安全级别,释放安全级别较低的block,申请替换成安全级别较高的block;
    16.s32、更新block index管理表;
    17.s42、数据转移;
    18.s52、重启,进入正常模式。
    19.第二方面本方案公开了一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器用于执行第一方面所述的一种确保nand flash写均衡的方法。
    20.第三方面本方案公开了一种服务器,其包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行第一方面所述的一种确保nand flash写均衡的方法。
    21.第四方面本方案公开了一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的一种确保nand flash写均衡的方法。
    22.相对于现有技术,本发明所述的一种确保nand flash写均衡的方法具有以下优势:
    23.本发明所述的一种确保nand flash写均衡的方法,延长nand flash的使用寿命,延长产品的使用寿命。
    附图说明
    24.构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
    25.图1为本发明实施例所述的nand flash组成示意图;
    26.图2为本发明实施例所述的一种确保nand flash写均衡的方法第一示意图;
    27.图3为本发明实施例所述的一种确保nand flash写均衡的方法第二示意图;
    28.图4为本发明实施例所述的一种确保nand flash写均衡的方法第三示意图;
    29.图5为本发明实施例所述的一种确保nand flash写均衡的方法第四示意图。
    具体实施方式
    30.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
    31.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
    32.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可
    以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
    33.下面将参考附图并结合实施例来详细说明本发明。
    34.nand flash以block为最小擦写单位,本发明在专利《一种动态的、离散的、碎片化的嵌入式系统 nand flash的使用方法》的基础上提出一种写均衡的方法。
    35.本发明对nand flash中每个block的擦写次数进行级别标记,在申请操作时,在block闲置区域选取最优级别的block进行分配。
    36.其主要表现方法为:
    37.1、擦写次数标记
    38.在每次写操作时在当前page的spare area区域中写入此page的写次数。
    39.2、等级标记
    40.等级标记是对整个block进行的,统计当前block中所有page的写次数,一般来说,选择写次数最大值是比较合理的,因为只要有一个page无法写入,则此page所在block就会被认为坏掉。
    41.3、根据等级进行分配
    42.如图1,nand flash有data区和spare area区。data区和spare area区组成page,page组合成 block。
    43.目前标准的nand flash中block大小为128kbyte,page为800byte,一个block包含64个page,而每个page附带的spare area大小目前普遍在64byte或128byte。
    44.nand flash读、写是对page操作,擦除是对block操作。
    45.spare area区域中包含ecc数据和部分空闲区域也叫user区域,本发明的安全级别就写在这个空闲区域。
    46.级别统计,如图2示例:
    47.s01:在nand flash写page操作时,在spare area中user区域特定位置写入统计次数,每次加1.
    48.s02:在nand flash对block擦除操作时,对block中所有page的写入次数进行统计,并根据级别分配到对应安全级。并写入到此block中第一个page的spare area中user区域特定位置。
    49.其中安全级别的统计阈值和安全级别分类可以自定义。
    50.均衡分配:
    51.s11:在申请flash资源的动作中,根据各个block的安全级别进行优先分配。
    52.一个特定功能:
    53.碎片整理:
    54.此为新增的用户功能,可以加在产品的功能列表中,功能名可以另起。
    55.其开启后的主要动作是:
    56.s21:重启,进入到安全模式。
    57.s22:读取所有block的安全级别,释放安全级别较低的block,申请替换成安全级别较高的block
    58.s32:更新block index管理表。
    59.s42:数据转移。
    60.s52:重启,进入正常模式。
    61.本发明在使用过程中的nand flash中block的状态如图3所示:
    62.一段时间后如图4所示:
    63.开启碎片整理(释放出低安全级别的block,使用高安全级别的进行替换),如图5所示。
    [0064][0065]
    以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
    转载请注明原文地址:https://tc.8miu.com/read-2736.html

    最新回复(0)