用一个或多个精确匹配查找扩展最佳匹配查找算法制造技术

技术编号:35257856 阅读:30 留言:0更新日期:2022-10-19 10:15
本公开涉及用一个或多个精确匹配查找扩展最佳匹配查找算法。一种使用TCAM表和至少一个精确匹配EM表确定输入的最佳匹配的计算机实施的方法。每个EM表具有指派的优先级值,并且每个TCAM条目具有指派的优先级值。首先执行TCAM查找,并将最佳匹配TCAM条目的输出优先级值与EM表优先级值进行比较。如果所述EM表中的任一者的所述优先级值小于最佳匹配TCAM条目优先级值,则首先执行最低优先级EM查找,接着执行任何子序列EM表查找,直到发现匹配为止。如果发现匹配的精确匹配条目,则所述条目是所述最佳匹配,并且返回相关联的输出数据,否则返回与所述最佳匹配TCAM条目相关联的输出数据。据。据。

【技术实现步骤摘要】
用一个或多个精确匹配查找扩展最佳匹配查找算法


[0001]本说明书涉及用于使用三态内容可寻址存储器(TCAM)表和至少一个精确匹配(EM)表来确定输入的最佳匹配的计算机实施的方法和集成电路。

技术介绍

[0002]三态最佳匹配算法通常需要使用三态内容可寻址存储器(TCAM或三态CAM)。这是一种特殊类型的CAM。一般来说,可将CAM描述为与随机存取存储器(RAM)相反。为了从RAM检索数据,操作系统必须提供存储数据的存储器地址。相比之下,存储在CAM上的数据可通过执行内容自身的查找来存取,并且存储器检索可发现所述数据的地址。由此,与RAM相比,使用CAM和TCAM来查找匹配的数据所花费的时间快得多。然而,TCAM是构建起来较昂贵并且消耗大量电力的稀少硬件资源。由此,TCAM往往较小,并且必须谨慎地管理TCAM的使用。
[0003]基于精确匹配散列的算法通常不需要使用专门的存储器,例如TCAM。因此,精确匹配算法可利用更便宜、更充裕的存储器。

技术实现思路

[0004]在随附的独立权利要求和附属权利要求中阐述本公开的各方面。来自附属权利要求的特征的组合可在适当时与独立权利要求的特征组合,而不仅仅是按权利要求中明确地陈述的那样组合。
[0005]根据本公开的第一方面,提供一种确定输入的最佳匹配的计算机实施的方法,所述方法包括:提供三态内容可寻址存储器TCAM表,所述TCAM表被配置成存储多个TCAM条目,其中每个TCAM条目具有相关联输出结果并且每个TCAM条目被指派优先级值;提供精确匹配表,其中所述精确匹配表被配置成存储多个精确匹配关键字,其中每个精确匹配关键字具有相关联输出结果,并且所述精确匹配表被指派优先级值;接收所述输入;从所述输入生成TCAM查找关键字;使用所述TCAM查找关键字执行TCAM查找以确定最佳匹配TCAM条目;将所述最佳匹配TCAM条目的所述优先级值与所述精确匹配表的所述优先级值进行比较;响应于确定所述精确匹配表的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,执行精确匹配查找过程,这包括从所述输入生成精确匹配查找关键字以及使用所述精确匹配查找关键字来确定所述精确匹配表中是否含有匹配的精确匹配关键字,并且如果未标识出匹配的精确匹配关键字,则返回与所述最佳匹配TCAM条目相关联的所述输出结果以作为所述最佳匹配,而如果标识出匹配的精确匹配关键字,则返回与所述匹配的精确匹配关键字相关联的所述输出结果以作为所述最佳匹配。
[0006]每个TCAM条目包括关键字和具有与所述关键字相同大小的掩码。应了解,TCAM是本领域的技术人员应熟悉的行业标准。每个TCAM条目具有相关联的优先级值和输出结果,所述优先级值和输出结果未存储在TCAM表本身中。
[0007]因此,本公开提供一种最佳匹配算法,其通过将具有相同TCAM掩码值的至少一组条目从TCAM存储器迁移到至少一个精确匹配表来高效使用TCAM存储器。因此,三态最佳匹
配查找算法通过一个或多个有条件地执行的精确匹配查找得以扩展。这允许减小所需的TCAM,从而减小制造成本和电力消耗。
[0008]在TCAM表中或精确匹配表中可含有何种数据的方面,本公开也不会受限制。
[0009]每个TCAM条目被指派优先级值,所述优先级值与指派给每个精确匹配表的优先级值进行比较。所述优先级值存储在相关联存储器(而非TCAM)中。
[0010]TCAM表中的每个条目(即,每个TCAM关键字和掩码)具有相关联索引值。按照惯例,条目按最低索引值到最高索引值的次序存储在TCAM表中。最佳匹配TCAM条目被定义为具有最低索引值的匹配的TCAM条目。
[0011]优选的是,基于所述索引值分配指派给每个TCAM条目的优先级值,使得TCAM表中的条目也从最低优先级到最高优先级排序。因此,最佳匹配TCAM条目还可以是具有最低(或等同最低)优先级值的匹配的TCAM条目。
[0012]本领域技术人员应了解,存在若干方法来用于从输入生成TCAM查找关键字和精确匹配查找关键字。
[0013]与每个TCAM条目相关联的输出结果和与每个精确匹配关键字相关联的输出结果可包括详述如何对输入作出响应或进行处理的指令。例如,输出结果可包括转发指令、速率管制指令、保持或舍弃输入的指令等。由此,除标识出输入的最佳匹配之外,本公开还可返回指示响应于输入应采取什么动作的输出结果(即,应如何处理输入)。
[0014]所述方法还可包括提供多个精确匹配表,其中所述多个精确匹配表中存储的每个精确匹配关键字具有相关联输出结果,并且每个精确匹配表被指派优先级值。
[0015]任选地,相对于精确匹配表的优先级限定每个TCAM条目的优先级值,反之亦然。
[0016]每个精确匹配表包括可含于TCAM表中的一组数据条目。如果来自给定精确匹配表的精确匹配条目含于TCAM表中,则所述精确匹配条目将各自具有相同的掩码值。因此,指派给精确匹配表的优先级值可通过精确匹配条目相对于TCAM条目将处在TCAM表中的位置来确定。
[0017]例如,如果提供两个精确匹配表,则指派给TCAM条目的优先级值可在0到2的范围内。任选地,第一精确匹配表的优先级值可为0,而第二精确匹配表的优先级值可为1。
[0018]如果提供多个精确匹配表,则所述方法可包括将最佳匹配TCAM条目的优先级值与每个精确匹配表的优先级值进行比较。
[0019]响应于确定所述多个精确匹配表中的一者的优先级值小于最佳匹配TCAM条目的优先级值,可针对所述精确匹配表执行精确匹配查找过程。如果未标识出匹配的精确匹配关键字,则所述方法可包括返回与所述最佳匹配TCAM条目相关联的输出结果以作为最佳匹配。如果标识出匹配的精确匹配关键字,则所述方法可包括返回与所述匹配的精确匹配关键字相关联的输出结果以作为最佳匹配。
[0020]TCAM查找关键字可包括选自所述输入的多个字段。精确匹配查找关键字可包括选自所述输入的至少一个字段。
[0021]在一些实施例中,精确匹配查找关键字可以是用于建构TCAM查找关键字的字段的子集。
[0022]如果提供多个精确匹配表,则针对每个精确匹配表生成的精确匹配查找关键字可能不相同。在一些实施例中,可针对每个精确匹配表(从同一输入)生成不同精确匹配查找
关键字。
[0023]例如,可针对第一精确匹配表生成包括字段{x,y}的第一精确匹配查找关键字,并且可针对第二精确匹配表生成包括字段{w,y,z}的第二精确匹配查找关键字。每个精确匹配查找关键字中所含的字段数目可不相同。
[0024]任选地,响应于确定多个精确匹配表中的两个或更多个精确匹配表的优先级值小于最佳匹配TCAM条目的优先级值,所述方法包括确定两个或更多个精确匹配表中的哪一精确匹配表具有最低优先级值。可通过以下操作来针对具有最低优先级值的精确匹配表执行精确匹配查找过程:针对具有最低优先级值的精确匹配表,从所述输入生成第一精确匹配查找关键字;以及使用所述第一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种确定输入的最佳匹配的计算机实施的方法,其特征在于,包括:提供三态内容可寻址存储器TCAM表,所述TCAM表被配置成存储多个TCAM条目,其中每个TCAM条目具有相关联输出结果并且每个TCAM条目被指派优先级值;提供精确匹配表,其中所述精确匹配表被配置成存储多个精确匹配关键字,其中每个精确匹配关键字具有相关联输出结果,并且所述精确匹配表被指派优先级值;接收所述输入;从所述输入生成TCAM查找关键字;使用所述TCAM查找关键字执行TCAM查找以确定最佳匹配TCAM条目;将所述最佳匹配TCAM条目的所述优先级值与所述精确匹配表的所述优先级值进行比较;响应于确定所述精确匹配表的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,执行精确匹配查找过程,包括:从所述输入生成精确匹配查找关键字;以及使用所述精确匹配查找关键字来确定所述精确匹配表中是否含有匹配的精确匹配关键字;并且如果未标识出匹配的精确匹配关键字,则返回与所述最佳匹配TCAM条目相关联的所述输出结果以作为所述最佳匹配;以及如果标识出匹配的精确匹配关键字,则返回与所述匹配的精确匹配关键字相关联的所述输出结果以作为所述最佳匹配。2.根据权利要求1所述的计算机实施的方法,其特征在于,还包括:提供多个精确匹配表,其中所述多个精确匹配表中存储的每个精确匹配关键字具有相关联输出结果,并且每个精确匹配表被指派优先级值;将所述最佳匹配TCAM条目的所述优先级值与每个精确匹配表的所述优先级值进行比较;以及响应于确定所述多个精确匹配表中的一者的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,所述方法如权利要求1所述继续进行。3.根据权利要求2所述的计算机实施的方法,其特征在于,响应于确定所述多个精确匹配表中的两个或更多个精确匹配表的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,所述方法包括:确定所述两个或更多个精确匹配表中的哪一精确匹配表具有最低优先级值;通过以下操作来执行精确匹配查找过程:针对具有所述最低优先级值的所述精确匹配表,从所述输入生成第一精确匹配查找关键字;以及使用所述第一精确匹配查找关键字以确定匹配的精确匹配关键字是否含于具有所述最低优先级值的所述精确匹配表中;响应于未标识出匹配的精确匹配关键字,针对所述两个或更多个精确匹配表中的每一者按最低优先级值到最高优先级值的次序重复所述精确匹配查找过程,直到标识出匹配的精确匹配关键字为止,以及如果标识出匹配的精确匹配关键字,则返回与所述匹配的精确匹配关键字相关联的所
述输出结果以作为所述最佳匹配;并且如果在所述两个或更多个精确匹配表中未标识出匹配的精确匹配关键字,则返回与所述最佳匹配TCAM条目相关联的所述输出结果以作为所述最佳匹配。4.根据权利要求1所述的计算机实施的方法,其特征在于,响应于确定所述最佳匹配TCAM条目的所述优先级值小于所述或每个精确匹配表的所述优先级值,返回与所述最佳匹配TCAM条目相关联的所述输出结果以作为所述最佳匹配。5.根据权利要求1所述的计算机实施的方法,其特征在于,如果未标识出最佳匹配TCAM条目并且未标识出匹配的精确匹配关键字,则返回默认输出结果;或其中所述TCAM表包括具有相关联默认输出结果的默认条目,并且所述默认条目被指派所述最高优先级值,使得如果未标识出具有较低优先级值的匹配的TCAM条目,则确定所述默认条目为所述最佳匹配TCAM条目。6.根据权利要求1所述的计算机实施的方法,其特征在于,还包括:将优先...

【专利技术属性】
技术研发人员:B
申请(专利权)人:恩智浦有限公司
类型:发明
国别省市:

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

1