一种电力采集设备的NandFlash数据管理方法与流程

文档序号:17286801发布日期:2019-04-03 03:37阅读:458来源:国知局
一种电力采集设备的NandFlash数据管理方法与流程

本发明涉及电力采集设备领域,尤其涉及一种电力采集设备的nandflash数据管理方法。



背景技术:

随着电力采集设备应用的日益广泛性、现场应用的复杂性以及庞大的数据量频繁储存需要,flash寿命问题成为影响产品寿命周期的关键指标。

电力采集设备在运行过程中,需要按照秒级的高频率周期保存一些数据。然而,由于现有的电力采集设备一般用nandflash作为主存,一旦nandflash过于频繁地存储数据将会带来严重的缩短nandflash使用寿命。另外,由于现有电力采集设备的硬件在kb级的小内存环境下,将无法使用通常缓存大量数据用的负载均衡技术;即便电力采集设备针对保存的数据使用nftl技术做磨损均衡,依然无法满足延长电力采集设备内nandflash的寿命周期的目的。



技术实现要素:

本发明所要解决的技术问题是针对上述现有技术提供一种电力采集设备的nandflash数据管理方法。

本发明解决上述技术问题所采用的技术方案为:一种电力采集设备的nandflash数据管理方法,其特征在于,包括如下步骤:

步骤1,在电力采集设备的nandflash物理区查找并选取具有最小字节的擦除单元块,标记所述具有最小字节的擦除单元块作为最小擦除单元块;

步骤2,将所述最小擦除单元块分为n个最小写入单元;其中,n≥1;

步骤3,在nandflash物理区内建立第一预设字节的数据缓存区;其中,所述数据缓存区由魔术字、写入次数、数据长度、有效数据区和ecc校验码组成;

步骤4,所述电力采集设备在上电且程序初始化后,做挂载操作;其中,通过ecc纠错算法读取所述每个最小写入单元内的数据,且读取的任一数据为全0xff时,则认为该任一数据所属的最小写入单元为第一个可写入单元;否则,将最小擦除单元块内的各最小写入单元内的数据擦除,并将编号最靠前的一个最小写入单元作为第一个可写入单元;

步骤5,将需要做周期保存的数据复制到nandflash物理区内的所述数据缓存区中的有效数据区;

步骤6,计算写入到步骤5中所述有效数据区中的数据长度、统计该数据缓存区被写入数据的总写入次数以及生成所述数据缓存区的前第二预设字节的ecc校验码;

步骤7,按照预设写入时间间隔将所述数据缓存区内的数据写入到所述第一个可写入单元内;

步骤8,当该第一个可写入单元的偏移为n时,则将所述最小擦除单元块内的各最小写入单元内的数据擦除,并从该最小擦除单元块内的第一个最小写入单元处重新开始写入缓存数据;否则,直接将缓存数据写入到该第一个可写入单元,同时计算下一个可写入单元的编号;

步骤9,当需要获取最新的存储数据时,则将所述数据缓存区内的有效数据区中的数据读取出来;否则,转入步骤7。

改进地,在电力采集设备的nandflash数据管理方法中,所述电力采集设备在检测到发生掉电时,该电力采集设备内的备用电池启动供电,并由所述电力采集设备将所述数据缓存区内的最新数据写入到对应的最小写入单元中。

再进一步地,所述电力采集设备在检测到备用电池电量不足且发送断开该备用电池继续供电的命令之前,该电力采集设备执行对所述nandflash物理区内各数据的存储工作。

进一步地,在电力采集设备的nandflash数据管理方法中,所述预设写入时间间隔为30s。

进一步地,在电力采集设备的nandflash数据管理方法中,所述最小擦除单元块为128k。

进一步地,在电力采集设备的nandflash数据管理方法中,所述最小擦除单元块内的每个写入单元为512字节。

进一步地,在电力采集设备的nandflash数据管理方法中,步骤3中的所述第一预设字节为512字节。

进一步地,在电力采集设备的nandflash数据管理方法中,步骤6中的所述第二预设字节为512字节。

改进地,在电力采集设备的nandflash数据管理方法中,当所使用的最小擦除单元块发生损坏时,则使用所述nandflash物理区内的下一个擦除单元块,并由该电力采集设备将所述数据缓存区内的最新数据写入到对应的该下一个擦除单元块内的最小写入单元中。

进一步地,在电力采集设备的nandflash数据管理方法中,所述步骤4中的ecc纠错采用1bit纠错。

与现有技术相比,本发明的优点在于:本发明通过在电力采集设备内nandflash物理区查找并选取具有最小字节的擦除单元块,且将该具有最小字节的擦除单元作为最小擦除单元块,在将该最小擦除单元块分成n个最小写入单元后,获得第一个可写入单元,并将数据缓存区内的数据保存到该第一个可写入单元,一旦该第一个可写入单元的偏移为n-1时,则擦除最小擦除单元块内的各最小写入单元内的数据,并从该最小擦除单元块内的第一个最小写入单元处重新开始写入缓存数据,达到对各最小写入单元的绕尾处理,从而在nandflash内腾出更多的存储空间,避免先前的数据占用最小擦除单元块的空间,由此不仅可以避免频繁地存储数据到nandflash内,而且还可以提高nandflash区的空间利用率。

附图说明

图1为本发明实施例中电力采集设备的nandflash数据管理方法流程示意图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

如图1所示,本实施例中电力采集设备的nandflash数据管理方法,包括如下步骤:

步骤1,在电力采集设备的nandflash物理区查找并选取具有最小字节的擦除单元块,标记该具有最小字节的擦除单元块作为最小擦除单元块;

步骤2,将该最小擦除单元块分为n个最小写入单元;其中,n≥1;本实施例中的该最小擦除单元块为128k,最小擦除单元块内的每个写入单元为512字节;每个最小写入单元都按照顺序进行编号,例如1号最小写入单元、2号最小写入单元、…、n号最小写入单元;

步骤3,在nandflash物理区内建立第一预设字节的数据缓存区;其中,数据缓存区由魔术字、写入次数、数据长度、有效数据区和ecc校验码组成;此处的第一预设字节为512字节;

步骤4,电力采集设备在上电且程序初始化后,做挂载操作;其中,通过ecc纠错算法读取每个最小写入单元内的数据,且一旦读取的任一数据为全0xff时,则认为该任一数据所属的最小写入单元为第一个可写入单元;否则,将最小擦除单元块内的各最小写入单元内的数据擦除,并将编号最靠前的一个最小写入单元作为第一个可写入单元;在该实施例中,这里的ecc纠错采用1bit纠错;

步骤5,将需要做周期保存的数据复制到nandflash物理区内的数据缓存区中的有效数据区;

步骤6,计算写入到步骤5中有效数据区中的数据长度、统计该数据缓存区被写入数据的总写入次数以及生成该数据缓存区的前第二预设字节的ecc校验码;其中,本实施例中的第二预设字节为512字节。

步骤7,按照预设写入时间间隔将数据缓存区内的数据写入到上述的第一个可写入单元内;例如,这里的预设写入时间间隔为30s,即以30s的写入时间间隔将数据缓存区内的数据写入到第一个可写入单元内;

步骤8,当所述该第一个可写入单元的编号为n时,则将最小擦除单元块内的各最小写入单元内的数据擦除,从而腾出数据存储空间,并从该最小擦除单元块内的编号为1的最小写入单元处重新开始写入缓存数据,达到对各最小写入单元的绕尾处理;当该第一个可写入单元的编号不是n时,直接将缓存数据写入到该第一个可写入单元,同时计算下一个可写入单元的编号;

其中,针对此处所说的下一个可写入单元的编号处理说明如下,假设被作为第一个可写入单元的最小写入单元的编号为t号,最小擦除单元块被分为5个最小写入单元,即n=5;例如t号(t<5)最小写入单元被写入数据,下次(或称下一个)可写入单位的编号为t+1;

一旦t号(t=5)最小写入单元被写入数据,则下次(或称下一个)可写入的最小写入单元编号为1,因为此时的编号数值超过了最小擦除单元块内的最小写入单元的最大编号,那么就将该最小擦除单元块内1号最小写入单元至5号最小写入单元内的数据全部擦除掉,重新开始写入;

步骤9,当需要获取最新的存储数据时,则将数据缓存区内的有效数据区中的数据读取出来;否则,转入步骤7。

作为改进,在本实施例的nandflash数据管理方法中,一旦电力采集设备在检测到发生掉电时,该电力采集设备内的备用电池启动供电,并由该电力采集设备将数据缓存区内的最新数据写入到对应的最小写入单元中。

当然,由于备用电池的电量主要用于应急时给电力采集设备供电,所以,为了在备用电池电量不足时及时地保存数据,本实施例还采取了电力采集设备在检测到备用电池电量不足且发送断开该备用电池继续供电的命令之前,该电力采集设备执行对述nandflash物理区内各数据的存储工作的应急保存措施。

需要说明的是,通过在电力采集设备内nandflash物理区查找并选取具有最小字节的擦除单元块,且将该具有最小字节的擦除单元作为最小擦除单元块,在将该最小擦除单元块分成n个最小写入单元后,获得第一个可写入单元,并将数据缓存区内的数据保存到该第一个可写入单元,一旦该第一个可写入单元的偏移为n-1时,则擦除最小擦除单元块内的各最小写入单元内的数据,并从该最小擦除单元块内的第一个最小写入单元处重新开始写入缓存数据,达到对各最小写入单元的绕尾处理,从而在nandflash内腾出更多的存储空间,避免先前的数据占用最小擦除单元块的空间,由此不仅可以避免频繁地存储数据到nandflash内,而且还可以提高nandflash区的空间利用率。

当然,在本实施例的电力采集设备的nandflash数据管理方法中,电力采集设备具有坏块管理机制,即当所使用的最小擦除单元块发生损坏时,则使用nandflash物理区内的下一个擦除单元块,并由该电力采集设备将所述数据缓存区内的最新数据写入到对应的该下一个擦除单元块内的最小写入单元中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1