CN115203493A - 用一个或多个精确匹配查找扩展最佳匹配查找算法 - Google Patents

用一个或多个精确匹配查找扩展最佳匹配查找算法 Download PDF

Info

Publication number
CN115203493A
CN115203493A CN202210284598.6A CN202210284598A CN115203493A CN 115203493 A CN115203493 A CN 115203493A CN 202210284598 A CN202210284598 A CN 202210284598A CN 115203493 A CN115203493 A CN 115203493A
Authority
CN
China
Prior art keywords
exact match
tcam
match
priority value
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210284598.6A
Other languages
English (en)
Inventor
B·F·圣丹尼斯
J·皮勒
J·L·哈德曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
NXP BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP BV filed Critical NXP BV
Publication of CN115203493A publication Critical patent/CN115203493A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

用一个或多个精确匹配查找扩展最佳匹配查找算法
技术领域
本说明书涉及用于使用三态内容可寻址存储器(TCAM)表和至少一个精确匹配(EM)表来确定输入的最佳匹配的计算机实施的方法和集成电路。
背景技术
三态最佳匹配算法通常需要使用三态内容可寻址存储器(TCAM或三态CAM)。这是一种特殊类型的CAM。一般来说,可将CAM描述为与随机存取存储器(RAM)相反。为了从RAM检索数据,操作系统必须提供存储数据的存储器地址。相比之下,存储在CAM上的数据可通过执行内容自身的查找来存取,并且存储器检索可发现所述数据的地址。由此,与RAM相比,使用CAM和TCAM来查找匹配的数据所花费的时间快得多。然而,TCAM是构建起来较昂贵并且消耗大量电力的稀少硬件资源。由此,TCAM往往较小,并且必须谨慎地管理TCAM的使用。
基于精确匹配散列的算法通常不需要使用专门的存储器,例如TCAM。因此,精确匹配算法可利用更便宜、更充裕的存储器。
发明内容
在随附的独立权利要求和附属权利要求中阐述本公开的各方面。来自附属权利要求的特征的组合可在适当时与独立权利要求的特征组合,而不仅仅是按权利要求中明确地陈述的那样组合。
根据本公开的第一方面,提供一种确定输入的最佳匹配的计算机实施的方法,所述方法包括:提供三态内容可寻址存储器TCAM表,所述TCAM表被配置成存储多个TCAM条目,其中每个TCAM条目具有相关联输出结果并且每个TCAM条目被指派优先级值;提供精确匹配表,其中所述精确匹配表被配置成存储多个精确匹配关键字,其中每个精确匹配关键字具有相关联输出结果,并且所述精确匹配表被指派优先级值;接收所述输入;从所述输入生成TCAM查找关键字;使用所述TCAM查找关键字执行TCAM查找以确定最佳匹配TCAM条目;将所述最佳匹配TCAM条目的所述优先级值与所述精确匹配表的所述优先级值进行比较;响应于确定所述精确匹配表的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,执行精确匹配查找过程,这包括从所述输入生成精确匹配查找关键字以及使用所述精确匹配查找关键字来确定所述精确匹配表中是否含有匹配的精确匹配关键字,并且如果未标识出匹配的精确匹配关键字,则返回与所述最佳匹配TCAM条目相关联的所述输出结果以作为所述最佳匹配,而如果标识出匹配的精确匹配关键字,则返回与所述匹配的精确匹配关键字相关联的所述输出结果以作为所述最佳匹配。
每个TCAM条目包括关键字和具有与所述关键字相同大小的掩码。应了解,TCAM是本领域的技术人员应熟悉的行业标准。每个TCAM条目具有相关联的优先级值和输出结果,所述优先级值和输出结果未存储在TCAM表本身中。
因此,本公开提供一种最佳匹配算法,其通过将具有相同TCAM掩码值的至少一组条目从TCAM存储器迁移到至少一个精确匹配表来高效使用TCAM存储器。因此,三态最佳匹配查找算法通过一个或多个有条件地执行的精确匹配查找得以扩展。这允许减小所需的TCAM,从而减小制造成本和电力消耗。
在TCAM表中或精确匹配表中可含有何种数据的方面,本公开也不会受限制。
每个TCAM条目被指派优先级值,所述优先级值与指派给每个精确匹配表的优先级值进行比较。所述优先级值存储在相关联存储器(而非TCAM)中。
TCAM表中的每个条目(即,每个TCAM关键字和掩码)具有相关联索引值。按照惯例,条目按最低索引值到最高索引值的次序存储在TCAM表中。最佳匹配TCAM条目被定义为具有最低索引值的匹配的TCAM条目。
优选的是,基于所述索引值分配指派给每个TCAM条目的优先级值,使得TCAM表中的条目也从最低优先级到最高优先级排序。因此,最佳匹配TCAM条目还可以是具有最低(或等同最低)优先级值的匹配的TCAM条目。
本领域技术人员应了解,存在若干方法来用于从输入生成TCAM查找关键字和精确匹配查找关键字。
与每个TCAM条目相关联的输出结果和与每个精确匹配关键字相关联的输出结果可包括详述如何对输入作出响应或进行处理的指令。例如,输出结果可包括转发指令、速率管制指令、保持或舍弃输入的指令等。由此,除标识出输入的最佳匹配之外,本公开还可返回指示响应于输入应采取什么动作的输出结果(即,应如何处理输入)。
所述方法还可包括提供多个精确匹配表,其中所述多个精确匹配表中存储的每个精确匹配关键字具有相关联输出结果,并且每个精确匹配表被指派优先级值。
任选地,相对于精确匹配表的优先级限定每个TCAM条目的优先级值,反之亦然。
每个精确匹配表包括可含于TCAM表中的一组数据条目。如果来自给定精确匹配表的精确匹配条目含于TCAM表中,则所述精确匹配条目将各自具有相同的掩码值。因此,指派给精确匹配表的优先级值可通过精确匹配条目相对于TCAM条目将处在TCAM表中的位置来确定。
例如,如果提供两个精确匹配表,则指派给TCAM条目的优先级值可在0到2的范围内。任选地,第一精确匹配表的优先级值可为0,而第二精确匹配表的优先级值可为1。
如果提供多个精确匹配表,则所述方法可包括将最佳匹配TCAM条目的优先级值与每个精确匹配表的优先级值进行比较。
响应于确定所述多个精确匹配表中的一者的优先级值小于最佳匹配TCAM条目的优先级值,可针对所述精确匹配表执行精确匹配查找过程。如果未标识出匹配的精确匹配关键字,则所述方法可包括返回与所述最佳匹配TCAM条目相关联的输出结果以作为最佳匹配。如果标识出匹配的精确匹配关键字,则所述方法可包括返回与所述匹配的精确匹配关键字相关联的输出结果以作为最佳匹配。
TCAM查找关键字可包括选自所述输入的多个字段。精确匹配查找关键字可包括选自所述输入的至少一个字段。
在一些实施例中,精确匹配查找关键字可以是用于建构TCAM查找关键字的字段的子集。
如果提供多个精确匹配表,则针对每个精确匹配表生成的精确匹配查找关键字可能不相同。在一些实施例中,可针对每个精确匹配表(从同一输入)生成不同精确匹配查找关键字。
例如,可针对第一精确匹配表生成包括字段{x,y}的第一精确匹配查找关键字,并且可针对第二精确匹配表生成包括字段{w,y,z}的第二精确匹配查找关键字。每个精确匹配查找关键字中所含的字段数目可不相同。
任选地,响应于确定多个精确匹配表中的两个或更多个精确匹配表的优先级值小于最佳匹配TCAM条目的优先级值,所述方法包括确定两个或更多个精确匹配表中的哪一精确匹配表具有最低优先级值。可通过以下操作来针对具有最低优先级值的精确匹配表执行精确匹配查找过程:针对具有最低优先级值的精确匹配表,从所述输入生成第一精确匹配查找关键字;以及使用所述第一精确匹配查找关键字以确定匹配的精确匹配关键字是否含于具有所述最低优先级值的所述精确匹配表中。
响应于未在具有所述最低优先级值的所述精确匹配表中标识出匹配的精确匹配关键字,所述方法可包括针对所述两个或更多个精确匹配表中的每一者按最低优先级值到最高优先级值的次序重复所述精确匹配查找过程,直到标识出匹配的精确匹配关键字为止。
如果标识出匹配的精确匹配关键字,则所述方法可包括返回与所述匹配的精确匹配关键字相关联的输出结果以作为最佳匹配。
如果在所述两个或更多个精确匹配表中未标识出匹配的精确匹配关键字,则所述方法可包括返回与所述最佳匹配TCAM条目相关联的输出结果以作为所述最佳匹配。
响应于确定所述最佳匹配TCAM条目的优先级值小于所述或每个精确匹配表的优先级值,可返回与所述最佳匹配TCAM条目相关联的输出结果以作为所述最佳匹配。
任选地,如果未标识出最佳匹配TCAM条目且未标识出匹配的精确匹配关键字,则可返回默认输出结果。
任选地,TCAM表可包括具有相关联默认输出结果的默认条目。可将默认条目指派给最高优先级值,使得如果未标识出具有较低优先级值的匹配的TCAM条目,则将所述默认条目确定为最佳匹配TCAM条目。
所述默认条目可以是全匹配TCAM条目,其中所有位被掩蔽,使得生成的任何TCAM查找关键字将至少与所述默认条目匹配。这确保始终返回输出结果。
因此,默认条目的优先级值可高于全部多个TCAM条目的优先级值,并且还高于每个精确匹配表的优先级值。
所述方法可包括将优先级值指派给存储在所述TCAM表中的每个TCAM条目的步骤。
所述方法可包括将优先级值指派给所述或每个精确匹配表的步骤。
根据本公开的第二方面,提供一种非暂时性计算机可读介质,其包括可执行指令以使一个或多个处理器执行本发明的第一方面的任何实施例或例子的方法。
任选地,计算机可读介质可以是通用串行总线(USB)快闪驱动器、记忆棒、蓝光/DVD/CD-ROM驱动器、存储卡和/或其它类似计算机可读存储介质。
根据本公开的第三方面,提供一种集成电路,其包括处理器和存储器,所述存储器被配置成存储:三态内容可寻址存储器TCAM表,所述TCAM表被配置成存储多个TCAM条目,其中每个TCAM条目具有相关联输出结果并且每个TCAM条目被指派优先级值;以及精确匹配表,其中所述精确匹配表被配置成存储多个精确匹配关键字,其中每个精确匹配关键字具有相关联输出结果,并且所述精确匹配表被指派优先级值;以及一组可执行指令,其使所述处理器执行确定输入的最佳匹配的方法。所述方法可如上文在本发明的第一方面中所描述。
具体地说,所述方法包括:接收所述输入;从所述输入生成TCAM查找关键字;使用所述TCAM查找关键字执行TCAM查找以确定所述TCAM表中的最佳匹配TCAM条目;将所述最佳匹配TCAM条目的所述优先级值与所述精确匹配表的所述优先级值进行比较。响应于确定所述精确匹配表的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,所述方法包括执行精确匹配查找过程,包括从所述输入生成精确匹配查找关键字以及使用所述精确匹配查找关键字来确定所述精确匹配表中是否含有匹配的精确匹配关键字。如果未标识出匹配的精确匹配关键字,则返回与所述最佳匹配TCAM条目相关联的输出结果以作为最佳匹配,以及如果标识出匹配的精确匹配关键字,则返回与所述匹配的精确匹配关键字相关联的输出结果以作为最佳匹配。
如上文所解释,最佳匹配TCAM条目被定义为具有TCAM表中的最低索引值的匹配的TCAM条目。
任选地,最佳匹配TCAM条目可以是具有最低(或等同最低)优先级值的匹配的TCAM条目。
每个TCAM条目包括关键字和具有与关键字相同大小的掩码。每个TCAM条目具有相关联的优先级值和相关联的输出结果。
任选地,所述存储器可包括多个精确匹配表,其中所述多个精确匹配表中存储的每个精确匹配关键字具有相关联输出结果,并且每个精确匹配表被指派优先级值。
所述可执行指令可使处理器将最佳匹配TCAM条目的优先级值与每个精确匹配表的优先级值进行比较。响应于确定所述多个精确匹配表中的一者的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,所述处理器针对所述精确匹配表执行精确匹配查找过程,如上文所描述。
响应于确定所述多个精确匹配表中的两个或更多个精确匹配表的优先级值小于最佳匹配TCAM条目的优先级值,所述处理器可:确定所述两个或更多个精确匹配表中的哪一精确匹配表具有最低优先级值;以及通过以下操作来执行精确匹配查找过程:针对具有所述最低优先级值的所述精确匹配表,从所述输入生成第一精确匹配查找关键字;以及使用所述第一精确匹配查找关键字以确定匹配的精确匹配关键字是否含于具有所述最低优先级值的所述精确匹配表中。
如果未标识出匹配的精确匹配关键字,则所述处理器可针对所述两个或更多个精确匹配表中的每一者按最低优先级值到最高优先级值的次序重复所述精确匹配查找过程,直到标识出匹配的精确匹配关键字为止。
如果标识出匹配的精确匹配关键字,则可返回与所述匹配的精确匹配关键字相关联的输出结果。如果在所述两个或更多个精确匹配表中未标识出匹配的精确匹配关键字,则可返回与所述最佳匹配TCAM条目相关联的输出结果。
任选地,响应于确定所述最佳匹配TCAM条目的优先级值小于所述或每个精确匹配表的优先级值,可返回与所述最佳匹配TCAM条目相关联的输出结果以作为所述最佳匹配。
所述存储器可包括默认输出结果,其中如果未标识出最佳匹配TCAM条目并且未标识出匹配的精确匹配关键字,则返回默认输出结果。
任选地,TCAM表包括具有相关联默认输出结果的默认条目。可将默认条目指派给最高优先级值,使得如果未标识出具有较低优先级值的匹配的TCAM条目,则将所述默认条目确定为最佳匹配TCAM条目。
所述默认条目可以是全匹配TCAM条目,其中所有位被掩蔽。这可确保生成的任何TCAM查找关键字至少与所述默认条目匹配。因此,默认条目可具有比其它TCAM条目的优先级值高的优先级值,并且还高于每个精确匹配表的优先级值。
任选地,与每个TCAM条目相关联的输出结果和与每个精确匹配关键字相关联的输出结果都具有相同格式。
与每个TCAM条目相关联的输出结果可存储在随附存储器中并且与相应TCAM条目相关联。随附存储器可为RAM。
任选地,指派给每个TCAM条目的优先级值存储在随附存储器中并且与相应TCAM条目相关联。随附存储器可为RAM。
与每个精确匹配条目相关联的输出结果可存储在精确匹配表中。
与每个TCAM条目和每个精确匹配关键字相关联的输出结果可包括详述如何对输入作出响应或进行处理的指令。例如,输出结果可包括转发指令、速率管制指令、保持或舍弃输入的指令等。
任选地,所述输入包括帧和元数据。
任选地,所述集成电路可形成联网装置的部分,例如高性能路由器或开关。
所述输入可以是以太网帧。然而,应了解,所述输入可以是需要三态匹配的任何输入。
附图说明
下文将仅借助于例子参考附图来描述本公开的说明性实施例,在附图中相同的附图标记涉及相同的元件,并且其中:
图1是根据本公开的实施例的集成电路的示意性表示;
图2是根据本公开的实施例的TCAM表和相关联数据、第一精确匹配表和第二精确匹配表的逻辑视图;以及
图3是根据图2中示出的表的最佳匹配过程流的图解说明。
具体实施方式
三态内容可存取存储器(TCAM)
根据现有技术的标准TCAM表的简化例子在下文表1中示出。将了解,所述TCAM表可包括任何数目的条目。每个TCAM条目包括关键字KT、具有与关键字相同大小的掩码MT、输出结果RT。表1中的每个行可被称为TCAM条目。应了解,仅关键字KT和掩码MT存储在TCAM存储器中的TCAM表中。与每个TCAM关键字和掩码相关联的输出结果RT一般存储在与TCAM表相关联的随附存储器中。随附存储器可为RAM。每个TCAM条目被指派从0到n的索引(例如,TCAM索引)。每个TCAM条目以特定索引添加到TCAM表。TCAM具有限制可用索引值的数目的固定大小。TCAM条目在TCAM表中从最低索引值到最高索引值排序。
Figure BDA0003557640860000091
表1:标准TCAM表和相关联数据
所述关键字是要匹配的位模式。所述掩码是指与所述关键字相关联的掩码位。换句话说,TCAM掩码用于确定关键字(KT)中的每个字段中的哪些位必须与查找关键字匹配。掩码位值0意指‘忽略(don't care)’(即,查找关键字中的位值0或1被视为匹配)。掩码位值1意指TCAM关键字(KT)中的对应位必须与查找关键字的位匹配。
根据本公开的增强型TCAM表和相关联数据的例子在下文表2中示出。如所示,每个TCAM条目包括关键字KT、具有与关键字相同大小的掩码MT、输出结果RT和优先级值PT。表2中的每个行可被称为TCAM条目。仅关键字KT和掩码MT存储在TCAM存储器中的TCAM表中。与每个TCAM关键字和掩码相关联的输出结果RT和优先级值PT存储在与TCAM表相关联的随附存储器中。随附存储器可为RAM。逻辑上,TCAM条目可被视为包括TCAM存储器数据和随附存储器数据两者。
Figure BDA0003557640860000101
表2:TCAM表和相关联数据的例子
输出结果RT可指示在其中查找返回模式和掩码的命中的情况下发生的结果或动作。在一些实施例中,输出结果可包括指代入口流表(下文描述)的索引。
如上文所解释,TCAM条目在TCAM表中按从最低索引到最高索引的次序存储在TCAM表中。在本公开中,每个TCAM条目与优先级值PT相关联。基于所述索引确定指派给TCAM条目的优先级值,使得所述TCAM条目也按最低优先级值到最高优先级值的次序存储。最低优先级值被定义为最接近于零的优先级值。应了解,优先级值不限于如表2中所示的0、1和2。这只是可使用的可能优先级值的一个例子。
为了执行对输入的最佳匹配搜索,从所述输入生成TCAM查找关键字。TCAM查找关键字包括选自所述输入的多个字段,每个字段包括多个位。TCAM查找关键字具有与存储在TCAM表中的每个TCAM关键字相同的格式。
接着通过比较TCAM查找关键字与表中的每个关键字KT来执行TCAM查找(或三态最佳匹配查找),其中应用对应的掩码MT以确定查找关键字中由‘1’标识的位是否匹配关键字KT中的对应位。如果这些位值之间存在匹配,则将TCAM条目标识为匹配的TCAM条目。如果对于给定查找关键字,存在多个匹配的TCAM条目,则具有最低索引值(即,最接近TCAM表的第一行)的匹配的TCAM条目被标识为最佳匹配TCAM条目。不依赖于优先级值PT来确定最佳匹配TCAM条目。替代地,优先级值用于确定是否需要精确匹配查找。
精确匹配表
在本公开中,并非所有数据都含于TCAM表中,还提供至少一个精确匹配表。精确匹配表不必存储在TCAM等专门的存储器中。因此,与存储在TCAM中的等同大小的表相比,精确匹配表的存储较便宜并且相关联存储器消耗较少电力。
表3示出第一精确匹配表(EM表1)的逻辑视图,并且表4示出根据本公开的第二精确匹配表(EM表2)的逻辑。在本公开中,具有相同掩码值的一组TCAM条目可存储在精确匹配表(类似表3)而非TCAM表(例如表2)中。应了解,精确匹配表可包括任何数目的条目,并且可提供任何数目的精确匹配表。
上文表1与表2之间的比较示出,表1中的斜体(也具有较粗框边界)的条目在表2中不存在。这是因为这些条目具有共同掩码值并且因此,此数据已重新定位到EM表1和EM表2中以减小TCAM表的大小。
优先级值(PE1)=0
关键字(K<sub>E1</sub>) 结果(R<sub>E1</sub>)
K<sub>11</sub> R<sub>T11</sub>
K<sub>12</sub> R<sub>T12</sub>
表3:精确匹配表(EM表1)的例子优先级值(PE2)=1
关键字(K<sub>E2</sub>) 结果(R<sub>E2</sub>)
K<sub>21</sub> R<sub>T21</sub>
K<sub>22</sub> R<sub>T22</sub>
表4:精确匹配表(EM表2)的例子
如表3和表4中所示,在本公开中,精确匹配表中的所有条目被指派相同的优先级值PE1。精确匹配表包括多个精确匹配关键字KE1,每个精确匹配关键字具有相关联输出结果RE1
输出结果RE1可指示在其中查找返回所述精确匹配关键字KE1的匹配的情况下发生的结果或动作。在一些实施例中,输出结果可包括指代含有限定要采取的动作的数据的入口流表(下文所描述)的索引。
精确匹配表的优先级值PE1可基于指派给TCAM条目的优先级值而指派,反之亦然。任选地,相对于精确匹配表限定TCAM优先级值PT,并且因此每TCAM条目需要较少内存(相关联存储器中)以存储TCAM优先级。
在此实施例中,如果含于TCAM表(即表2)中,则表3中所含的数据将具有比TCAM关键字KT3低的索引和低的优先级值(参看表1中的相对位置)。因此,在此示例中,EM表1被指派优先级值0。如果含于TCAM表(即表2)中,则表4中所含的数据将具有比TCAM关键字KT5低的索引和低的优先级值(参看表1中的相对位置)。因此,在此示例中,EM表2被指派优先级值1。
在可能的实施方案中,相对于TCAM表条目的索引中的一者限定优先级值PE1
在精确匹配查找过程中,从输入生成精确匹配查找关键字。精确匹配查找关键字具有与存储在精确匹配表中的精确匹配关键字KE1中的每一者相同的格式。精确匹配查找关键字包括至少一个字段,每个字段包括多个位。任选地,精确匹配查找关键字可包括TCAM查找关键字中所含的字段的子集。如果提供多个精确匹配表,则用于每个精确匹配表的精确匹配查找关键字可能不相同。在一些实施例中,可针对每个精确匹配表(从同一输入)生成不同精确匹配查找关键字。
接着将精确匹配查找关键字与存储在精确匹配表中的精确匹配关键字KE1中的每一者进行比较。不同于TCAM表,精确匹配表中没有存储掩码。这意味着对于匹配精确匹配关键字KE1中的一者的查找关键字,精确匹配查找关键字的每个字段中的所有位必须与精确匹配关键字KE1的每个字段中的对应位相同(因此,精确匹配)。
查找关键字生成的具体例子
在一些实施例中,所述输入可包括帧和元数据。所述帧可包括多个数据字段(或字段)。在此具体实施例中,本公开形成联网装置的部分,并且输入包括以太网帧或数据包。
在以太网网络中,可使用接收端口加接收到的以太网帧(或数据包)内的一组字段的组合来限定业务流,所述字段包括MAC目的地址(MAC DA)、MAC源地址(MAC SA)、VLAN、IP源地址(IP SA)、IP目的地址(IP DA)等。上文所描述的最佳匹配TCAM查找和/或精确匹配查找过程可用于标识所述流。寻找输入(入口流)的最佳匹配的过程可被称为入口流标识。
TCAM查找关键字由输入以太网帧中含有的多个数据字段中的一系列数据字段和(例如,从元数据提取的)一个或多个其它字段建构。例如,TCAM查找关键字可包括{接收端口(4)、MAC DA(48)、MAC SA(48)、VLAN(12)、IP SA(128)、IP DA(128)}。所述接收端口表示网络装置中的接收端口。括号()中的数目指示以位为单位的字段大小。因此,在此例子中,TCAM查找关键字为368位长。TCAM查找关键字具有与存储在TCAM表中的每个TCAM关键字相同的格式并且具有相同大小(即,使用相同的字段)。应了解,在实践中,TCAM查找关键字和TCAM关键字通常比这长得多。
每个精确匹配查找关键字(并且因此还有每个精确匹配关键字)可由TCAM关键字和TCAM查找关键字中使用的字段的子集建构。然而,这不是必需的要求。在其它实施例中,精确匹配关键字可包括TCAM关键字中未含的一个或多个字段。
例如,第一精确匹配查找关键字和对应的第一组精确匹配关键字可包括64位长的字段{接收端口(4)、MAC DA(48)、VLAN(12)}。此字段子集可包括数百个数据条目。根据现有技术系统,所有这些数据条目将会添加到TCAM表,其中其它数据字段被掩蔽。然而,根据本公开,这些条目可改为含于精确匹配表中,从而允许减少TCAM使用(例如,如表3中的EM表1中所示)。
任选地,可提供第二精确匹配表,其中第二精确匹配关键字具有与第一精确匹配关键字不同的格式(例如,如表4中的EM表2中所示)。例如,第二精确匹配关键字可包括字段{接收端口(4)、MAC SA(48)}。因此,为了从输入生成第二精确匹配查找关键字,将从输入数据包和元数据提取字段{接收端口、MAC SA}。第二精确匹配表的优先级值不同于第一精确匹配表的优先级值。任选地,第二精确匹配表可被定义为具有比第一精确匹配表更高的优先级值(即,精确匹配表可按优先级次序从低到高优先级存储)。
入口流表或输出结果表
除了标识入口流(即,确定输入的最佳匹配)之外,本公开还返回与最佳匹配或精确匹配相关联的输出结果。输出结果指示应响应于输入而采取何种动作(即,应如何处理输入)。
如表2到4中所示,每个TCAM条目和每个精确匹配条目具有相关联输出结果。如上文详述,与每个TCAM条目相关联的输出结果存储在相关联存储器中而非TCAM中。输出结果可包括指示应响应于已标识的输入而应采取何种动作的指令。在联网装置的具体例子中,输出结果RE1、RE2、RT可包括用于如何处理接收到的以太网帧的指令,例如:丢弃、保持、转发到特定目的地、速率管制等。然而,应了解,由于本公开可与任何种类的数据一起使用,因此输出结果可呈任何形式。
在其它实施例中,与TCAM表和精确匹配表相关联的输出结果可包括针对存储在另一表中的条目的索引或由所述索引组成。这另一表可被称为输出结果表或入口流表。所述入口流表可包括多个条目,每一条目对应于输出结果。因此,当已标识出最佳匹配或精确匹配时,相关联索引允许从入口流表中查找(或检索)条目。
在联网装置的具体例子中,入口流表中的每个条目可包括配置数据或由配置数据组成,所述配置数据指示如何处理由此流标识的输入以太网帧(例如,速率管制、转发到特定目的地、舍弃等)。
任选地,每个输出结果RE1、RE2、RT可包括针对入口流表中的唯一条目的索引。在其它实施例中,多个输出结果RE1、RE2、RT可包括相同索引,使得入口流表中的单一条目可与多个TCAM条目和/或多个精确匹配关键字相关联。
附图描述
下文参考附图描述本公开的实施例。应了解,附图是示意性图示并且未按比例绘制。
图1是根据本公开的实施例的集成电路10的简化表示。集成电路10包括处理器11和存储器12。应了解,处理器11可表示多个处理器或微处理器,而非单个处理器。处理器11与存储器12之间存在双向通信信道,如图1中的箭头所指示。
存储器12包括一组可执行指令13,所述一组可执行指令使处理器11执行确定输入的最佳匹配的方法(参看图3)。
存储器12还包括三态内容可存取存储器(TCAM)14,其中TCAM包括TCAM表(例如,表2中所表示的TCAM关键字和掩码)。存储器12还包括并非TCAM存储器的第二部分16。存储器的第二部分16可存储与TCAM表中的每个TCAM条目相关联的优先级值PT和输出结果RT。存储器的第二部分16还被配置成存储至少一个精确匹配表(例如,如表3和表4中所表示)以及任选地入口流表(输出结果表)。在一些实施例中,可执行指令13可存储在存储器12的第二部分16中。存储器12的第二部分16可以是软件(例如,网络元件的主存储器)或RAM。
图2是TCAM表、第一精确匹配表(EM表1)和第二精确匹配表(EM表2)的表示。应了解,在一些实施例中,可仅提供单一精确匹配表。在其它实施例中,可提供多于两个精确匹配表。为简单起见,所述表未示为以行或数据填充。如上文所解释,表中可含有任何种类的数据,并且表可具有任何大小。
TCAM表可如上文表2中详述。为方便起见,图2中的TCAM表中未示出TCAM索引值。TCAM表中的每个条目包括关键字KT、具有与关键字相同大小的掩码MT、输出结果RT和优先级值PT。任选地,每个输出结果RT可以是针对入口流表中的条目的索引。TCAM表中的每个条目可被指派差别优先级值PT,其中所述条目在表中从最低优先级值到最高优先级值排序。所述优先级值可在0(最低优先级值)到n(最高优先级值)的范围内。
在图2中示出的TCAM表中,表中的最终条目(即,具有最高索引和最高优先级值的条目)是默认条目。所述默认条目是全匹配TCAM条目,其中所有位被掩蔽,使得生成的任何TCAM查找关键字将至少与所述默认条目匹配。因此,默认掩码MD对于关键字KD的每个位都具有值0。这确保始终会返回输出结果。默认条目的优先级PD高于精确匹配表的优先级值PE1和PE2
第一精确匹配表EM表1包括多个精确匹配关键字KE1,每个关键字具有相关联输出结果RE1。每个输出结果RE1可以是针对入口流表中的条目的索引。EM表1中的所有条目都被指派相同优先级值PE1
第二精确匹配表EM表2包括多个精确匹配关键字KE2,每个关键字具有相关联输出结果RE2。每个输出结果RE2可以是针对入口流表中的条目的索引。EM表2中的所有条目都被指派相同优先级值PE2。PE2与PE1不相同。在此实施例中,PE2高于PE1,如下文结合图3所解释。
输出结果RT、RE1、RE2的格式可相同。
用于确定输入的最佳匹配的方法的实施例在图3中的流程图中示出。首先,接收输入。所述输入可包括帧和元数据。在联网装置的具体例子中,所述输入可包括接收到的以太网帧和元数据。
接着通过从输入选择预定多个字段来由输入建构TCAM查找关键字。这在上文“查找关键字生成的具体例子”部分已详细描述。TCAM查找关键字具有与TCAM表中的TCAM关键字KT相同的格式(即,相同字段和相同大小)(例如参看图2)。接着,处理器11通过比较TCAM查找关键字与每个TCAM关键字KT来执行TCAM查找过程,其中应用对应的掩码MT以确定TCAM查找关键字中由‘1’标识的位是否匹配关键字KT中的对应位。如果这些位值之间存在匹配,则将TCAM表中的条目标识为匹配的TCAM条目(即,匹配=1)。如果对于给定查找关键字,存在多个匹配的TCAM条目,则具有最低TCAM索引(即,位于最接近TCAM表的第一行)的匹配的TCAM条目被标识为最佳匹配TCAM条目。
如果TCAM表包括如图2中所示的全匹配默认条目{PD、KD、MD、RD},则始终存在至少一个匹配的TCAM条目,因此匹配=1始终成立。在其它实施例中,可不标识最佳匹配TCAM条目。如果未标识出匹配的TCAM条目,并且TCAM表不包括全匹配默认条目,则可提供默认输出。所述默认输出具有最高优先级值(PT)。默认输出可指示在TCAM表或精确匹配表中未标识出匹配的条目的情况下应采取什么动作。
如果标识出最佳匹配TCAM条目(其可为默认条目),则将最佳匹配TCAM条目PT的优先级值与精确匹配表EM表1和EM表2的优先级值进行比较。如果最佳匹配TCAM条目具有小于或等于最低优先级精确匹配表的优先级值,则在此示例EM表1(即,PT≤PE1)中,最佳匹配TCAM条目是最佳匹配,并且返回与此条目相关联的结果RT。如上文所解释,RT可以是针对入口流表中的条目的索引,所述入口流表可包括指示如何响应于由最佳匹配TCAM条目标识的输入的指令。
或者,如果EM表1具有低于最佳匹配TCAM条目的优先级值(即,PT>PE1)的优先级值的优先级值,则处理器11建构用于EM表1的查找关键字KCE1。这也是在提供默认输出的情况下(即,没有匹配的TCAM条目)在所述过程中的下一步骤。此步骤在上文“查找关键字生成的具体例子”部分已详细描述。精确匹配查找关键字KCE1具有与EM表1中的精确匹配关键字KE1相同的格式(即,相同字段和相同大小)(例如,参看图2)。
随后通过比较查找关键字KCE1与EM关键字KE1以查看是否可标识匹配的关键字KE1来执行精确匹配查找过程。精确匹配过程可使用散列算法。各种合适的精确匹配算法在现有技术中是众所周知的,并且因此不在此详细描述。
如果匹配的精确匹配关键字KE1含于EM表1中,则EM表1含有最佳匹配数据并且返回与匹配的关键字KE1相关联的输出结果RE1。如上文所解释,在一些实施例中,RE1可以是针对入口流表中的条目的索引。输出结果RE1可限定或包括指示如何响应于由精确匹配关键字标识的输入的指令或配置数据。
如果EM表1中不含匹配的精确匹配关键字KE1(即,未发现匹配),则考虑具有下一最高优先级值的精确匹配表,所述精确匹配表在此例子中是具有优先级PE2的EM表2。将最佳匹配TCAM条目的优先级值或默认输出PT与优先级值PE2相比较。如果最佳匹配TCAM条目或默认输出PT具有较低或相等优先级值(PT≤PE2),则确定最佳匹配TCAM条目是最佳匹配,或如果未发现TCAM匹配,则返回默认输出。
如果EM表2具有小于最佳匹配TCAM条目的优先级值或默认输出(即,PT>PE2)的优先级值,则处理器11建构用于第二精确匹配表EM表2的查找关键字KCE2。用于建构KCE2的过程不一定与用于建构KCE1的过程相同。换句话说,KCE2可具有与KCE1不同的格式,并且可由不同的字段建构,且具有不同大小。精确匹配查找关键字KCE2具有与EM表2中的精确匹配关键字KE2相同的格式(即,相同字段和相同大小)。
随后通过比较查找关键字KCE2与EM关键字KE2以查看是否可标识匹配的关键字KE2来执行第二精确匹配查找过程。精确匹配过程可使用散列算法。
如果匹配的精确匹配关键字KE2含于EM表2中,则EM表2含有最佳匹配数据并且返回与匹配的关键字KE2相关联的输出结果RE2。如上文所解释,RE2可以是针对入口流表中的条目的索引。任选地,RE2可限定或包括指示如何响应于由精确匹配关键字标识的输入的指令。
如果匹配的精确匹配关键字KE2不含于EM表2中(即,未发现匹配),则如果已发现最佳匹配TCAM条目,则所述最佳匹配TCAM条目是最佳匹配,并且返回与此条目相关联的结果RT。如果未发现最佳匹配TCAM条目,则返回默认输出结果。
因此,本公开描述一种使用TCAM表和至少一个精确匹配表来确定输入的最佳匹配的计算机实施的方法。每个精确匹配表具有指派的优先级值,并且TCAM表中的每个TCAM条目具有指派的优先级值。基于输入帧和元数据独立地建构TCAM查找关键字和精确匹配查找关键字。首先执行TCAM查找,并将最佳匹配TCAM条目的输出优先级值与精确匹配表优先级值进行比较。如果所述EM表中的任一者的所述优先级值小于最佳匹配TCAM条目优先级值,则首先执行最低优先级EM查找,接着执行任何子序列EM表查找,直到发现匹配为止。
如果发现匹配的精确匹配条目,则所述精确匹配条目是所述最佳匹配,并且返回相关联的输出数据,否则返回与所述最佳匹配TCAM条目相关联的输出数据。
如果未发现匹配的TCAM条目或匹配的精确匹配条目,则可返回默认输出。
因此,本公开不限于在未发现精确匹配的情况下首先执行精确匹配查找接着执行TCAM查找,这一般仅可用于某些应用。替代地,在本公开中,精确匹配表可被指派相对于TCAM条目的优先级具有任何值的优先级值。另外,可提供多于一个精确匹配表,其中每个精确匹配表可具有不同优先级值。由此,在本公开中,可针对数据(即,针对应用的用途)定制执行查找的次序和不同检查匹配查找的数目。这改进了查找过程的效率,同时还减少了TCAM的使用。在TCAM表中或精确匹配表中可含有什么数据的方面,本申请也不会受限制。

Claims (10)

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所述的计算机实施的方法,其特征在于,还包括:
将优先级值指派给存储在所述TCAM表中的每个TCAM条目;以及
将优先级值指派给所述或每个精确匹配表。
7.一种非暂时性计算机可读介质,其特征在于,包括使一个或多个处理器执行根据在前的任一项权利要求所述的方法的可执行指令。
8.一种集成电路,其特征在于,包括:
处理器;以及
存储器,所述存储器被配置成存储:
三态内容可寻址存储器TCAM表,所述TCAM表被配置成存储多个TCAM条目,其中每个TCAM条目具有相关联输出结果并且每个TCAM条目被指派优先级值;以及
精确匹配表,其中所述精确匹配表被配置成存储多个精确匹配关键字,其中每个精确匹配关键字具有相关联输出结果,并且所述精确匹配表被指派优先级值;以及
一组可执行指令,其使所述处理器执行确定输入的最佳匹配的方法,其中所述方法包括:
接收所述输入;
从所述输入生成TCAM查找关键字;
使用所述TCAM查找关键字执行TCAM查找以确定所述TCAM表中的最佳匹配TCAM条目;
将所述最佳匹配TCAM条目的所述优先级值与所述精确匹配表的所述优先级值进行比较;
响应于确定所述精确匹配表的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,执行精确匹配查找过程,包括:
从所述输入生成精确匹配查找关键字;以及
使用所述精确匹配查找关键字来确定所述精确匹配表中是否含有匹配的精确匹配关键字;
其中,如果未标识出匹配的精确匹配关键字,则返回与所述最佳匹配TCAM条目相关联的所述输出结果以作为所述最佳匹配;以及
其中,如果标识出匹配的精确匹配关键字,则返回与所述匹配的精确匹配关键字相关联的所述输出结果以作为所述最佳匹配。
9.根据权利要求8所述的集成电路,其特征在于,还包括多个精确匹配表,其中所述多个精确匹配表中存储的每个精确匹配关键字具有相关联输出结果,并且每个精确匹配表被指派优先级值,其中所述方法包括:
将所述最佳匹配TCAM条目的所述优先级值与每个精确匹配表的所述优先级值进行比较;以及
响应于确定所述多个精确匹配表中的一者的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,所述方法如权利要求8所述继续进行。
10.一种集成电路,其特征在于,包括:
处理器;以及
存储器,所述存储器被配置成存储:
三态内容可寻址存储器TCAM表,所述TCAM表被配置成存储多个TCAM条目,其中每个TCAM条目具有相关联输出结果并且每个TCAM条目被指派优先级值;以及
多个精确匹配表,其中每个精确匹配表被配置成存储多个精确匹配关键字,其中每个精确匹配关键字具有相关联输出结果,并且每个精确匹配表被指派优先级值;以及
一组可执行指令,其使所述处理器执行确定输入的最佳匹配的方法,其中所述方法包括:
接收所述输入;
从所述输入生成TCAM查找关键字;
使用所述TCAM查找关键字执行TCAM查找以确定所述TCAM表中的最佳匹配TCAM条目;
将所述最佳匹配TCAM条目的所述优先级值与每个精确匹配表的所述优先级值进行比较;
响应于确定所述多个精确匹配表中的一者的所述优先级值小于所述最佳匹配TCAM条目的所述优先级值,针对所述精确匹配表执行精确匹配查找过程,包括:
从所述输入生成精确匹配查找关键字;以及
使用所述精确匹配查找关键字来确定所述精确匹配表中是否含有匹配的精确匹配关键字;
其中,如果未标识出匹配的精确匹配关键字,则返回与所述最佳匹配TCAM条目相关联的所述输出结果以作为所述最佳匹配;以及
其中,如果标识出匹配的精确匹配关键字,则返回与所述匹配的精确匹配关键字相关联的所述输出结果以作为所述最佳匹配。
CN202210284598.6A 2021-04-14 2022-03-22 用一个或多个精确匹配查找扩展最佳匹配查找算法 Pending CN115203493A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP21168333.9 2021-04-14
EP21168333.9A EP4075740A1 (en) 2021-04-14 2021-04-14 Extending best match lookup algorithm with one or more conditionally executed exact match lookups

Publications (1)

Publication Number Publication Date
CN115203493A true CN115203493A (zh) 2022-10-18

Family

ID=75529854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210284598.6A Pending CN115203493A (zh) 2021-04-14 2022-03-22 用一个或多个精确匹配查找扩展最佳匹配查找算法

Country Status (2)

Country Link
EP (1) EP4075740A1 (zh)
CN (1) CN115203493A (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9502111B2 (en) * 2013-11-05 2016-11-22 Cisco Technology, Inc. Weighted equal cost multipath routing
US10116564B2 (en) * 2014-11-10 2018-10-30 Cavium, Inc. Hybrid wildcard match table
US10318587B1 (en) * 2015-09-20 2019-06-11 Barefoot Networks, Inc. Algorithmic TCAM based ternary lookup
US10944675B1 (en) * 2019-09-04 2021-03-09 Mellanox Technologies Tlv Ltd. TCAM with multi region lookups and a single logical lookup

Also Published As

Publication number Publication date
EP4075740A1 (en) 2022-10-19

Similar Documents

Publication Publication Date Title
US11102120B2 (en) Storing keys with variable sizes in a multi-bank database
US10389633B2 (en) Hash-based address matching
US9704574B1 (en) Method and apparatus for pattern matching
US9984144B2 (en) Efficient lookup of TCAM-like rules in RAM
US6633953B2 (en) Range content-addressable memory
JP4742167B2 (ja) Camのキーサイズを超えるテーブルインデックスを用いてテーブルルックアップ動作を実行する方法
US6775737B1 (en) Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
US10491521B2 (en) Field checking based caching of ACL lookups to ease ACL lookup search
US20060248095A1 (en) Efficient RAM lookups by means of compressed keys
EP3276501B1 (en) Traffic classification method and device, and storage medium
CN105760411B (zh) 混合通配符匹配表
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
Lim et al. Tuple pruning using bloom filters for packet classification
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
US9485179B2 (en) Apparatus and method for scalable and flexible table search in a network switch
US9305115B1 (en) Method and apparatus for reducing power consumption during rule searches in a content search system
CN112818185A (zh) 一种基于sram的最长前缀匹配硬件系统查找的方法
US9703484B2 (en) Memory with compressed key
CN109039911B (zh) 一种基于hash查找方式共享ram的方法及系统
US20160105363A1 (en) Memory system for multiple clients
CN115203493A (zh) 用一个或多个精确匹配查找扩展最佳匹配查找算法
CN104901947B (zh) 一种基于tcam连续数值匹配方法和装置
US9851902B2 (en) Searching memory for a search key
KR101587756B1 (ko) 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법
US9032142B2 (en) System and method for storing integer ranges in a memory

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination