一种基于FTL的智能物联表的存储管理方法及存储介质转让专利

申请号 : CN202211352768.6

文献号 : CN115470216B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 左勇金锐付月生黄燕张赢

申请人 : 安徽南瑞中天电力电子有限公司

摘要 :

本发明属于电力设备领域,具体涉及一种基于FTL的智能物联表的存储管理方法及计算机可读存储介质。该存储管理方法用于对Nor flash存储单元中计量信息和事件信息的读写和存储过程进行管理;本发明将Nor flash的存储区域划分为数据区和链表区两个部分;数据区用于存放数据内容,链表区用于存放链表信息;并将不同数据以不同方式存储到目标存储单元中,其中,对计量或事件信息的开始时刻,直接在空闲存储单元中,对于数据为事件信息的结束时刻,则先读取对应事件的开始时间及数据,在RAM中合并所有事件记录并整体写入。本发明解决了传统物联表数据管理效率低、存储数据碎片化问题严重,物联表的安全性和稳定性不足的问题。

权利要求 :

1.一种基于FTL的智能物联表的存储管理方法,其用于对Nor flash存储单元中计量信息和事件信息的读写和存储过程进行管理;其特征在于,所述存储管理方法其包括如下内容:将Nor flash的存储区域划分为数据区和链表区两个部分;数据区的存储单元用于存放各类信息的数据内容,每个存储单元对应一个物理地址;链表区用于存放对应数据区中各个存储单元的地址映射表;所述地址映射表中链表信息的内容包括:逻辑地址、擦除次数、读取次数,以及有效标记;

其中,FTL中数据写入管理的策略如下:

根据链表区地址映射表查询是否存在空闲的存储单元:有则选择空闲的存储单元,否则选择可以擦除的存储单元进行擦除操作,产生新的空闲的存储单元;将选中的空闲的存储单元作为待写入存储单元;

数据写入时,先判断写入的数据的类型:(1)当写入的数据为计量或事件信息的开始时刻,则直接在所述待写入存储单元中写入相关数据的内容;同时在链表区写入逻辑地址,并更新对应的有效标记;(2)当写入的数据为事件信息的结束时刻,则读取对应事件的开始时间及数据,并缓存至RAM;然后在RAM中存入事件结束时间及数据;最后将RAM中的事件记录数据一次性写入到原始存储单元中,同时在链表区写入逻辑地址,并更新对应的有效标记;

其中,FTL对数据迁移操作的管理策略如下:

所述数据迁移的控制指令按照预设的管理周期定期触发,当触发数据迁移指令时,执行一轮基于存储寿命的数据迁移操作,和/或一轮基于数据热度的数据迁移操作;

基于存储寿命的数据迁移操作过程中:首先检索链表区的链表信息,获取所有存储单元的擦除次数;然后按照擦除次数对数据区的所有存储单元进行排序得到一个剩余寿命队列,接着依次判断所述剩余寿命队列首尾的两个存储单元的擦除次数之差是否大于一个预设的寿命阈值,是则对两个存储单元内存储的数据进行交换,更新链表区对应的链表信息,并将数据交换后的两个存储单元从所述剩余寿命队列中剔除;最后,当所述剩余寿命队列首尾的两个存储单元的擦除次数之差小于等于预设的寿命阈值时,结束当前轮次的数据迁移操作;

基于数据热度的数据迁移操作过程中:首先检索链表区的链表信息,获取所有存储单元的读取次数;然后按照读取次数对数据区的所有存储单元进行排序得到一个数据热度队列,接着依次判断所述数据热度队列首尾的两个存储单元的读取次数之差是否大于一个预设的热度阈值,是则对两个存储单元内存储的数据进行交换,更新链表区对应的链表信息,并将数据交换后的两个存储单元从所述数据热度队列中剔除;最后,当所述剩余寿命队列首尾的两个存储单元的读取次数之差小于等于预设的热度阈值时,结束当前轮次的数据迁移操作。

2.如权利要求1所述的基于FTL的智能物联表的存储管理方法,其特征在于:所述链表信息中的有效标记用于判断对应的数据区的存储单元是否有效;当链表区存在对应存储单元的逻辑地址时,则有效标记更新为“有效”状态;当链表区中对应存储单元的逻辑地址被删除时则有效标记更新为“无效”状态。

3.如权利要求2所述的基于FTL的智能物联表的存储管理方法,其特征在于:FTL根据链表区的有效标记和擦除次数对存储单元的擦除操作进行管理,存储单元擦除管理的策略如下:存储单元擦除管理指令触发后,首先,查询链表信息,获取数据区所有处于非空闲状态且有效标记为“无效”状态的存储单元,将其作为可擦除存储单元,并读取所有可擦除存储单元的擦除次数;

然后,计算所有可擦除存储单元的平均擦除次数,并获取触发擦除管理指令的指令对空闲存储单元的请求时间;将擦除次数小于均值且满足请求时间的非空闲状态的存储单元作为待擦除存储单元;

最后,清除数据区中待擦除存储单元中的所有数据;并更新对应链表区的链表信息,包括:将擦除次数加1,以及读取次数重置为0;

其中,触发存储单元擦除管理指令的状态包括:(1)新增待写入的计量信息或事件信息,且数据区无处于空闲状态的存储单元;(2)接受到对存储器进行擦除管理的周期性指令。

4.如权利要求1所述的基于FTL的智能物联表的存储管理方法,其特征在于:FTL对数据读取操作的管理策略如下:首先获取目标数据在链表区的逻辑地址;然后根据逻辑地址查找数据区对应的存储单元;再读取存储单元中数据内容,并在链表区将当前存储单元的链表信息中的读取次数加

1。

5.如权利要求1所述的基于FTL的智能物联表的存储管理方法,其特征在于:FTL对数据删除操作的管理策略如下:收到任意一个数据删除指令后,首先查询链表区存储的逻辑地址信息;然后根据逻辑地址在数据区查找对应的存储单元;接着删除对应存储单元中存储的数据内容;最后在链表区将存储单元对应的逻辑地址删除,有效标记更新为“无效”,并将读取次数重置为0。

6.如权利要求5所述的基于FTL的智能物联表的存储管理方法,其特征在于:数据删除指令的来源包括:(1)由数据管理中心根据人工指令生成并由物联网电表的上级采集终端发送的数据删除指令;(2)任意计量信息或事件信息达到预设的最大存储时效后,在智能物联表本地自动生成的数据删除指令。

7.如权利要求1所述的基于FTL的智能物联表的存储管理方法,其特征在于:将所述链表信息中的擦除次数用于评估存储单元的剩余寿命,存储单元的参数次数越多则剩余寿命越低;将所述链表信息中的读取次数用于判断数据的冷热程度,读取次数越多则表述当前数据的热度越高;进而根据存储单元的寿命和数据的冷热程度对存储单元中已存储的数据定期进行迁移管理。

8.如权利要求1所述的基于FTL的智能物联表的存储管理方法,其特征在于:

FTL对数据迁移操作的管理策略且/或包括如下的三轮迁移操作:

(1)检索链表区的链表信息,获取所有存储单元的读取次数和擦写次数;

(2)将读取次数最大的若干存储单元作为准迁移存储单元;将准迁移存储单元中擦写次数超过预设风险值的存储单元作为迁移存储单元;

(3)将读取次数最小的若干存储单元作为待迁入存储单元;并按照擦写次数由低到高的顺序形成一个备选迁移队列;

(4)判断所述迁移存储单元的数量是否大于所述备选迁移队列中存储单元的数量:是则将读取次数次小的若干存储单元作为待迁入存储单元;并按照擦写次数由低到高的顺序编入到所述备选迁移队列的队尾;直到所述迁移存储单元的数量不大于所述备选迁移队列中存储单元的数量;

(5)将迁移存储单元中的数据与备选迁移队列中的存储单元中存储的数据内容进行交换,并更新链表区对应的链表信息。

9.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时,实现如权利要求1‑8中任意一项所述的基于FTL的智能物联表的存储管理方法的步骤。

说明书 :

一种基于FTL的智能物联表的存储管理方法及存储介质

技术领域

[0001] 本发明属于电力设备领域,具体涉及一种基于FTL的智能物联表的存储管理方法及计算机可读存储介质。

背景技术

[0002] 目前,智能电能表已成为电网中用户电力数据采集最重要的基础设备,最新的物联表更是具有自动联网和数据交互的功能。可以对采集到的各类信息进行存储和上传。为了存储采集到的各类数据,现有物联表内通过会采用只读存储器ROM,如EEPROM。近年来,随着物联网的发展,Nor flash的应用呈现出明显增长。
[0003] 由于电能表拓展了大量应用,如负荷辨识、用能分析、拓扑分析等,因此智能电能表存储的数据也越来越多,碎片化的存储与边缘计算都离不开Nor flash。《面向对象的用电信息数据交换协议》(简称DL\T698.45)发布并推广使用,对智能电能表数据的存储又提出了新的挑战。
[0004] 为了实现对存储器中存储的数据进行科学管理,提高存储器的使用寿命,现有的大容量存储设备如HDD、SSD,以及大型的计算机系统中都会配置FTL(Flash Translation Layer),即闪存转换层。FTL是存储介质与设备主控器之间的连接关系,实现FTL后,操作系统只需跟原来一样操作逻辑地址)即可,逻辑地址到物理地址的转换由FTL完成。在进行地址转换的同时,FTL还兼顾Flash的管理,不仅需要对存储器上的各个Block进行擦写次数控制,还需要管理存储器上的无用数据。
[0005] 然而,常规嵌入式的小型设备以及低容量存储器并不具备复杂的FTL功能,或者仅使用具有简单地址转换功能的驱动器。这给设备存储和管理一些复杂数据带来了难题。例如在使用低容量Nor Flash的物联表中,在“写”操作前必须进行擦除,一次性擦除范围随芯片特性而定,一般不小于4K字节,但是由于缺乏有效FTL功能,Nor Flash使用不够便捷,无法对存储数据进行有效管理。同时,智能物联电能表会记录各种事件,以便终端或主站读取。一些持续性事件如过压、失压、掉电、断相等,涉及到事件开始时间、事件类型、事件结束时间等多个数据,无法连续存储,读取时可能存在时间交叉等情况,这些都不利于电表事件的管理。此外,随着物联表功能的不断丰富,计量信息和事件信息不仅会带来数据读写误差方面的问题,还可能由于不同数据的读写频次不同和访问频次差异较大,影响Nor Flash的使用寿命,给电能表的长时间稳定运行造成隐患。
[0006] 因此,如何对智能物联表的数据存储进行科学管理,成为本领域技术人员亟待解决的技术难题。

发明内容

[0007] 为了解决现有技术缺乏针对物联表中的FTL,物联表存储数据管理效率低导致存储器寿命缩短,存储数据碎片化问题严重,物联表的安全性和稳定性下降等问题;本发明提供一种基于FTL的智能物联表的存储管理方法及计算机可读存储介质。
[0008] 本发明采用以下技术方案实现:
[0009] 一种基于FTL的智能物联表的存储管理方法,其用于对Nor flash存储单元中计量信息和事件信息的读写和存储过程进行管理。该存储管理方法包括如下内容:
[0010] 将Nor flash的存储区域划分为数据区和链表区两个部分。数据区的存储单元用于存放各类信息的数据内容,每个存储单元对应一个物理地址。链表区用于存放对应数据区中各个存储单元的地址映射表。地址映射表中链表信息的内容包括:逻辑地址、擦除次数、读取次数,以及有效标记。
[0011] 其中,FTL中数据写入管理的策略如下:
[0012] 根据链表区地址映射表查询是否存在空闲的存储单元:有则选择空闲的存储单元,否则选择可以擦除的存储单元进行擦除操作,产生新的空闲的存储单元;将选中的空闲的存储单元作为待写入存储单元。
[0013] 数据写入时先判断写入的数据的类型:(1)当写入的数据为计量或事件信息的开始时刻,则直接在待写入存储单元中写入相关数据的内容;同时在链表区写入逻辑地址,并更新对应的有效标记。(2)当写入的数据为事件信息的结束时刻,则读取对应事件的开始时间及数据,并缓存至RAM;然后在RAM中存入事件结束时间及数据;最后将RAM中的事件记录数据一次性写入到原始存储单元中,同时在链表区写入逻辑地址,并更新对应的有效标记。
[0014] 本实施例提供的技术方案中,链表信息中的有效标记用于判断对应的数据区的存储单元是否有效;当链表区存在对应存储单元的逻辑地址时,则有效标记更新为“有效”状态;当链表区中对应存储单元的逻辑地址被删除时则有效标记更新为“无效”状态。
[0015] 作为本发明进一步的改进,FTL根据链表区的有效标记和擦除次数对存储单元的擦除操作进行管理,存储单元擦除管理的策略如下:
[0016] 存储单元擦除管理指令触发后,首先,查询链表信息,获取数据区所有处于非空闲状态且有效标记为“无效”状态的存储单元,将其作为可擦除存储单元,并读取所有可擦除存储单元的擦除次数。
[0017] 然后,计算所有可擦除存储单元的平均擦除次数,并获取触发擦除管理指令的指令对空闲存储单元的请求时间;将擦除次数小于均值且满足请求时间的非空闲状态的存储单元作为待擦除存储单元。
[0018] 最后,清除数据区中待擦除存储单元中的所有数据;并更新对应链表区的链表信息,包括:将擦除次数加1,以及读取次数重置为0。
[0019] 其中,触发存储单元擦除管理指令的状态包括:(1)新增待写入的计量信息或事件信息,且数据区无处于空闲状态的存储单元;(2)接受到对存储器进行擦除管理的周期性指令。
[0020] 作为本发明进一步的改进,FTL对数据读取操作的管理策略如下:
[0021] 首先获取目标数据在链表区的逻辑地址;然后根据逻辑地址查找数据区对应的存储单元;再读取存储单元中数据内容,并在链表区将当前存储单元的链表信息中的读取次数加1。
[0022] 作为本发明进一步的改进,FTL对数据删除操作的管理策略如下:
[0023] 收到任意一个数据删除指令后,首先查询链表区存储的逻辑地址信息;然后根据逻辑地址在数据区查找对应的存储单元;接着删除对应存储单元中存储的数据内容;最后在链表区将存储单元对应的逻辑地址删除,有效标记更新为“无效”,并将读取次数重置为0。
[0024] 在本发明中,数据删除指令的来源包括:(1)由数据管理中心根据人工指令生成并由物联网电表的上级采集终端发送的数据删除指令。(2)任意计量信息或事件信息达到预设的最大存储时效后,在智能物联表本地自动生成的数据删除指令。
[0025] 在被本发明提供的技术方案中,将链表信息中的擦除次数用于评估存储单元的剩余寿命,存储单元的参数次数越多则剩余寿命越低。将链表信息中的读取次数用于判断数据的冷热程度,读取次数越多则表述当前数据的热度越高。进而根据存储单元的寿命和数据的冷热程度对存储单元中已存储的数据定期进行迁移管理。
[0026] 具体地,本发明提供的技术方案中,FTL对数据迁移操作的管理策略如下:
[0027] 数据迁移的控制指令按照预设的管理周期定期触发,当触发数据迁移指令时,执行一轮基于存储寿命的数据迁移操作,和/或一轮基于数据热度的数据迁移操作。
[0028] 其中,基于存储寿命的数据迁移操作过程中:首先检索链表区的链表信息,获取所有存储单元的擦除次数。然后按照擦除次数对数据区的所有存储单元进行排序得到一个剩余寿命队列。接着依次判断剩余寿命队列首尾的两个存储单元的擦除次数之差是否大于一个预设的寿命阈值,是则对两个存储单元内存储的数据进行交换,更新链表区对应的链表信息,并将数据交换后的两个存储单元从剩余寿命队列中剔除。最后,当剩余寿命队列首尾的两个存储单元的擦除次数之差小于等于预设的寿命阈值时,结束当前轮次的数据迁移操作。
[0029] 基于数据热度的数据迁移操作过程中:首先检索链表区的链表信息,获取所有存储单元的读取次数。然后按照读取次数对数据区的所有存储单元进行排序得到一个数据热度队列。接着依次判断数据热度队列首尾的两个存储单元的读取次数之差是否大于一个预设的热度阈值,是则对两个存储单元内存储的数据进行交换,更新链表区对应的链表信息,并将数据交换后的两个存储单元从数据热度队列中剔除。最后,当剩余寿命队列首尾的两个存储单元的读取次数之差小于等于预设的热度阈值时,结束当前轮次的数据迁移操作。
[0030] 作为本发明进一步的改进,FTL对数据迁移操作的管理策略且/或包括如下的三轮迁移操作:
[0031] (1)检索链表区的链表信息,获取所有存储单元的读取次数和擦写次数。
[0032] (2)将读取次数最大的若干存储单元作为准迁移存储单元;将准迁移存储单元中擦写次数超过预设风险值的存储单元作为迁移存储单元。
[0033] (3)将读取次数最小的若干存储单元作为待迁入存储单元;并按照擦写次数由低到高的顺序形成一个备选迁移队列。
[0034] (4)判断迁移存储单元的数量是否大于备选迁移队列中存储单元的数量:是则将读取次数次小的若干存储单元作为待迁入存储单元;并按照擦写次数由低到高的顺序编入到备选迁移队列的队尾;直到迁移存储单元的数量不大于备选迁移队列中存储单元的数量。
[0035] (5)将迁移存储单元中的数据与备选迁移队列中的存储单元中存储的数据内容进行交换,并更新链表区对应的链表信息。
[0036] 本发明还包括一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现如前述的基于FTL的智能物联表的存储管理方法的步骤。
[0037] 本发明提供的技术方案,具有如下有益效果:
[0038] 本发明将Nor flash划分为链表区和数据区两部分,并对通过区分数据的冷热程度和block的擦除程度,对Nor flash存储空间进行动态管理。与传统方法相比,本发明提出的分区方法可以提高Nor flash的使用效率。同时,该方法在磨损均衡性和擦除频率以及灵活性等方面都有很大的提高,资源占用低、数据存取便捷高效,并且提高了flash的使用效率,增加智能物联表的使用寿命。
[0039] 本声明提供的方案还针对存储的数据的特征对存储管理方法进行适应性改良,对不同类型的数据采取了差异化的管理方式。例如,本发明根据数据热度和不同存储单元的存储寿命对数据进行定期迁移,保证了关键数据能够被存储在存储器中最安全、稳定的存储区域,进而有效保障了数据的安全性,降低了数据读写过程的错误率。例如,本发明针对电能表事件记录数据,设计一种整体数据写入机制,利用RAM缓存及block存储单元配合,使同一事件的数据连续写入,避免时间交叉出现错误;同时有效解决电表数据存储碎片化的问题。

附图说明

[0040] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0041] 图1为本发明实施例1提供的一种基于FTL的智能物联表的存储管理方法中数据写入过程的流程图。
[0042] 图2为本发明实施例1提供的一种基于FTL的智能物联表的存储管理方法中数据擦除过程的流程图。
[0043] 图3为本发明实施例1提供的一种基于FTL的智能物联表的存储管理方法中数据读取过程的流程图。
[0044] 图4为本发明实施例1提供的一种基于FTL的智能物联表的存储管理方法中数据删除过程的流程图。
[0045] 图5为本发明实施例1提供的一种基于FTL的智能物联表的存储管理方法中基于剩余寿命的数据迁移操作的流程图。
[0046] 图6为本发明实施例1提供的一种基于FTL的智能物联表的存储管理方法中基于数据热度的数据迁移操作的流程图。
[0047] 图7为本发明实施例1提供的一种基于FTL的智能物联表的存储管理方法中增强数据迁移操作的流程图。

具体实施方式

[0048] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0049] 实施例1
[0050] 本实施例提供一种基于FTL的智能物联表的存储管理方法,其用于对Nor flash存储单元中计量信息和事件信息的读写和存储过程进行管理。其中,计量信息指电能表的计量芯获取到的当前节点的电压、电流、需量、有功、无功等电力数据。事件信息则是指电能表可以检测出的当前节点对应的过压、失压、欠压、掉电、断相、失流、断流、过流、功率反向、电压逆相序等故障状态,或事件记录数据,如清零事件、合闸事件、跳闸事件、编程事件等。
[0051] 具体地,本实施例提供的基于FTL的智能物联表的存储管理方法包括如下内容:
[0052] 将Nor flash的存储区域划分为数据区和链表区两个部分。数据区的存储单元用于存放各类信息的数据内容,每个存储单元对应一个物理地址。链表区用于存放对应数据区中各个存储单元的地址映射表;地址映射表中链表信息的内容包括:逻辑地址、擦除次数、读取次数,以及有效标记。具体如下表所示。
[0053] 表1:链表区中的地址映射表的数据格式
[0054]
[0055] 其中,本实施例提供的技术方案中,链表信息中的有效标记用于判断对应的数据区的存储单元是否有效;当链表区存在对应存储单元的逻辑地址时,则有效标记更新为“有效”状态;当链表区中对应存储单元的逻辑地址被删除时则有效标记更新为“无效”状态。基于数据区和链表区划分和记录的数据内容,本实施提供的存储管理方法完成的任务大致包括数据写入、数据擦除、数据读取、数据删除和数据迁移共五各部分的内容。
[0056] 一、数据写入
[0057] 本实施例提供的FTL中数据写入管理的策略如图1所示,包括以下过程:
[0058] 根据链表区地址映射表查询是否存在空闲的存储单元:有则选择空闲的存储单元,否则选择可以擦除的存储单元进行擦除操作,产生新的空闲的存储单元;将选中的空闲的存储单元作为待写入存储单元。
[0059] 数据写入时先判断写入的数据的类型:(1)当写入的数据为计量或事件信息的开始时刻,则直接在待写入存储单元中写入相关数据的内容;同时在链表区写入逻辑地址,并更新对应的有效标记。(2)当写入的数据为事件信息的结束时刻,则读取对应事件的开始时间及数据,并缓存至RAM;然后在RAM中存入事件结束时间及数据;最后将RAM中的事件记录数据一次性写入到原始存储单元中,同时在链表区写入逻辑地址,并更新对应的有效标记。
[0060] 本实施例提供的技术方案中,针对电能表采集并记录的不同数据类型的特点,设计一种数据写入机制,使得瞬时计量数据可以准确记录,而对于。并将RAM缓存与Nor flash存储单元相配合,使得耗时较长的事件信息与可以根据事件类别进行连续写入,避免出现将同一事件信息中的不同数据记录在物理地址间隔较远的不同的存储单元上而导致的错误。
[0061] 二、数据擦除
[0062] 为了实现数据存储单元的有效利用,本实施例提供的存储管理方法在必要时会对存储器中的部分区域进行数据擦除;以提供充足的空闲存储单元用于存储新增数据。
[0063] 具体地,本实施例提供的存储管理方法中,FTL根据链表区的有效标记和擦除次数对存储单元的擦除操作进行管理,存储单元擦除管理的策略如图2所示,包括如下内容:
[0064] 存储单元擦除管理指令触发后,首先,查询链表信息,获取数据区所有处于非空闲状态且有效标记为“无效”状态的存储单元,将其作为可擦除存储单元,并读取所有可擦除存储单元的擦除次数。
[0065] 然后,计算所有可擦除存储单元的平均擦除次数,并获取触发擦除管理指令的指令对空闲存储单元的请求时间;将擦除次数小于均值且满足请求时间的非空闲状态的存储单元作为待擦除存储单元。
[0066] 最后,清除数据区中待擦除存储单元中的所有数据;并更新对应链表区的链表信息,包括:将擦除次数加1,以及读取次数重置为0。
[0067] 其中,触发存储单元擦除管理指令的状态为:新增待写入的计量信息或事件信息,且数据区无处于空闲状态的存储单元;或接受到对存储器进行擦除管理的周期性指令。
[0068] 本实施例提供数据擦除策略根据擦除次数和有效标记进行科学决策,不仅保证存储数据的安全性,避免数据无故丢失,还使得存储器在磨损均衡性和擦除频率以及灵活性等方面都有很大的提高,增加智能物联表的使用寿命。
[0069] 三、数据读取
[0070] 与常规的FTL一样,本实施例提供的存储管理方法对数据读取操作的管理策略如图3所示,包括如下过程:
[0071] 首先获取目标数据在链表区的逻辑地址;然后根据逻辑地址查找数据区对应的存储单元;再读取存储单元中数据内容,并在链表区将当前存储单元的链表信息中的读取次数加1。
[0072] 四、数据删除
[0073] 在本实施例中,FTL对数据删除操作的管理策略如图4所示,包括如下过程:
[0074] 收到任意一个数据删除指令后,首先查询链表区存储的逻辑地址信息;然后根据逻辑地址在数据区查找对应的存储单元;接着删除对应存储单元中存储的数据内容;最后在链表区将存储单元对应的逻辑地址删除,有效标记更新为“无效”,并将读取次数重置为0。
[0075] 在本实施例的方案中,接收都的数据删除指令的来源包括:(1)由数据管理中心根据人工指令生成并由物联网电表的上级采集终端发送的数据删除指令。(2)任意计量信息或事件信息达到预设的最大存储时效后,在智能物联表本地自动生成的数据删除指令。在本实施例中,特别为每个存储信息根据数据类型和用途的不同而设置了一个差异化的最大存储时效。当一个数据达到最大存储时效过,则说明该数据已经不存在利用价值,无需继续存储。此时,即使未产生新增数据,无需分配空闲的存储单元,FTL也可以选择将该数据主动删除。
[0076] 五、数据迁移
[0077] 在本实施例提供的技术方案中,将链表信息中的擦除次数用于评估存储单元的剩余寿命,存储单元的参数次数越多则剩余寿命越低。将链表信息中的读取次数用于判断数据的冷热程度,读取次数越多则表述当前数据的热度越高。进而根据存储单元的寿命和数据的冷热程度对存储单元中已存储的数据定期进行迁移管理。
[0078] 本实施例的存储管理方法中,FTL对数据迁移操作的管理策略包括多种不同的方式,数据迁移的控制指令按照预设的管理周期定期触发,当触发数据迁移指令时,执行对应的数据迁移操作。本实施例提供的数据迁移的方式包括:(1)基于存储寿命的数据迁移操作。(2)基于数据热度的数据迁移操作。(3)结合存储寿命和数据热度的增强数据迁移操作。
[0079] 具体地,基于存储寿命的数据迁移操作过程如图5所示,包括如下步骤:
[0080] 首先检索链表区的链表信息,获取所有存储单元的擦除次数。然后按照擦除次数对数据区的所有存储单元进行排序得到一个剩余寿命队列。接着依次判断剩余寿命队列首尾的两个存储单元的擦除次数之差是否大于一个预设的寿命阈值,是则对两个存储单元内存储的数据进行交换,更新链表区对应的链表信息,并将数据交换后的两个存储单元从剩余寿命队列中剔除。最后,当剩余寿命队列首尾的两个存储单元的擦除次数之差小于等于预设的寿命阈值时,结束当前轮次的数据迁移操作。
[0081] 基于数据热度的数据迁移操作过程如图6所示,包括如下步骤:
[0082] 首先检索链表区的链表信息,获取所有存储单元的读取次数。然后按照读取次数对数据区的所有存储单元进行排序得到一个数据热度队列。接着依次判断数据热度队列首尾的两个存储单元的读取次数之差是否大于一个预设的热度阈值,是则对两个存储单元内存储的数据进行交换,更新链表区对应的链表信息,并将数据交换后的两个存储单元从数据热度队列中剔除。最后,当剩余寿命队列首尾的两个存储单元的读取次数之差小于等于预设的热度阈值时,结束当前轮次的数据迁移操作。
[0083] 最后,增强数据迁移操作的过程如图7所示,包括如下步骤。
[0084] (1)检索链表区的链表信息,获取所有存储单元的读取次数和擦写次数。
[0085] (2)将读取次数最大的若干存储单元作为准迁移存储单元;将准迁移存储单元中擦写次数超过预设风险值的存储单元作为迁移存储单元。
[0086] (3)将读取次数最小的若干存储单元作为待迁入存储单元;并按照擦写次数由低到高的顺序形成一个备选迁移队列。
[0087] (4)判断迁移存储单元的数量是否大于备选迁移队列中存储单元的数量:是则将读取次数次小的若干存储单元作为待迁入存储单元;并按照擦写次数由低到高的顺序编入到备选迁移队列的队尾;直到迁移存储单元的数量不大于备选迁移队列中存储单元的数量。
[0088] (5)将迁移存储单元中的数据与备选迁移队列中的存储单元中存储的数据内容进行交换,并更新链表区对应的链表信息。
[0089] 需要说明的是,在同一个设备中,三种不同的数据迁策略可以根据需要择一采用,也可以将多种不同的数据迁移策略融合起来,以提高对不同类型数据的管理效果。
[0090] 本实施例中提供的特殊的数据迁移策略可以对存储单元中记录的不同类型的数据进行科学调配,使得读取热度更高的关键数据能够更加集中地存储到低频擦除的存储单元中,保障了关键数据的安全性,为提高智能物联表的数据安全性和运行稳定性奠定了基础。本实施例中的数据迁移方式包括三种,在同一个设备中,可以根据需要按照特定的迁移频率设定相应的触发方式,定期执行其中的任意一种迁移方式,以保障关键数据的安全性。同时,本实施例提供的三种不同的数据迁移方式可以在同一个数据迁移周期中同时应用,可以按照多种不同的组合实施其中一种或多种。
[0091] 本实施例提供的技术方案针对电能表中记录的数据的特征,对电能表Nor flash存储器中所有的数据处理过程(包括数据写入、数据擦除、数据读取、数据删除和数据迁移)进行科学管理。保障了存储的数据的安全性和智能物联表的运行稳定性。在其它实施例中,本实施例数据写入、数据擦除、数据读取、数据删除和数据迁移的相关管理策略可以整体实施,也可以根据需要分别实施。例如在部分设备中,可以采用本实施例中提供的数据写入方式,而对于其它工作内容仍采用传统的管理方法。这些都属于本案的保护范围。其中本案提供的存储管理方法可以以软件或包含软件的硬件设备的方式进行实施,不同的实施方式的区别并不应对本案要求保护的存储管理方法的技术本身造成限制。
[0092] 实施例2
[0093] 本发明还包括一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现如实施例1的基于FTL的智能物联表的存储管理方法的步骤。
[0094] 需要说明的是:实施例1中提供的存储管理方法的本质是一种管理电能表的Nor flash工作方式的一种逻辑,在应用过程中可以以集成在存储器上的底层代码的方式实施,例如直接在物联表的存储器的FTL中集成相应的软件或程序。
[0095] 实施例1中的存储管理方法可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例1所述的流程或功能。所述计算机可以是通用计算机、专用计算机、单片机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk, SSD)、U盘、存储卡)等。
[0096] 特别地,本实施例提供的可读存储介质就是实施实施例1中管理方法的一种具体的产品方案。即,将实施例1中提供的基于FTL的智能物联表的存储管理方法以一种外置的驱动的形式集成到现有的大量物联表中。将实现实施例1中的存储管理方法的逻辑编写成相应的程序代码,然后以可读介质的形式存储相应的程序代码。当可读存储介质安装到物联表上时,可读存储介质相当于一种驱动器,物联表的数据存储和数据读写等权限由相应的驱动器控制,并执行如实施例1中存储管理方法的过程。
[0097] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。