一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种跨扇区的数据记录存储方法与流程

2022-11-16 15:05:27 来源:中国专利 TAG:


1.本发明涉及航空电子技术领域,具体涉及一种跨扇区的数据记录存储方法。


背景技术:

2.近年来,随着航空机载采集设备的不断升级,对机载设备的参数信息详尽程度要求越来越高,导致飞机飞行过程中单条数据中的参数个数成倍增长,目前单条数据固定参数个数固定长度在一个扇区内依次摆放的存储结构,已无法满足当前单条数据非固定参数非固定长度跨扇区的新存储需求。因此,需要提出一种跨扇区的数据记录存储方法,以解决非固定参数非固定长度跨扇区的飞参数据存储管理问题。


技术实现要素:

3.有鉴于此,本技术实施例提供一种跨扇区的数据记录存储方法,解决数据存储或删除时,单条数据记录跨多个扇区的存储组织问题和扇区内外部空间的组织管理问题,该方法不仅能存储和查找到一条完整的跨扇区的飞参数据又可以对已失效的存储空间做回收处理。
4.本技术实施例提供以下技术方案:一种跨扇区的数据记录存储方法,包括以下步骤:
5.步骤1:向待写入的扇区添加扇区头部信息标识,初始化所述扇区头部信息标识;向待存储的数据构建数据头部信息标识;
6.所述数据头部信息标识包括数据存在性、数据长度、完整性、下个扇区号,所述扇区头部信息标识包括扇区号、已用字节、下个扇区号;
7.步骤2:根据所述扇区头部信息标识中的已用字节信息,向待存储的数据申请待写入扇区,获得扇区a对应的扇区号;
8.步骤3:根据待存储数据的总长度及该扇区a的已用字节数,将该数据写入该扇区a,更新扇区a的所述扇区头部信息标识和所述数据头部信息标识,若当前扇区a的已用字节数已达到扇区a的总长度,循环判断该数据总长度与已存储长度是否一致,若不是,则继续申请待写入扇区,获得扇区b对应的扇区号,根据该数据剩余长度与该扇区b的已用字节数,将数据剩余部分写入该扇区b,更新扇区b的所述扇区头部信息标识和所述数据头部信息标识;若循环判断该数据总长度与已存储长度一致,则退出循环。
9.进一步地,扇区在写入数据之前的初始化状态时,所述扇区头部信息标识的已用字节标识为该扇区头部信息字节数,下个扇区号标识为无效。
10.进一步地,将该数据写入对应扇区后,对应扇区的所述扇区头部信息标识中的已用字节标识更新为该数据的写入字节与该扇区头部信息字节和该数据头部信息字节之和。
11.进一步地,若该数据的全部字节分别写入了所述扇区a和所述扇区b,则所述扇区a的所述扇区头部信息标识的下个扇区号标识更新为所述扇区b的扇区号;
12.所述扇区b的所述扇区头部信息标识的下个扇区号标识更新为无效。
13.进一步地,若该数据的全部字节分别写入了所述扇区a和所述扇区b,所述扇区a的所述数据头部信息标识的数据存在性标识更新为有效,数据长度标识更新为当前已存储的数据长度,完整性标识更新为不完整,下个扇区号标识更新为所述扇区b的扇区号;
14.所述扇区b的所述数据头部信息标识的数据存在性标识更新为有效,数据长度标识更新为当前已存储的剩余数据长度,完整性标识更新为完整,下个扇区号标识更新无效。
15.与现有技术相比,本发明采用的上述至少一个技术方案能够达到的有益效果至少包括:本发明采用增加数据头部信息及扇区头部信息的方法可以将跨扇区的数据记录连接成一条完整的数据记录,并通过扇区头部信息将物理上离散的多个扇区在逻辑上连接起来,通过对扇区内部使用情况的信息做统计可以及时的申请新的扇区或者回收旧的扇区空间。
附图说明
16.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
17.图1是本发明实施例的跨扇区数据存储模型图;
18.图2是本发明实施例的跨扇区数据存储实例图。
具体实施方式
19.下面结合附图对本技术实施例进行详细描述。
20.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.如图1所示,本发明实施例提供了一种跨扇区的数据记录存储方法,包括以下步骤:
22.步骤1:向待写入的扇区添加扇区头部信息标识,初始化所述扇区头部信息标识;向待存储的数据构建数据头部信息标识;
23.所述数据头部信息标识包括数据存在性、数据长度、完整性、下个扇区号,所述扇区头部信息标识包括扇区号、已用字节、下个扇区号;
24.扇区在写入数据之前的初始化状态时,所述扇区头部信息标识的已用字节标识为该扇区头部信息字节数,下个扇区号标识为无效;
25.步骤2:根据所述扇区头部信息标识中的已用字节信息,向待存储的数据申请待写入扇区,获得扇区a对应的扇区号;
26.步骤3:根据待存储数据的总长度及该扇区a的已用字节数,将该数据写入该扇区a,更新扇区a的所述扇区头部信息标识和所述数据头部信息标识,若当前扇区a的已用字节数已达到扇区a的总长度,循环判断该数据总长度与已存储长度是否一致,若不是,则继续申请待写入扇区,获得扇区b对应的扇区号,根据该数据剩余长度与该扇区b的已用字节数,
将数据剩余部分写入该扇区b,更新扇区b的所述扇区头部信息标识和所述数据头部信息标识;若循环判断该数据总长度与已存储长度一致,则退出循环。
27.具体实施时,将该数据写入对应扇区后,对应扇区的所述扇区头部信息标识中的已用字节标识更新为该数据的写入字节与该扇区头部信息字节和该数据头部信息字节之和。若该数据的全部字节分别写入了所述扇区a和所述扇区b,则所述扇区a的所述扇区头部信息标识的下个扇区号标识更新为所述扇区b的扇区号;所述扇区b的所述扇区头部信息标识的下个扇区号标识更新为无效。若该数据的全部字节分别写入了所述扇区a和所述扇区b,所述扇区a的所述数据头部信息标识的数据存在性标识更新为有效,数据长度标识更新为当前已存储的数据长度,完整性标识更新为不完整,下个扇区号标识更新为所述扇区b的扇区号;所述扇区b的所述数据头部信息标识的数据存在性标识更新为有效,数据长度标识更新为当前已存储的剩余数据长度,完整性标识更新为完整,下个扇区号标识更新无效。
28.本发明采用对数据增加头部信息以及对扇区增加头部信息的方法对跨扇区的数据记录进行存储管理。首先规定好数据头部信息16字节的存储内容,在数据写入时将数据头部信息16字节中的数据存在性标识字段设为有效,数据长度字段则根据当前数据长度与扇区可用字节数关系设置数值,完整性标识字段由已存储数据长度与数据剩余长度设置标识,下一个扇区号字段则根据完整性标识与新申请扇区号共同确定数值,数据存储区用来存放源数据,通过该方式可将一条跨扇区的数据记录存储并连接起来,当删除数据时只需要标识数据存在性标识无效并将扇区头部信息中的扇区已用字节数减少数据长度字段值即可实现数据空间的回收。其次规定好扇区头部信息12字节的存储内容,在申请新的扇区时格式化扇区头部,为扇区号字段设置值,扇区已用字节数设置为,扇区头部字节长度,下一个扇区号暂设无效,当申请新的扇区时设置为新申请的扇区号,通过这种方式可实现对扇区内部使用情况的统计并将存储同种数据的离散扇区以链表的形式组织起来。
29.其中,为数据记录添加16个字节的头部信息,该16个字节的头部信息用来保存数据存在性标识、数据长度、数据完整性标识以及存储该数据剩余部分的下一个扇区号。数据记录头部信息用于将跨扇区的数据记录连接起来组成一条完整的数据记录并对数据的存在性做标识方便数据删除时对数据所占空间长度做回收。
30.数据写入扇区前为扇区添加头部信息,格式化扇区头部的前12个字节,前12个字节用来保存扇区号、扇区内已用字节数以及下一个扇区号。扇区头部信息用于统计扇区内空间的使用情况方便判断新扇区的申请和旧扇区的释放,以及保存同种相关数据的下一个扇区号将物理上不相连的数据区从逻辑上组织成相连的存储区。
31.本发明基于标准nvme接口的磁盘进行操作。首先为待写入数据的扇区添加扇区头部信息将扇区格式化为可识别的模式,然后在每条数据记录写入前为每条数据记录分段添加记录头部信息。数据记录写入扇区前,通过对数据记录添加头部信息,便于对跨扇区存储的数据进行管理,使用该种方法能够完整的找到一条跨多个扇区的数据记录,在数据进行删除时可以方便的回收数据记录所占用的空间。通过对扇区添加头部信息,既可以将分散的物理扇区从逻辑上连接成一个整体,也可以统计单个扇区内部的使用情况,同时扇区头部信息也为数据存储与删除时,新扇区的申请与旧扇区的回收提供判断依据。
32.下面结合附图以及具体实施例对本发明做进一步详细描述:
33.如图1所示,图1是本发明的数据存储模型图,本发明实施例主要有两个核心步骤,
一是格式化扇区头部信息,二是为数据构造头部信息。扇区头部信息及数据头部信息说明如表1和表2所示。
34.表1:扇区头部信息说明
35.字段名称占用字节描述id4扇区唯一标识count4扇区内已用字节数nextid4下一个存储同种类型数据的扇区号
36.表2:数据头部信息说明
[0037][0038]
例如当前有长度为700字节的数据记录待写入扇区其写入后扇区情况如图2所示,通常情况下默认扇区的字节数为512字节,具体数据记录的写入步骤如下。
[0039]
步骤1:首先创建一个记录扇区头部信息与记录头部信息的数据预分配数组f,然后申请一个新的扇区号,假设申请到的扇区号为1024,则在内存创建一个扇区头部信息对象a,初始化扇区头部信息对象a中扇区号属性值为1024、已用字节数值为12(12为扇区头部信息长度)下一个扇区号为无效,将该头部存入数组。
[0040]
步骤2:创建数据头部信息对象a,初始化数据头部信息对象a中数据存在性标识属性值为有效、数据完整性标识属性值为不完整、数据长度属性值为484(该值计算方式为扇区总字节数512减去扇区头部信息长度12再减去数据头部信息长度16得到)下一个扇区号为无效,设置扇区头部信息对象a中已用字节数值为512,将该头部存入数组。
[0041]
步骤3:循环判断当前数据总长度减去已存储长度后剩余待存储总长度是否大于0,若大于0则申请新的扇区,若不满足条件则退出循环。这里700字节总长度的数据记录已存储484字节仍有216字节待存储。重复步骤1假设新申请扇区号为2048,创建并初始化扇区头部信息对象b,创建并初始化数据头部信息对象b后,设置数据头部信息对象b中,数据存在性标识为有效、数据完整性为完整、数据长度信息为216、下一个扇区号为无效,设置扇区头部信息对象b中已用字节数为244(该值由扇区头部12字节加数据头部16字节加数据216字节得出)。
[0042]
步骤4:此时数据总长度减去已存储长度等于0不满足循环条件退出循环,接下来遍历数据预分配数组f,设置扇区头部信息a中下一个扇区号为扇区头部信息b的扇区号即2048,设置数据头部信息a中下一个扇区号为数据头部信息b的扇区号即2048,并申请两个扇区大小的内存空间,将数据切割成484与216字节的两部分,将484字节的数据挂在数据头
部信息a后并将封装好的数据与头部挂在扇区头部信息a后,然后将整个512字节的内存空间刷盘。同理将216字节的数据也刷盘。至此700字节的跨扇区数据已全部落盘。以后当需要检索数据或者删除数据时则根据扇区头部与数据头部就可以获取全部的数据存储空间。
[0043]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献