共享链表管理方法、装置及设备制造方法及图纸

技术编号:36809236 阅读:9 留言:0更新日期:2023-03-09 00:34
本发明专利技术提供一种共享链表管理方法、装置及设备。该方法包括:配置缓存单元管理链表;当写入数据包时,为所述数据包申请缓存单元,将申请的缓存单元对应的节点从缓存单元管理链表中取出,并根据取出的节点构建所述数据包的包管理链表;当读取数据包时,释放所述数据包对应的缓存单元,将释放的缓存单元对应的节点还原至缓存单元管理链表。通过本发明专利技术,实现了节点被缓存单元管理链表和包管理链表共享,大大减少了对缓存单元进行管理以及对包链表进行管理所需要的管理资源。管理所需要的管理资源。管理所需要的管理资源。

【技术实现步骤摘要】
共享链表管理方法、装置及设备


[0001]本专利技术涉及数据存储
,尤其涉及一种共享链表管理方法、装置及设备。

技术介绍

[0002]当系统缓存规模较大时,采用降低缓存颗粒度的方式,可以有效提高缓存利用率。所谓缓存颗粒度,即将整个缓存空间划分为若干个基本缓存单元,每个缓存单元的大小就代表了缓存颗粒度,每个数据包占用一个或者多个缓存单元。缓存颗粒度越小,表示缓存空间被划分的越精细,则能够被浪费的缓存空间也越小。
[0003]但随着缓存颗粒度的变小,在相同的缓存容量下,需要进行管理的缓存单元就会增多,另外,当一个数据包占用多个缓存单元时,为保持整包的完整性,需要对该数据包的所有缓存单元进行关联处理,即采用包链表的方式来实现。
[0004]目前,缓存单元管理和包链表管理采用独立的设计,随着缓存规模的增加,缓存单元管理和包链表管理会消耗大量的管理资源。

技术实现思路

[0005]本专利技术的主要目的在于提供一种共享链表管理方法、装置及设备,旨在解决现有技术中缓存单元管理和包链表管理消耗大量管理资源的技术问题。
[0006]第一方面,本专利技术提供一种共享链表管理方法,所述共享链表管理方法包括:
[0007]配置缓存单元管理链表,其中,缓存单元管理链表中尾节点的内容为无效值,其他节点的内容为本节点对应的缓存单元的下一个缓存单元的地址;
[0008]当写入数据包时,为所述数据包申请缓存单元,将申请的缓存单元对应的节点从缓存单元管理链表中取出,并根据取出的节点构建所述数据包的包管理链表;
[0009]当读取数据包时,释放所述数据包对应的缓存单元,将释放的缓存单元对应的节点还原至缓存单元管理链表。
[0010]可选的,所述当写入数据包时,为所述数据包申请缓存单元的步骤包括:
[0011]当写入数据包时,检测缓存单元管理链表中的首节点的内容是否为无效值,若不为无效值,则申请所述首节点对应的缓存单元,以供写入数据包的包数据,并更新缓存单元管理链表中的首节点为所述首节点的内容对应的节点;
[0012]检测数据包的包尾是否已写入;
[0013]若未写入,则返回所述检测缓存单元管理链表中的首节点的内容是否为无效值的步骤,直至数据包的包尾已写入。
[0014]可选的,所述数据包的包管理链表中除最后一个节点外的其他节点的内容为各自的后一个申请的缓存单元的地址。
[0015]可选的,在所述根据取出的节点构建所述数据包的包管理链表的步骤之后,还包括:
[0016]生成并存储所述数据包的包描述信息,所述包描述信息包括为所述数据包申请的
第一个缓存单元的地址以及所述数据包的字节长度。
[0017]可选的,所述当读取数据包时,释放所述数据包对应的缓存单元,将释放的缓存单元对应的节点还原至缓存单元管理链表的步骤包括:
[0018]当读取数据包时,获取所述数据包的包描述信息;
[0019]根据所述包描述信息,从为所述数据包申请的第一个缓存单元中读取包数据,并更新缓存单元管理链表的尾节点是为所述数据包申请的第一个缓存单元对应的节点;
[0020]检测数据包的包尾是否已读取;
[0021]若未读取,则从为所述数据包申请的后一个缓存单元中读取包数据,并更新缓存单元管理链表的尾节点是为所述数据包申请的后一个缓存单元对应的节点,其中,后一个申请的缓存单元根据前一个申请的缓存单元对应的节点的内容确定;
[0022]返回所述检测数据包的包尾是否已读取的步骤,直至数据包的包尾已读取。
[0023]可选的,所述数据包的包管理链表中最后一个节点的内容为所述数据包的校验值,所述校验值基于对为所述数据包申请的所有缓存单元的地址进行预设运算得到。
[0024]可选的,在所述直至数据包的包尾已读取的步骤之后,还包括:
[0025]对读取的所有缓存单元的地址进行预设运算得到待验证校验值;
[0026]检测所述待验证校验值与最后一次读取的缓存单元对应的节点的内容是否一致;
[0027]若一致,则确定数据包读取正确。
[0028]可选的,所述共享链表管理方法还包括:
[0029]将初始缓存单元管理链表中各个节点的状态设置为空闲状态,将被申请的缓存单元对应的节点的状态设置为占用状态,将被释放的缓存单元对应的节点的状态设置为空闲状态;
[0030]当待申请的缓存单元对应的节点的状态为占用状态时,确定释放存在错误;
[0031]当待释放的缓存单元对应的节点的状态为空闲状态时,确定申请存在错误。
[0032]第二方面,本专利技术还提供一种共享链表管理装置,所述共享链表管理装置包括:
[0033]配置模块,用于配置缓存单元管理链表;
[0034]申请模块,用于当写入数据包时,为所述数据包申请缓存单元,将申请的缓存单元对应的节点从缓存单元管理链表中取出,并根据取出的节点构建所述数据包的包管理链表;
[0035]释放模块,用于当读取数据包时,释放所述数据包对应的缓存单元,将释放的缓存单元对应的节点还原至缓存单元管理链表。
[0036]第三方面,本专利技术还提供一种共享链表管理设备,所述共享链表管理设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的共享链表管理程序,其中所述共享链表管理程序被所述处理器执行时,实现如上所述的共享链表管理方法的步骤。
[0037]本专利技术中,配置缓存单元管理链表,其中,缓存单元管理链表中尾节点的内容为无效值,其他节点的内容为本节点对应的缓存单元的下一个缓存单元的地址;当写入数据包时,为所述数据包申请缓存单元,将申请的缓存单元对应的节点从缓存单元管理链表中取出,并根据取出的节点构建所述数据包的包管理链表;当读取数据包时,释放所述数据包对应的缓存单元,将释放的缓存单元对应的节点还原至缓存单元管理链表。通过本专利技术,当有数据包写入缓存单元时,被申请的缓存单元对应的节点构成该数据包的包管理链表,当缓
存单元被释放,则被释放的缓存单元对应的节点还原至缓存单元管理链表,即实现了节点被缓存单元管理链表和包管理链表共享,大大减少了对缓存单元进行管理以及对包链表进行管理所需要的管理资源。
附图说明
[0038]图1为本专利技术共享链表管理方法一实施例的流程示意图;
[0039]图2为本专利技术共享链表管理方法一实施例中缓存单元管理链表的示意图;
[0040]图3为本专利技术共享链表管理方法一实施例中申请缓存单元的流程示意图;
[0041]图4为本专利技术共享链表管理方法一实施例中缓存单元管理链表与包管理链表共存的示意图;
[0042]图5为图1中步骤S30的细化流程示意图;
[0043]图6为本专利技术共享链表管理方法另一实施例中缓存单元管理链表的示意图;
[0044]图7为本专利技术共享链表管理装置一实施例的功能模块示意图。
[0045]本专利技术目的的实现、功能特点及优点将结合实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种共享链表管理方法,其特征在于,所述共享链表管理方法包括:配置缓存单元管理链表,其中,缓存单元管理链表中尾节点的内容为无效值,其他节点的内容为本节点对应的缓存单元的下一个缓存单元的地址;当写入数据包时,为所述数据包申请缓存单元,将申请的缓存单元对应的节点从缓存单元管理链表中取出,并根据取出的节点构建所述数据包的包管理链表;当读取数据包时,释放所述数据包对应的缓存单元,将释放的缓存单元对应的节点还原至缓存单元管理链表。2.如权利要求1所述的共享链表管理方法,其特征在于,所述当写入数据包时,为所述数据包申请缓存单元的步骤包括:当写入数据包时,检测缓存单元管理链表中的首节点的内容是否为无效值,若不为无效值,则申请所述首节点对应的缓存单元,以供写入数据包的包数据,并更新缓存单元管理链表中的首节点为所述首节点的内容对应的节点;检测数据包的包尾是否已写入;若未写入,则返回所述检测缓存单元管理链表中的首节点的内容是否为无效值的步骤,直至数据包的包尾已写入。3.如权利要求2所述的共享链表管理方法,其特征在于,所述数据包的包管理链表中除最后一个节点外的其他节点的内容为各自的后一个申请的缓存单元的地址。4.如权利要求3所述的共享链表管理方法,其特征在于,在所述根据取出的节点构建所述数据包的包管理链表的步骤之后,还包括:生成并存储所述数据包的包描述信息,所述包描述信息包括为所述数据包申请的第一个缓存单元的地址以及所述数据包的字节长度。5.如权利要求4所述的共享链表管理方法,其特征在于,所述当读取数据包时,释放所述数据包对应的缓存单元,将释放的缓存单元对应的节点还原至缓存单元管理链表的步骤包括:当读取数据包时,获取所述数据包的包描述信息;根据所述包描述信息,从为所述数据包申请的第一个缓存单元中读取包数据,并更新缓存单元管理链表的尾节点是为所述数据包申请的第一个缓存单元对应的节点;检测数据包的包尾是否已读取;若未读取,则从为所述数据包申请的后一个缓存单元中读取包数...

【专利技术属性】
技术研发人员:李祥辉杨彦波梁世江
申请(专利权)人:武汉飞思灵微电子技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1