表项存储方法、装置、交换芯片、网络设备和存储介质制造方法及图纸

技术编号:37488298 阅读:24 留言:0更新日期:2023-05-07 09:27
本发明专利技术涉及通信技术领域,提供一种表项存储方法、装置、交换芯片、网络设备和存储介质。当网络设备的CPU请求RAM存储待处理表项并接收到RAM反馈的哈希冲突消息时,读取待处理表项对应的目标哈希桶的所有表项,并按照待处理表项的宽度对目标哈希桶进行划分得到每个哈希槽;依次确认每个哈希槽是否为目标哈希槽,目标哈希槽中每个表项的宽度均小于待处理表项的宽度;若当前哈希槽为目标哈希槽且其占用空间小于或者等于TCAM的剩余空间,则将当前哈希槽中的全部表项搬移至TCAM,并将待处理表项存储至当前哈希槽。在发生哈希冲突时通过表项搬移以将占用空间较大的表项存储到RAM,从而解决了哈希冲突并提高了RAM的利用率。解决了哈希冲突并提高了RAM的利用率。解决了哈希冲突并提高了RAM的利用率。

【技术实现步骤摘要】
表项存储方法、装置、交换芯片、网络设备和存储介质


[0001]本专利技术涉及通信
,具体而言,涉及一种表项存储方法、装置、交换芯片、网络设备和存储介质。

技术介绍

[0002]在通信
的网络设备中,可以采用哈希算法将表项存储到RAM(Random Access Memory,随机存取存储器)。为了降低存储成本,不同类型的表项会存储到同一哈希值对应的存储空间中。对于不同类型的表项,其宽度不同。由于哈希算法会将表项随机均匀地存储在RAM中,这样就会导致地址连续的空间减少,而多宽表项又需要必须占用地址连续的存储空间,所以很容易发生哈希冲突。
[0003]目前虽然有采用TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)来解决部分哈希冲突的方式,但是往往会导致RAM的利用率低。并且,表项存储的顺序会影响存储结果,那么在某些业务场景下就有可能导致网络设备无法正常工作。

技术实现思路

[0004]有鉴于此,本专利技术的目的在于提供一种表项存储方法、装置、交换芯片、网络设备和存储介质。
[0005]为了实现上述目的,本专利技术采用的技术方案如下:
[0006]第一方面,本专利技术提供一种表项存储方法,应用于网络设备的中央处理器CPU,所述网络设备还包括与所述CPU通信连接的随机存取存储器RAM和三态内容寻址存储器TCAM,所述RAM包括多个哈希桶,所述方法包括:
[0007]当请求所述RAM存储待处理表项并接收到所述RAM反馈的哈希冲突消息时,读取所述待处理表项对应的目标哈希桶中的所有表项,并按照所述待处理表项的宽度对所述目标哈希桶进行划分得到每个哈希槽,所述哈希槽存储有至少一个表项;
[0008]依次确认每个所述哈希槽是否为目标哈希槽,所述目标哈希槽中每个表项的宽度均小于所述待处理表项的宽度;
[0009]若当前哈希槽为所述目标哈希槽且所述当前哈希槽中全部表项的占用空间小于或者等于所述TCAM的剩余空间,则将所述当前哈希槽中的全部表项搬移至所述TCAM,并将所述待处理表项存储至所述当前哈希槽。
[0010]在可选的实施方式中,所述读取所述待处理表项对应的目标哈希桶中的所有表项的步骤,包括:
[0011]根据所述待处理表项计算哈希值,得到目标哈希值;
[0012]在所述RAM中确定所述目标哈希值对应的目标哈希桶,并读取所述目标哈希桶中的所有表项。
[0013]在可选的实施方式中,所述将所述当前哈希槽中的全部表项搬移至所述TCAM的步骤,包括:
[0014]将所述当前哈希槽中的全部表项写入所述TCAM,并在所述RAM中删除所述当前哈希槽中的全部表项。
[0015]在可选的实施方式中,所述方法还包括:
[0016]若每个所述哈希槽均非所述目标哈希槽且所述待处理表项的占用空间小于或者等于所述TCAM的剩余空间,则将所述待处理表项存储至所述TCAM。
[0017]在可选的实施方式中,所述方法还包括:
[0018]依次将所述当前哈希槽中每个表项的占用空间与所述目标哈希桶的剩余空间进行比较;
[0019]若当前表项的占用空间小于或者等于所述目标哈希桶的剩余空间,则将所述当前表项搬移至所述目标哈希桶。
[0020]在可选的实施方式中,所述方法还包括:
[0021]若所述当前表项的占用空间大于所述目标哈希桶的剩余空间,则将所述当前表项保留在所述TCAM。
[0022]第二方面,本专利技术提供一种表项存储装置,应用于网络设备的中央处理器CPU,所述网络设备还包括与所述CPU通信连接的随机存取存储器RAM和三态内容寻址存储器TCAM,所述RAM包括多个哈希桶,所述装置包括:
[0023]划分模块,用于当请求所述RAM存储待处理表项并接收到所述RAM反馈的哈希冲突消息时,读取所述待处理表项对应的目标哈希桶中的所有表项,并按照所述待处理表项的宽度对所述目标哈希桶进行划分得到每个哈希槽,所述哈希槽存储有至少一个表项;
[0024]确认模块,用于依次确认每个所述哈希槽是否为目标哈希槽,所述目标哈希槽中每个表项的宽度均小于所述待处理表项的宽度;
[0025]处理模块,用于若当前哈希槽为所述目标哈希槽且所述当前哈希槽中全部表项的占用空间小于或者等于所述TCAM的剩余空间,则将所述当前哈希槽中的全部表项搬移至所述TCAM,并将所述待处理表项存储至所述当前哈希槽。
[0026]第三方面,本专利技术提供一种交换芯片,包括通信连接的CPU、RAM和TCAM,所述CPU用于实现前述实施方式中任一项所述的方法。
[0027]第四方面,本专利技术提供一种网络设备,包括通信连接的CPU、RAM和TCAM,所述CPU用于实现前述实施方式中任一项所述的方法。
[0028]第五方面,本专利技术提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现前述实施方式中任一项所述的方法。
[0029]本专利技术提供的表项存储方法、装置、交换芯片、网络设备和存储介质,网络设备包括通信连接的CPU、RAM和TCAM;当CPU请求RAM存储待处理表项并接收到RAM反馈的哈希冲突消息时,读取待处理表项对应的目标哈希桶中的所有表项,并按照待处理表项的宽度对目标哈希桶进行划分得到每个哈希槽,哈希槽存储有至少一个表项;依次确认每个哈希槽是否为目标哈希槽,目标哈希槽中每个表项的宽度均小于待处理表项的宽度;若当前哈希槽为目标哈希槽且当前哈希槽中全部表项的占用空间小于或者等于TCAM的剩余空间,则将当前哈希槽中的全部表项搬移至TCAM,并将待处理表项存储至当前哈希槽。在发生哈希冲突时对哈希桶进行哈希槽划分并将哈希槽中表项的宽度与要存储表项的宽度进行比较,以通过将占用空间较小的表项搬移至TCAM,使占用空间较大的表项存储到RAM,从而解决了哈希
冲突同时提高了RAM的利用率。
[0030]为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0031]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0032]图1示出了本专利技术实施例提供的网络设备方框示意图;
[0033]图2示出了本专利技术实施例提供的表项存储方法的一种流程示意图;
[0034]图3示出了本专利技术实施例提供的表项存储方法的又一种流程示意图;
[0035]图4示出了本专利技术实施例提供的表项存储方法的一个示例图;
[0036]图5示出了本专利技术实施例提供的表项存储方法的又一个示例图;
[0037]图6示出了本专利技术实施例提供的表项存储方法的又一个示例图;
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种表项存储方法,其特征在于,应用于网络设备的中央处理器CPU,所述网络设备还包括与所述CPU通信连接的随机存取存储器RAM和三态内容寻址存储器TCAM,所述RAM包括多个哈希桶,所述方法包括:当请求所述RAM存储待处理表项并接收到所述RAM反馈的哈希冲突消息时,读取所述待处理表项对应的目标哈希桶中的所有表项,并按照所述待处理表项的宽度对所述目标哈希桶进行划分得到每个哈希槽,所述哈希槽存储有至少一个表项;依次确认每个所述哈希槽是否为目标哈希槽,所述目标哈希槽中每个表项的宽度均小于所述待处理表项的宽度;若当前哈希槽为所述目标哈希槽且所述当前哈希槽中全部表项的占用空间小于或者等于所述TCAM的剩余空间,则将所述当前哈希槽中的全部表项搬移至所述TCAM,并将所述待处理表项存储至所述当前哈希槽。2.根据权利要求1所述的方法,其特征在于,所述读取所述待处理表项对应的目标哈希桶中的所有表项的步骤,包括:根据所述待处理表项计算哈希值,得到目标哈希值;在所述RAM中确定所述目标哈希值对应的目标哈希桶,并读取所述目标哈希桶中的所有表项。3.根据权利要求1所述的方法,其特征在于,所述将所述当前哈希槽中的全部表项搬移至所述TCAM的步骤,包括:将所述当前哈希槽中的全部表项写入所述TCAM,并在所述RAM中删除所述当前哈希槽中的全部表项。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:若每个所述哈希槽均非所述目标哈希槽且所述待处理表项的占用空间小于或者等于所述TCAM的剩余空间,则将所述待处理表项存储至所述TCAM。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:依次将所述当前哈希槽中每个表项的占用空间与所述目...

【专利技术属性】
技术研发人员:齐朋冲
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:

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

1