一种业务数据的链表存储方法及装置与流程

文档序号:16608841发布日期:2019-01-14 21:24阅读:178来源:国知局
一种业务数据的链表存储方法及装置与流程

本发明涉及计算存储技术领域,尤其涉及一种业务数据的链表存储方法及装置。



背景技术:

报文传输过程中,处理模块可能无法及时接收并处理,需要将报文暂时存入存储空间后取出至处理模块进行处理。

在fpga(field-programmablegatearray,现场可编程门阵列)中,由于内置ram空间有限,需要将报文置于外部ddrsdram(doubledataratesynchronousdynamicrandom-accessmemory,双倍速率同步动态随机存储器)中,fpga的内置ram中则存储报文在ddr中的地址用于寻找报文,还可以存储报文的长度等信息,这些地址、长度等信息合起来称为业务数据。业务数据可以以链表的形式存储,且每种报文的业务数据存储在各自的链表存储区上。

由于各种报文应用情况不一致,对应的,其业务数据组成的链表长度也不一致,在部分链表存储区上并未存满业务数据,导致内置ram空间浪费。



技术实现要素:

为了解决上述问题,本发明提供一种业务数据的链表存储方法及装置。

为解决上述问题,本发明提供的业务数据的链表存储方法,包括:

基于待存储的多组业务数据,配置链表组,其中,所述链表组包括多个链表,一个链表对应于一组业务数据,所述链表组中的链表共享同一个链表存储区域;

将所述多组业务数据分别存储至所述链表组对应的链表中。

上述的方法,基于待存储的多组业务数据,配置链表组,包括:

基于所述多组业务数据的实际长度或估计长度,确定所述链表组的链表存储区域的空间大小;

基于确定的所述链表组的链表存储区域的空间大小,配置所述链表组。

上述的方法,在基于待存储的多组业务数据,配置链表组之前,所述方法还包括:

按照预设规则,从所述业务数据集合中选择所述多组业务数据。

上述的方法,所述按照预设规则,从所述业务数据集合中选择所述多组业务数据,包括:

基于待存储的业务数据集合中各组业务数据的实际长度或估计长度,以及所述链表组的链表存储区域的空间大小,从所述业务数据集合中选择所述多组业务数据。

上述的方法,所述按照预设规则,从所述业务数据集合中选择所述多组业务数据,包括:

按照长短搭配的原则,基于待存储的业务数据集合中各组业务数据的实际长度或估计长度,从所述业务数据集合中选择所述多组业务数据。

上述的方法,所述多组业务数据为相同类型的业务数据;或者

所述多组业务数据为不同类型的业务数据。

上述的方法,所述多组业务数据为报文的地址数据。

上述的方法,所述多组业务数据包括第一组业务数据和第二组业务数据,所述链表组包括第一链表和第二链表,所述第一链表和所述第二链表共享同一个链表存储区域。

为解决上述问题,本发明提供的业务数据的链表存储装置,包括:

链表组配置模块,用于基于待存储的多组业务数据,配置链表组,其中,所述链表组包括多个链表,一个链表对应于一组业务数据,所述链表组中的链表共享同一个链表存储区域;

存储模块,用于将所述多组业务数据分别存储至所述链表组对应的链表中。

上述的装置,所述链表组配置模块包括:

空间子模块,用于基于所述多组业务数据的实际长度或估计长度,确定所述链表组的链表存储区域的空间大小;

配置子模块,用于基于确定的所述链表组的链表存储区域的空间大小,配置所述链表组。

上述的装置,所述装置还包括:

业务数据选择模块,用于按照预设规则,从所述业务数据集合中选择所述多组业务数据。

上述的装置,所述业务数据选择模块,用于基于待存储的业务数据集合中各组业务数据的实际长度或估计长度,以及所述链表组的链表存储区域的空间大小,从所述业务数据集合中选择所述多组业务数据。

上述的装置,所述业务数据选择模块,用于按照长短搭配的原则,基于待存储的业务数据集合中各组业务数据的实际长度或估计长度,从所述业务数据集合中选择所述多组业务数据。

上述的装置,所述多组业务数据为相同类型的业务数据;或者

所述多组业务数据为不同类型的业务数据。

上述的装置,所述多组业务数据为报文的地址数据。

上述的装置,所述多组业务数据包括第一组业务数据和第二组业务数据,所述链表组包括第一链表和第二链表,所述第一链表和所述第二链表共享同一个链表存储区域。

本发明提供业务数据的链表存储方法,包括:基于待存储的多组业务数据,配置链表组,其中,所述链表组包括多个链表,一个链表对应于一组业务数据,所述链表组中的链表共享同一个链表存储区域;将所述多组业务数据分别存储至所述链表组对应的链表中。通过将多组业务数据配置链表组,且将链表组内的链表共享同一个链表存储区域,从而提高链表存储区域的利用率,降低业务数据存储的空间浪费率。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明一示范性实施例中的业务数据的链表存储方法的流程图;

图2为本发明又一示范性实施例中的业务数据的链表存储装置的结构示意图。

附图标记:

100-业务数据的链表存储装置;10-链表组配置模块;20-存储模块。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明一示范性实施例中的业务数据的链表存储方法的流程图。如图1所示,该方法包括:

s1:基于待存储的多组业务数据,配置链表组,其中,链表组包括多个链表,一个链表对应于一组业务数据,链表组中的链表共享同一个链表存储区域;

s2:将多组业务数据分别存储至链表组对应的链表中。

本发明实施例提供的业务数据的链表存储方法,通过将多组业务数据配置链表组,且将链表组内的链表共享同一个链表存储区域,从而提高链表存储区域的利用率,降低业务数据存储的空间浪费率。

其中,步骤s1中基于待存储的多组业务数据,配置链表组,包括:

s11:基于多组业务数据的实际长度或估计长度,确定链表组的链表存储区域的空间大小;

s12:基于确定的链表组的链表存储区域的空间大小,配置链表组。

作为变形,在步骤s1之前,还包括步骤s0:按照预设规则,从业务数据集合中选择多组业务数据。步骤s0包括:基于待存储的业务数据集合中各组业务数据的实际长度或估计长度,以及链表组的链表存储区域的空间大小,从业务数据集合中选择多组业务数据。具体的,在步骤s0中,预设规则可以是按照长短搭配的原则,基于待存储的业务数据集合中各组业务数据的实际长度或估计长度,从业务数据集合中选择多组业务数据。长短搭配的原则指根据业务数据的长度,至少一个较长的业务数据搭配至少一个较短的业务数据后两者一起配置链表组。当然,预设规则也可以是利用其他的搭配原则选择多组业务数据,不再赘述。

在步骤s1中,多组业务数据可以为相同类型的业务数据,也可以是不同类型的业务数据。而且,多组业务数据可以为报文的地址数据,具体可以为存储在fpga内置ram的报文的地址数据。此外,步骤s1中的同一个链表存储区域可以认为是同一块ram。

在步骤s1中,多组业务数据可以包括至少两组业务数据,例如两组业务数据、三组业务数据等等。对应的,链表组包括至少两条链表,例如两条链表、三条链表等。例如,多组业务数据包括第一组业务数据和第二组业务数据,链表组包括第一链表和第二链表,第一链表和第二链表共享同一个链表存储区域。

多组业务数据中,除第一组业务数据和第二组业务数据外,可以将其余的业务数据全部配置呈链表存储在上述的链表存储区上,也可以将其余的业务数据配置呈链表后存储在另一个链表存储区域,但任一个链表存储区域内均具有至少两条链表。

链表存储区域内包括至少两个地址,任一个地址可以储存其中一条链表的节点或不存储任何链表的节点,从而使得链表存储区域内的链表不会重合。当然,作为变形,链表存储区域内的多条链表之间可以部分重合。

沿链表存储区域的地址,至少两条链表的节点可以交叉排列。

图2为本发明又一示范性实施例中的时钟跟踪方法的结构示意图。如图2所示,链表存储装置100包括:链表组配置模块10和存储模块20。链表组配置模块10,用于基于待存储的多组业务数据,配置链表组,其中,所述链表组包括多个链表,一个链表对应于一组业务数据,所述链表组中的链表共享同一个链表存储区域。存储模块20,用于将所述多组业务数据分别存储至所述链表组对应的链表中。

本发明实施例提供的业务数据的链表存储装置100,通过将多组业务数据配置链表组,且将链表组内的链表共享同一个链表存储区域,从而提高链表存储区域的利用率,降低业务数据存储的空间浪费率。

链表组配置模块10包括空间子模块和配置子模块。空间子模块用于基于所述多组业务数据的实际长度或估计长度,确定所述链表组的链表存储区域的空间大小。配置子模块用于基于确定的所述链表组的链表存储区域的空间大小,配置所述链表组。

作为变形,上述装置还包括业务数据选择模块,用于按照预设规则,从所述业务数据集合中选择所述多组业务数据。具体的,可以用于基于待存储的业务数据集合中各组业务数据的实际长度或估计长度,以及所述链表组的链表存储区域的空间大小,从所述业务数据集合中选择所述多组业务数据。预设规则可以是按照长短搭配的原则,基于待存储的业务数据集合中各组业务数据的实际长度或估计长度,从所述业务数据集合中选择所述多组业务数据。长短搭配的原则指根据业务数据的长度,至少一个较长的业务数据搭配至少一个较短的业务数据后两者一起配置链表组。当然,预设规则也可以是利用其他的搭配原则选择多组业务数据,不再赘述。

多组业务数据可以为相同类型的业务数据,也可以是不同类型的业务数据。而且,多组业务数据可以为报文的地址数据,具体可以为存储在fpga内置ram的报文的地址数据。

其中,多组业务数据可以包括至少两组业务数据,例如两组业务数据、三组业务数据等等。对应的,链表组包括至少两条链表,例如两条链表、三条链表等。例如,多组业务数据包括第一组业务数据和第二组业务数据,链表组包括第一链表和第二链表,第一链表和第二链表共享同一个链表存储区域。

多组业务数据中,除第一组业务数据和第二组业务数据外,可以将其余的业务数据全部配置呈链表存储在上述的链表存储区上,也可以将其余的业务数据配置呈链表后存储在另一个链表存储区域,但任一个链表存储区域内均具有至少两条链表。

链表存储区域内包括至少两个地址,任一个地址可以储存其中一条链表的节点或不存储任何链表的节点,从而使得链表存储区域内的链表不会重合。当然,作为变形,链表存储区域内的多条链表之间可以部分重合。

沿链表存储区域的地址,至少两条链表的节点可以交叉排列。

以上所述的具体实例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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