CN114217738A - 一种动态队列式循环存储方法、装置、设备及介质 - Google Patents

一种动态队列式循环存储方法、装置、设备及介质 Download PDF

Info

Publication number
CN114217738A
CN114217738A CN202111417181.4A CN202111417181A CN114217738A CN 114217738 A CN114217738 A CN 114217738A CN 202111417181 A CN202111417181 A CN 202111417181A CN 114217738 A CN114217738 A CN 114217738A
Authority
CN
China
Prior art keywords
data
storage
target data
description word
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111417181.4A
Other languages
English (en)
Inventor
孟祥梯
万留美
伍权乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Eybond Co ltd
Original Assignee
Shenzhen Eybond Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Eybond Co ltd filed Critical Shenzhen Eybond Co ltd
Priority to CN202111417181.4A priority Critical patent/CN114217738A/zh
Publication of CN114217738A publication Critical patent/CN114217738A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及嵌入式设备存储技术领域,本申请实施例中提供了一种动态队列式循环存储方法,包括:当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度分割目标数据为若干目标数据块;确定用于存储若干目标数据块所对应的N个第一存储空间;擦除N个第一存储空间中的原有数据;依次写入目标数据块到第一存储空间,并进行计数,直到N=0。通过目标数据大小动态分配存储空间;基于队列算法特性先进先出方式管理内部存储数据结构;该方法可简化嵌入式设备运行及状态信息存储与获取方式,有效简化数据存取操作逻辑、高效利用存储空间、均衡硬件擦写操作延长器件使用寿命。

Description

一种动态队列式循环存储方法、装置、设备及介质
技术领域
本申请涉及嵌入式设备存储技术领域,特别是一种动态队列式循环存储方法、装置、设备及介质。
背景技术
随着科技水平发展,越来越多的嵌入式设备深入到人们生活当中。由于设备应用越来越多,应用场景与需求越来越复杂,多数情况会有需要将产品的运行信息存储,用于后期的产品运维及信息跟踪。
通过嵌入式设备存储数据已常为常见的存储方式,例如文件存储,录像存储,安防监控存储等,全天候的数据存储也是目前常见需求。
通常在长时间进行数据存储时,常会使用循环式存储,即新数据覆盖旧数据的方式,当数据存储满后,通常是直接覆盖原来的老旧数据,擦写频率高,不利于存储设备长期工作,尤其会降低存储介质的使用寿命;并且存储时由于数据较大小不一致,容易导致存储效率低,断电数据易丢失等问题。
发明内容
鉴于所述问题,提出了本申请以便提供克服所述问题或者至少部分地解决所述问题的一种动态队列式循环存储方法、装置、设备及介质,包括:
一种动态队列式循环存储方法,所述方法用于嵌入式设备中可擦写的存储介质动态循环存储数据;所述方法包括:
当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块;
依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间;
依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;
依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0时,重新确定用于存储若干所述目标数据块所对应的N个第一存储空间。
进一步的,所述当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块的步骤,包括:
当接收到目标数据时,依据所述动态循环队列算法,获得所述目标数据长度;
依据所述目标数据长度和预设的动态循环队列算法,分割所述目标数据为若干数据块;
依据所述数据块长度和所述动态队列算法,为每个所述数据块附加一个数据头,获得若干个目标数据块,其中,所述目标数据块包括数据描述字和描述字校验码、数据内容。
进一步的,所述依据所述数据块长度和所述动态队列算法,为每个所述数据块附加一个数据头,获得若干个目标数据块的步骤,包括:
依据所述数据块长度和所述数据内容,确定所述数据描述字;
依据所述数据描述字的取反校验码,确定所述描述字校验码;其中,
所述数据描述字和所述描述字校验码,形成所述数据头。
进一步的,所述依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间的步骤,包括:
依据预设的动态循环队列算法,获取用于存储所述目标数据的第一存储区;并建立所述存储区与内存地址的映射关系;
依据预设的存储格式和所述映射关系,划分第一存储区为N个第一存储空间。
进一步的,还包括:
依据预设的动态循环队列算法,获取用于存储所述目标数据的第一存储区;并建立所述存储区与内存地址的映射关系;
依据所述动态循环队列算法,确定每个所述目标数据块在所述内存中的起始地址,并通过内存寻址方式确定所述目标数据块占用的内存空间;
依据预设的存储格式和所述映射关系,划分第一存储区为N个第一存储空间;
依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;
依据所述映射关系,同步所述内存空间中和所述第一存储空间中的所述目标数据块;并进行计数,直到N=0。
进一步的,所述依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据的步骤,包括:
依据区域分块式均衡擦写存储算法,按照原有数据的存储时间先后,依次擦除N个所述第一存储空间中的原有数据,具体的,在擦除所述第一存储空间中的原有数据时,依据所述存储格式中定义的最存储小单位页进行擦除。
进一步的,还包括:
依据预设的动态循环队列算法,通过数据抽象统一处理所述第一存储空间,实现存储空间动态管理的步骤,具体的,在所述第一存储空间的起始地址增加用于记录数据信息的数据描述字和用于校验数据内容有效性的描述字校验码;其中,所述描述字校验码为所述数据描述字的取反校验码;
当读取目标数据块时,依据所述动态循环队列算法中的前指针读取所述数据描述字和所述描述字校验码;
依据所述描述字校验码对所述数据描述字进行核验;若核验通过,则依据所述数据描述字和所述动态循环队列算法中的后指针,读取所述第一存储空间中所述目标数据块的数据内容,并返回有效数据长度,其中,所述有效数据长度包括所述数据描述字、所述描述字校验码以及所述数据内容的长度;若核验不通过,则依次读取后续存储区域直至找到有效的所述数据描述字或有效存储结束标记为止。
一种动态队列式循环存储装置,所述装置用于嵌入式设备中可擦写的存储介质动态循环存储数据;所述装置包括:
数据获取模块,用于当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块;
空间确定模块,用于依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间;
空间擦除模块,用于依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;
数据存储模块,用于依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0。
一种设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的动态队列式循环存储的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的动态队列式循环存储的步骤。
本申请具有以下优点:在本申请的实施例中,通过接收到目标数据时,依据预设的动态循环队列算法和所述目标数据长度附加数据头,并将包含所述数据头的所述目标数据加入到预设的存储队列中;依据所述数据头和预设的动态循环队列算法,确定所述存储介质中用于存储所述目标数据的起始地址,并为所述目标数据分配存储空间;若所述存储空间足够,则对目标数据进行分块写入所述存储介质,完成存储并修改预设的存储队列指针,其中,所述存储队列指针指向所述数据头和所述存储空间的结束地址;若所述存储空间不足,则依据预设的存储队列指针,擦除所述存储空间中的早期数据,直到满足目标数据所占空间大小。通过目标数据大小动态分配存储空间;基于队列算法特性先进先出方式管理内部存储数据结构;该方法可简化嵌入式设备运行及状态信息存储与获取方式,有效简化数据存取操作逻辑、高效利用存储空间、均衡硬件擦写操作延长器件使用寿命。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种动态队列式循环存储方法的步骤流程图;
图2是本申请一实施例提供的一种动态队列式循环存储装置的结构框图;
图3是本申请一实施例提供的存储介质中的数据存储分布结构示意图;
图4是本发明一实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的所述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本发明任一实施例中,所述动态队列式循环存储方法,是利用循环队列,实现存储和空间管理的方法,存储数据队列式存入取出,简化数据管理。利用队列特性,存入数据先进先出。内部可仅通过前后位置指针管理内部所有数据,及新旧数据循环迭代管理。
参照图1,示出了本申请一实施例提供的一种动态队列式循环存储方法,所述方法用于嵌入式设备中可擦写的存储介质动态循环存储数据;
所述方法包括:
S110、当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块;
S120、依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间;
S130、依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;
S140、依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0;当N=0时,也即划分的N个第一存储空间被全部占用,当再次接收到数据时,重新划分空间,并进行重新计数。
在本申请的实施例中,通过接收到目标数据时,依据预设的动态循环队列算法和所述目标数据长度附加数据头,并将包含所述数据头的所述目标数据加入到预设的存储队列中;依据所述数据头和预设的动态循环队列算法,确定所述存储介质中用于存储所述目标数据的起始地址,并为所述目标数据分配存储空间;若所述存储空间足够,则对目标数据进行分块写入所述存储介质,完成存储并修改预设的存储队列指针,其中,所述存储队列指针指向所述数据头和所述存储空间的结束地址;若所述存储空间不足,则依据预设的存储队列指针,擦除所述存储空间中的早期数据,直到满足目标数据所占空间大小。通过目标数据大小动态分配存储空间;基于队列算法特性先进先出方式管理内部存储数据结构;该方法可简化嵌入式设备运行及状态信息存储与获取方式,有效简化数据存取操作逻辑、高效利用存储空间、均衡硬件擦写操作延长器件使用寿命。
下面,将对本示例性实施例中一种动态队列式循环存储方法作进一步地说明。
如所述步骤S110所述当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块。
在本发明一实施例中,可以结合下列描述进一步说明步骤S110所述“当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块”的具体过程。
如下列步骤所述,当接收到目标数据时,依据所述动态循环队列算法,获得所述目标数据长度;
如下列步骤所述,依据所述目标数据长度和预设的动态循环队列算法,分割所述目标数据为若干数据块;
如下列步骤所述,依据所述数据块长度和所述动态队列算法,为每个所述数据块附加一个数据头,获得目标数据块,其中,所述目标数据块包括数据描述字和描述字校验码、数据内容。
需要说明的是,循环队列是为了充分利用向量空间,克服“假溢出”现象,通过将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列,从而通过存储数据队列式存入取出,简化数据管理。利用队列特性,存入数据先进先出。内部可仅通过前后位置指针管理内部所有数据,及新旧数据循环迭代管理。
作为一种示例,当接收到目标数据时,依据所述动态循环队列算法,获得所述目标数据长度,例如,通过队列指针的结构体中对应的结构指针获得目标数据长度,其结构体如下:
typedefstruct
{u32_t size;//结束地址
u32_t addr;//起始地址
FlashEquilibria_tfrontAddr;//前指针
u32_t front;//前指针地址
FlashEquilibria_trearAddr;//尾指针
u32_t rear;//尾指针地址
}FlashFIFOHead_t;//Flash队列存储结构体。
依据所述目标数据长度和预设的动态循环队列算法,分割所述目标数据为若干数据块;依据所述数据块长度和所述动态队列算法,为每个所述数据块附加一个数据头,获得若干个目标数据块,其中,所述目标数据块包括数据描述字和描述字校验码、数据内容。
在本发明一实施例中,所述依据所述数据块长度和所述动态队列算法,为每个所述数据块附加一个数据头,获得若干个目标数据块的步骤,包括:依据所述数据块长度和所述数据内容,确定所述数据描述字;依据所述数据描述字的取反校验码,确定所述描述字校验码;其中,所述数据描述字和所述描述字校验码,形成所述数据头,如图3所示为本申请中一实施例的存储介质中的数据存储分布结构示意图。增加数据描述字实现存储空间动态管理。即:为接收到目标数据时,通过分割为目标数据块,在目标数据块最前端默认增加数据描述字与描述字取反校验码,将其作为整体进行存储,也即,在相应的存储目标数据块空间前增加用于存储数据描述字与描述字校验码的空间,其中,描述字校验码用于记录本次操作数据内容信息及有效校验码。
如所述步骤S120所述依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间。
在本发明一实施例中,可以结合下列描述进一步说明步骤S120所述“依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间”的具体过程。
如下列步骤所述,依据预设的动态循环队列算法,获取用于存储所述目标数据的第一存储区;并建立所述存储区与内存地址的映射关系;
如下列步骤所述,依据预设的存储格式和所述映射关系,划分第一存储区为N个第一存储空间。
每次获取到的目标数据大小非固定的,获取到目标数据后,在内存中依据数标数据长度,动态分配目标所需空间,有效增加相同空间的下存储有效数据,并且由于内存的存取效率要高于外部存储器(如,硬盘、Flash存储器、SD存储器等),根据内存中的目标数据所占用的内存地址和外部存储器如Flash闪存的地址映射,划分存储区域,并将该存储区域划为N个第一存储空间;依据映射关系,将内存中的目标数据写入所述第一存储空间,进而提高数据存储效率。
如所述步骤S130所述依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据。
在本发明一实施例中,可以结合下列描述进一步说明步骤S130所述“依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据”的具体过程。
如下列步骤所述,依据区域分块式均衡擦写存储算法,按照原有数据的存储时间先后,依次擦除N个所述第一存储空间中的原有数据,具体的,在擦除所述第一存储空间中的原有数据时,依据所述存储格式中定义的最存储小单位页进行擦除。
作为一种示例,当存储介质,如Flash器件写入目标数据时必须先将其擦除,并且擦除最小单位页。均衡擦写即依据Flash最小擦除大小及目标写入数据大小,将其分配为N个可存储空间,每次修改即消耗一个存储空间,当所有存储空间消耗完时,再整体擦除重新计数。用此方法有效降低存储介质的擦除次数,增加器件使用寿命。示例性说明,例如,当存储介质的为NTFS格式时,其最小单位页为512Byte(字节),再如HDFS文件***,其最小单块存储块为1kByte,其中,作为示例性说明,本申请中并不限于此二种格式的文件***。
如所述步骤S140所述依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0。
在本发明一实施例中,可以结合下列描述进一步说明步骤S140所述“依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0”的具体过程。
如下列步骤所述,依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0;当N=0时,也即划分的N个第一存储空间被全部占用,当再次接收到数据时,重新划分空间,并进行重新计数。
在本发明一实施例中,还包括:依据预设的动态循环队列算法,获取用于存储所述目标数据的第一存储区;并建立所述存储区与内存地址的映射关系;依据所述动态循环队列算法,确定每个所述目标数据块在所述内存中的起始地址,并通过内存寻址方式确定所述目标数据块占用的内存空间;依据预设的存储格式和所述映射关系,划分第一存储区为N个第一存储空间;依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;依据所述映射关系,同步所述内存空间中和所述第一存储空间中的所述目标数据块;并进行计数,直到N=0。
通过队列位置前指针和后指针进行存储操作,使同步内存和存储介质数据,实现掉电同步,即在设备每次重启时,将存储介质如Flash中记录信息同步至内存中。后面操作时直接依据内存操作与修改,并将变更信息同步记录块。通过直接内存寻址操作,增加减少外部器件操作,增快信息处理速度,增强程序运行健壮性。
在本发明一实施例中,所述依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据的步骤,包括:依据区域分块式均衡擦写存储算法,按照原有数据的存储时间先后,依次擦除N个所述第一存储空间中的原有数据,具体的,在擦除所述第一存储空间中的原有数据时,依据所述存储格式中定义的最存储小单位页进行擦除。
通过队列位置前指针和后指针进行存储操作,使用区域分块式均衡擦写存储算法(即将一个大区域,依据存储大小分为若干个小块,每次更新时依次修改一个小块,当所有都用完时,在整块擦除又从第一个小块开始写入),进一步有效减少存储介质的擦除次数,增强器件实际使用寿命。
在本发明一实施例中,还包括:依据预设的动态循环队列算法,通过数据抽象统一处理所述第一存储空间,实现存储空间动态管理的步骤,具体的,在所述第一存储空间的起始地址增加用于记录数据信息的数据描述字和用于校验数据内容有效性的描述字校验码;其中,所述描述字校验码为所述数据描述字的取反校验码;当读取目标数据块时,依据所述动态循环队列算法中的前指针读取所述数据描述字和所述描述字校验码;依据所述描述字校验码对所述数据描述字进行核验;若核验通过,则依据所述数据描述字和所述动态循环队列算法中的后指针,读取所述第一存储空间中所述目标数据块的数据内容,并返回有效数据长度,其中,所述有效数据长度包括所述数据描述字、所述描述字校验码以及所述数据内容的长度;若核验不通过,则依次读取后续存储区域直至找到有效的所述数据描述字或有效存储结束标记为止。
将程序单次操作数据抽象统一处理,增加数据描述字实现存储空间动态管理。即:为每次操作数据最前端默认增加描述符与描述符取反校验码存储空间,用于记录本次操作数据内容信息及有效校验码。实际读取先依据描述信息及校验码,描述信息校验核对通过,再读取存储有效内容,返回有效数据长度。若描述信息与校验核对失败,则依次读取后续存储区域直至找到有效描述符或有效存储结束为止,防止因个别数据异常导致整个存储区域数据失效。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图2,示出了本申请一实施例提供的一种动态队列式循环存储装置,所述装置用于嵌入式设备中可擦写的存储介质动态循环存储数据;所述装置包括:
数据获取模块210,用于当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块;
空间确定模块220,用于依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间;
空间擦除模块230,用于依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;
数据存储模块240,用于依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0。
在本发明一实施例中,所述数据获取模块210,包括:
数据获取子模块,用于当接收到目标数据时,依据所述动态循环队列算法,获得所述目标数据长度;
数据分割子模块,用于依据所述目标数据长度和预设的动态循环队列算法,分割所述目标数据为若干数据块;
数据处理子模块,用于依据所述数据块长度和所述动态队列算法,为每个所述数据块附加一个数据头,获得若干个目标数据块,其中,所述目标数据块包括数据描述字和描述字校验码、数据内容。
在本发明一实施例中,所述数据处理子模块,包括:
数据描述子模块,用于依据所述数据块长度和所述数据内容,确定所述数据描述字;
数据校验子模块,用于依据所述数据描述字的取反校验码,确定所述描述字校验码;其中,所述数据描述字和所述描述字校验码,形成所述数据头。
在本发明一实施例中,所述空间确定模块220,包括:
存储映射子模块,用于依据预设的动态循环队列算法,获取用于存储所述目标数据的第一存储区;并建立所述存储区与内存地址的映射关系;
空间划分子模块,用于依据预设的存储格式和所述映射关系,划分第一存储区为N个第一存储空间。
在本发明一实施例中,还包括:
存储映射子模块,用于依据预设的动态循环队列算法,获取用于存储所述目标数据的第一存储区;并建立所述存储区与内存地址的映射关系;
目标确定子模块,用于依据所述动态循环队列算法,确定每个所述目标数据块在所述内存中的起始地址,并通过内存寻址方式确定所述目标数据块占用的内存空间;
空间划分子模块,用于依据预设的存储格式和所述映射关系,划分第一存储区为N个第一存储空间;
空间擦除模块230,用于依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;
数据存储模块240,还用于依据所述映射关系,同步所述内存空间中和所述第一存储空间中的所述目标数据块;并进行计数,直到N=0。
在本发明一实施例中,所述空间擦除模块230,包括:
空间擦除子模块,用于依据区域分块式均衡擦写存储算法,按照原有数据的存储时间先后,依次擦除N个所述第一存储空间中的原有数据,具体的,在擦除所述第一存储空间中的原有数据时,依据所述存储格式中定义的最存储小单位页进行擦除。
在本发明一实施例中,还包括:
抽象处理模块,用于依据预设的动态循环队列算法,通过数据抽象统一处理所述第一存储空间,实现存储空间动态管理的步骤,具体的,在所述第一存储空间的起始地址增加用于记录数据信息的数据描述字和用于校验数据内容有效性的描述字校验码;其中,所述描述字校验码为所述数据描述字的取反校验码;
读取模块,用于当读取目标数据块时,依据所述动态循环队列算法中的前指针读取所述数据描述字和所述描述字校验码;
核验模块,用于依据所述描述字校验码对所述数据描述字进行核验;若核验通过,则依据所述数据描述字和所述动态循环队列算法中的后指针,读取所述第一存储空间中所述目标数据块的数据内容,并返回有效数据长度,其中,所述有效数据长度包括所述数据描述字、所述描述字校验码以及所述数据内容的长度;若核验不通过,则依次读取后续存储区域直至找到有效的所述数据描述字或有效存储结束标记为止。
参照图4,示出了本发明的一种动态队列式循环存储方法的计算机设备,具体可以包括如下:
上述计算机设备12以通用计算设备的形式表现,计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线18结构中的一种或多种,包括存储器总线18或者存储器控制器,***总线18,图形加速端口,处理器或者使用多种总线18结构中的任意总线18结构的局域总线18。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线18,微通道体系结构(MAC)总线18,增强型ISA总线18、音视频电子标准协会(VESA)局域总线18以及***组件互连(PCI)总线18。
计算机设备12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其他移动/不可移动的、易失性/非易失性计算机体统存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质界面与总线18相连。存储器可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块42,这些程序模块42被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器中,这样的程序模块42包括——但不限于——操作***、一个或者多个应用程序、其他程序模块42以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24、摄像头等)通信,还可与一个或者多个使得医护人员能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)界面22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN)),广域网(WAN)和/或公共网络(例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其他模块通信。应当明白,尽管图4中未示出,可以结合计算机设备12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元16、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***34等。
处理单元16通过运行存储在***存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的动态队列式循环存储方法。
也即,上述处理单元16执行上述程序时实现:当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块;依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间;依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0。
在本发明实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有实施例提供的动态队列式循环存储方法:
也即,给程序被处理器执行时实现:当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块;依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间;依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机克顿信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPOM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指针执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指针执行***、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在医护人员计算机上执行、部分地在医护人员计算机上执行、作为一个独立的软件包执行、部分在医护人员计算机上部分在远程计算机上执行或者完全在远程计算机或者服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到医护人员计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种动态队列式循环存储方法、装置、设备及介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种动态队列式循环存储方法,其特征在于,所述方法用于嵌入式设备中可擦写的存储介质动态循环存储数据;所述方法包括:
当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块;
依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间;
依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;
依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0。
2.根据权利要求1所述的方法,其特征在于,所述当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块的步骤,包括:
当接收到目标数据时,依据所述动态循环队列算法,获得所述目标数据长度;
依据所述目标数据长度和预设的动态循环队列算法,分割所述目标数据为若干数据块;
依据所述数据块长度和所述动态队列算法,为每个所述数据块附加一个数据头,获得若干个目标数据块,其中,所述目标数据块包括数据描述字和描述字校验码、数据内容。
3.根据权利要求2所述的方法,其特征在于,所述依据所述数据块长度和所述动态队列算法,为每个所述数据块附加一个数据头,获得若干个目标数据块的步骤,包括:
依据所述数据块长度和所述数据内容,确定所述数据描述字;
依据所述数据描述字的取反校验码,确定所述描述字校验码;其中,
所述数据描述字和所述描述字校验码,形成所述数据头。
4.根据权利要求1所述的方法,其特征在于,所述依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间的步骤,包括:
依据预设的动态循环队列算法,获取用于存储所述目标数据的第一存储区;并建立所述存储区与内存地址的映射关系;
依据预设的存储格式和所述映射关系,划分第一存储区为N个第一存储空间。
5.根据权利要求4所述的方法,其特征在于,还包括:
依据预设的动态循环队列算法,获取用于存储所述目标数据的第一存储区;并建立所述存储区与内存地址的映射关系;
依据所述动态循环队列算法,确定每个所述目标数据块在所述内存中的起始地址,并通过内存寻址方式确定所述目标数据块占用的内存空间;
依据预设的存储格式和所述映射关系,划分第一存储区为N个第一存储空间;
依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;
依据所述映射关系,同步所述内存空间中和所述第一存储空间中的所述目标数据块;并进行计数,直到N=0。
6.根据权利要求1或5所述的方法,其特征在于,所述依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据的步骤,包括:
依据区域分块式均衡擦写存储算法,按照原有数据的存储时间先后,依次擦除N个所述第一存储空间中的原有数据,具体的,在擦除所述第一存储空间中的原有数据时,依据所述存储格式中定义的最存储小单位页进行擦除。
7.根据权利要求1所述的方法,其特征在于,还包括:
依据预设的动态循环队列算法,通过数据抽象统一处理所述第一存储空间,实现存储空间动态管理的步骤,具体的,在所述第一存储空间的起始地址增加用于记录数据信息的数据描述字和用于校验数据内容有效性的描述字校验码;其中,所述描述字校验码为所述数据描述字的取反校验码;
当读取目标数据块时,依据所述动态循环队列算法中的前指针读取所述数据描述字和所述描述字校验码;
依据所述描述字校验码对所述数据描述字进行核验;若核验通过,则依据所述数据描述字和所述动态循环队列算法中的后指针,读取所述第一存储空间中所述目标数据块的数据内容,并返回有效数据长度,其中,所述有效数据长度包括所述数据描述字、所述描述字校验码以及所述数据内容的长度;若核验不通过,则依次读取后续存储区域直至找到有效的所述数据描述字或有效存储结束标记为止。
8.一种动态队列式循环存储装置,其特征在于,所述装置用于嵌入式设备中可擦写的存储介质动态循环存储数据;所述装置包括:
数据获取模块,用于当接收到目标数据时,依据预设的动态循环队列算法和目标数据的长度,分割所述目标数据为若干目标数据块;
空间确定模块,用于依据预设的动态循环队列算法,确定用于存储若干所述目标数据块所对应的N个第一存储空间;
空间擦除模块,用于依据预设的存储格式和所述目标数据块大小,擦除N个所述第一存储空间中的原有数据;
数据存储模块,用于依次写入所述目标数据块到所述第一存储空间,并进行计数,直到N=0。
9.一种设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
CN202111417181.4A 2021-11-25 2021-11-25 一种动态队列式循环存储方法、装置、设备及介质 Pending CN114217738A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111417181.4A CN114217738A (zh) 2021-11-25 2021-11-25 一种动态队列式循环存储方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111417181.4A CN114217738A (zh) 2021-11-25 2021-11-25 一种动态队列式循环存储方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114217738A true CN114217738A (zh) 2022-03-22

Family

ID=80698449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111417181.4A Pending CN114217738A (zh) 2021-11-25 2021-11-25 一种动态队列式循环存储方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114217738A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115190089A (zh) * 2022-05-26 2022-10-14 中科驭数(北京)科技有限公司 一种报文存储方法、装置、设备及存储介质
CN115827653A (zh) * 2022-11-25 2023-03-21 深圳计算科学研究院 一种用于htap和海量数据的纯列式更新方法及装置
CN115964002A (zh) * 2023-03-13 2023-04-14 杭州炬华科技股份有限公司 一种电能表终端档案管理方法、装置、设备及介质
CN116028387A (zh) * 2023-01-31 2023-04-28 惠州市海葵信息技术有限公司 数据处理方法、从站、主站以及存储介质
CN116527691A (zh) * 2023-06-27 2023-08-01 天津中远海运散运数字科技有限公司 一种船岸数据的同步方法、装置、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150212751A1 (en) * 2014-01-28 2015-07-30 International Business Machines Corporation Data storage control apparatus
CN107608639A (zh) * 2017-10-20 2018-01-19 深圳益邦阳光有限公司 基于闪存的队列式循环存储方法、电子设备和存储介质
CN111240599A (zh) * 2020-01-17 2020-06-05 北京马赫谷科技有限公司 数据流存储方法及装置
CN111930309A (zh) * 2020-07-31 2020-11-13 中国人民解放军海军工程大学 基于数据分块技术的文件循环存储方法和装置
CN112181311A (zh) * 2020-10-21 2021-01-05 深圳市创维软件有限公司 一种循环录制方法、设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150212751A1 (en) * 2014-01-28 2015-07-30 International Business Machines Corporation Data storage control apparatus
CN107608639A (zh) * 2017-10-20 2018-01-19 深圳益邦阳光有限公司 基于闪存的队列式循环存储方法、电子设备和存储介质
CN111240599A (zh) * 2020-01-17 2020-06-05 北京马赫谷科技有限公司 数据流存储方法及装置
CN111930309A (zh) * 2020-07-31 2020-11-13 中国人民解放军海军工程大学 基于数据分块技术的文件循环存储方法和装置
CN112181311A (zh) * 2020-10-21 2021-01-05 深圳市创维软件有限公司 一种循环录制方法、设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李用江等: "《计算机组成原理》", 30 November 2003, 《华南理工大学出版社》, pages: 284 - 286 *
贾永红等: "《数字图像处理实习教程第三版》", 30 November 2016, 《武汉大学出版社》, pages: 56 - 59 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115190089A (zh) * 2022-05-26 2022-10-14 中科驭数(北京)科技有限公司 一种报文存储方法、装置、设备及存储介质
CN115190089B (zh) * 2022-05-26 2024-03-22 中科驭数(北京)科技有限公司 一种报文存储方法、装置、设备及存储介质
CN115827653A (zh) * 2022-11-25 2023-03-21 深圳计算科学研究院 一种用于htap和海量数据的纯列式更新方法及装置
CN115827653B (zh) * 2022-11-25 2023-09-05 深圳计算科学研究院 一种用于htap和海量数据的纯列式更新方法及装置
CN116028387A (zh) * 2023-01-31 2023-04-28 惠州市海葵信息技术有限公司 数据处理方法、从站、主站以及存储介质
CN115964002A (zh) * 2023-03-13 2023-04-14 杭州炬华科技股份有限公司 一种电能表终端档案管理方法、装置、设备及介质
CN116527691A (zh) * 2023-06-27 2023-08-01 天津中远海运散运数字科技有限公司 一种船岸数据的同步方法、装置、设备和介质
CN116527691B (zh) * 2023-06-27 2023-11-03 天津中远海运散运数字科技有限公司 一种船岸数据的同步方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
CN114217738A (zh) 一种动态队列式循环存储方法、装置、设备及介质
CN111090628B (zh) 一种数据处理方法、装置、存储介质及电子设备
CN102508784B (zh) 视频监控设备中闪存卡的数据存储方法及其***
US8627024B2 (en) Snapshot based replication
CN102999436B (zh) 在Nand闪存中生成动态分区信息的方法和装置
WO2017107414A1 (zh) 文件操作方法和装置
CN112346647B (zh) 数据存储方法、装置、设备和介质
CN116431099B (zh) 数据的处理方法、多输入输出队列电路及存储介质
CN110908707A (zh) 一种资源打包方法、装置、服务器及存储介质
CN110633046A (zh) 一种分布式***的存储方法、装置、存储设备及存储介质
CN111104347B (zh) 堆内存块查找方法、装置、设备及存储介质
CN111400056A (zh) 基于消息队列的消息传输方法、装置及设备
CN110780821A (zh) 分布式存储***的优化方法、装置、服务器和存储介质
US9891824B2 (en) Sub-block input/output (I/O) commands for storage device including byte stream buffer
US9817837B2 (en) Method and system for file storage and access
US10803109B2 (en) Method and device for reading and writing video data in NAS device
US20210117339A1 (en) Managing global counters using local delta counters
CN115934999A (zh) 一种基于块文件的视频流数据存储方法、装置及介质
CN111435323A (zh) 信息的传输方法、装置、终端、服务器及存储介质
CN111897745B (zh) 一种数据存储方法、装置、电子设备及存储介质
CN109491620B (zh) 存储数据重写方法、装置、服务器及存储介质
CN116662603B (zh) 基于kafka的时间轴管控方法、***、电子设备及存储介质
CN112363778B (zh) 一种动态图片加载方法、装置、电子设备以及存储介质
CN117271440B (zh) 一种基于freeRTOS文件信息存储方法、读取方法及相关设备
CN113535660B (zh) 安卓日志存储方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination