一种基于多数据流的闪存卡数据存储方法、闪存卡及设备与流程

文档序号:19946611发布日期:2020-02-18 09:30阅读:407来源:国知局
一种基于多数据流的闪存卡数据存储方法、闪存卡及设备与流程

本发明涉及数据存储技术领域,更具体地说,它涉及一种基于多数据流的闪存卡数据存储方法、闪存卡及设备。



背景技术:

行车记录仪和ipc(网络摄像头)一般采用tf卡这类的基于sd协议的闪存卡进行数据的存储。而在行车记录仪或ipc进行数据记录时,会产生多股数据流(例如视频数据流、日志数据流和命令数据流),而多股数据流是串行写入的,因此当数据写入到闪存内时,同一个闪存块上除了有视频数据外还有日志数据和命令数据;而日志数据和命令数据一般属于热数据,而是视频数据一般冷数据,由于tf卡设备基本没有采用trim,将导致一个存储块内的数据不连续,从而在增大了垃圾回收的量。



技术实现要素:

针对现有的技术问题,本发明的第一目的在于提供一种基于多数据流的闪存卡数据存储方法,其具有减少闪存卡垃圾回收的量,提升闪存卡的寿命的优点。

为实现上述目的,本发明提供了如下技术方案:一种基于多数据流的闪存卡数据存储方法,包括:

建立数据流表项,数据流表项包括起始逻辑地址和数据流长度;

将闪存内存储区域划分为连续存储区和不连续存储区;

依次获取待写入的数据流,将待写入数据流内数据的起始逻辑地址和数据长度写入数据流表项;

基于数据流表项内起始逻辑地址和数据流长度,判断待写入数据是否为连续数据;

若为连续数据,则将待写入数据的物理地址分配至连续存储区;

若不为连续数据,则将待写入数据的物理地址分配至不连续存储区。

通过采用上述技术方案,在行车记录仪或ipc中数据流主要分为视频数据流、日志数据流和命令数据流;其中视频数据流的数据为较长数据且为冷数据,长时间内不会更新删除;而日志数据流和命令数据流均为较短数据且为热数据,数据更新删除比较频繁;因此基于这一个特点,通过判断逻辑地址数据是否连续来判断数据是较长的数据还是较短的数据;较长的数据大概率是冷数据,而较短的数据大概率是热数据;从而实现相比于现有技术,较大程度的把视频数据流从日志数据流和命令数据流筛选出来存储至连续存储区;从而当闪存内日志数据流和命令数据流被删除更新时,对视频数据流的数据影响较小,甚至不用搬运闪存内的视频数据流;达到减少闪存卡垃圾回收的量,提升闪存卡的寿命优点。

本发明进一步设置为:判断待写入数据是否存在连续数据包括:

计算数据流表项内起始逻辑地址和数据流长度的和值,获得结束逻辑地址;

判断获得的结束逻辑地址和待写入数据流内数据的起始逻辑地址是否存在连续;

若存在连续则待写入数据为连续数据,若不存在连续则待写入数据不为连续数据。

通过采用上述技术方案,在行车记录仪或ipc中,视频数据是持续写入的,因此在储存的数据流上体现的逻辑地址是连续的,因此当两个数据流的起始地址和结束地址之间是连续的时候,则大概率是视频数据流。

本发明进一步设置为:所述数据流表项还包括新鲜度,所述新鲜度基于数据流写入次序生成;

删除数据时,基于新鲜度删除已写入的数据。

通过采用上述技术方案,当数据写满闪存卡需要删除数据时,新鲜度能够作为参照,来分辨写入数据先后的逻辑地址;在获得逻辑地址的情况下只要再根据闪存内的逻辑映射表,就能找到对应数据的物理地址,来实现对最早写入的视频数据删除。

本发明进一步设置为:所述新鲜度为基于数据流写入次序生成等差数列。

通过采用上述技术方案,等差数列生成简单,便于比较。

本发明进一步设置为:闪存内存储区域划分连续存储区和不连续存储区基于闪存块的可擦除次数;

在预设时间后更新再次划分存储区域内的连续存储区和不连续存储区。

通过采用上述技术方案,一般热数据将存储在不连续存储区内,冷数据会存储在连续存储区内,因此长时间使用后,不要连续存储区的可擦除次数会变少,此时根据可擦除次数再次划分区域,能够提升闪存的寿命。

本发明进一步设置为:所述预设时间为7至15天。

通过采用上述技术方案,7至15天一般为数据写满要进行数据删除的周期,此时可重新划分连续存储区和不连续存储区的数量更多,划分效果更好。

本发明的第二目的在于提供一种基于sd协议的闪存卡,其具有提升寿命的优点。

为实现上述目的,本发明提供了如下技术方案:一种基于sd协议的闪存卡,包括指令,所述指令在计算机上运行时,使得计算机执行权利要求1-6任一项所述的方法。

本发明的第三目的在于提供一种音视频录像设备,其具有较长的存储寿命的优点。

为实现上述目的,本发明提供了如下技术方案:一种音视频录像设备,所述音视频录像设备包括处理器和存储器;

所述存储器用于存储支持所述装置执行第一目的所述的方法的程序,

以及存储用于实现第一目的所述的方法所涉及的数据;

所述处理器被配置为用于执行所述存储器中存储的程序。

本发明进一步设置为:所述音视频录像设备为行车记录仪、网络摄像头中的一种。

与现有技术相比,本发明的有益效果是:

(1)通过划分连续数据和不连续数据,实现对闪存卡内冷热数据的划分,减少垃圾回收量,提升闪存卡的寿命;

(2)新鲜度划分写入数据的次序,保证最先写入的视频先被删除,保证近期写入的数据保留。

附图说明

图1为本实施例的流程示意图。

具体实施方式

下面结合附图和实施例,对本发明进行详细描述。

为了理解本方案,先对闪存的一些基本结构进行说明。目前通用的闪存介质一般划分为多个存储块(block),每个存储块有多条字线(wl),一条字线(wl)包含一个或者多个存储页(page),而存储页是闪存写入数据的基本单位。

主控为闪存内主控芯片的简称,主控本质是一台微处理器,具备cpu级别的运算能力,其具有执行固件代码的功能。

实施例,一种基于多数据流的闪存卡数据存储方法,如图1所示,

s1、建立数据流表项;

数据流表项包括起始逻辑地址、数据流长度和新鲜度;起始逻辑地址用于记录待写入数据流的起始的逻辑地址;新鲜度基于数据流写入次序生成,新鲜度为基于数据流写入次序生成等差递增数列。

下一新鲜度值由上一新鲜度值增加定值后生成。优选的,本方案内时间戳值采用4字节进行存储,且新鲜度值的初始值为0,每记录一个储存块的物理地址,下一时间戳值的参数加1。因此初始的时间戳值为0x00000000,初始时间戳的下一时间戳值为0x00000001。

s2、划分闪存内存储区域;

将闪存内存储区域划分为连续存储区和不连续存储区,闪存内存储区域划分连续存储区和不连续存储区基于闪存块的可擦除次数建立区域划分表,在区域划分表通过写入存储块地址至连续存储区和不连续存储区中,实现对存储块的划分。

具体的,每个闪存块都有擦除次数限制(有寿命),擦除次数过多会成为坏块,而不能再使用。在本实施方式中,连续存储区主要用于存储视频数据流,主要存储冷数据;而不连续存储区主要存储日志数据流和命令数据流,主要存储热数据。因此在存储块擦除方面,不连续存储区内存储块在指定时间内的擦除次数会多于连续存储区的存储块的擦除次数。因此选取可擦除次数多的存储块作为不连续存储区的存储块,将起到对存储块磨损均衡的效果,提升闪存整体的寿命。

进一步的,在预设时间后更新再次划分存储区域内的连续存储区和不连续存储区。具体的,预设时间为7至15天。在长时间使用后,不连续存储区的可擦除次数会变少,此时根据可擦除次数再次划分区域,能够进一步提升闪存的寿命。

s3、依次获取待写入的数据流,将待写入数据流内数据的起始逻辑地址和数据长度写入数据流表项;

当数据流写入tf卡中时,tf卡的主控能够直接获取到数据流的逻辑地址和数据流长度写入到数据流表项中。

s4、判断待写入数据是否为连续数据,若为连续数据跳转至步骤s51,否则跳转至步骤s52;

判断待写入数据是否为连续数据主要基于已写入数据流表项内起始逻辑地址和数据流长度数据。其包括:

s41、计算数据流表项内起始逻辑地址和数据流长度的和值,获得结束逻辑地址;

s42、判断获得的结束逻辑地址和待写入数据流内数据的起始逻辑地址是否存在连续;

若存在连续则待写入数据为连续数据,若不存在连续则待写入数据不为连续数据。

s51、将待写入数据的物理地址分配至连续存储区;

s52、将待写入数据的物理地址分配至不连续存储区。

在行车记录仪或ipc中数据流主要分为视频数据流、日志数据流和命令数据流;其中视频数据流的数据为较长数据且为冷数据,长时间内不会更新删除;而日志数据流和命令数据流均为较短数据且为热数据,数据更新删除比较频繁;通过上述方法,通过判断逻辑地址数据是否连续来判断数据是较长的数据还是较短的数据;较长的数据大概率是冷数据,而较短的数据大概率是热数据;从而实现相比于现有技术,较大程度的把视频数据流从日志数据流和命令数据流筛选出来存储至连续存储区;从而当闪存内日志数据流和命令数据流被删除更新时,对视频数据流的数据影响较小,甚至不用搬运闪存内的视频数据流;达到减少tf卡垃圾回收的量,提升tf卡的寿命优点。

进一步的,当数据写满tf卡需要删除数据时,基于新鲜度删除已写入的数据。新鲜度能够作为参照,根据新鲜度的大小来分辨写入数据对应的逻辑地址;在获得逻辑地址的情况下再根据闪存内的逻辑映射表,就能找到对应数据的物理地址,来实现对最早写入的存储数据删除。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于tf卡或sd卡等基于sd协议的闪存卡中中,特别是应用于行车记录仪或ipc的等监控装置中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读移动式存储设备中。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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