CN104012053B - 查找装置及方法 - Google Patents

查找装置及方法 Download PDF

Info

Publication number
CN104012053B
CN104012053B CN201480000376.0A CN201480000376A CN104012053B CN 104012053 B CN104012053 B CN 104012053B CN 201480000376 A CN201480000376 A CN 201480000376A CN 104012053 B CN104012053 B CN 104012053B
Authority
CN
China
Prior art keywords
look
lookup
sublist
search key
engine
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.)
Active
Application number
CN201480000376.0A
Other languages
English (en)
Other versions
CN104012053A (zh
Inventor
龚钧
刘淑英
胡晶
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104012053A publication Critical patent/CN104012053A/zh
Application granted granted Critical
Publication of CN104012053B publication Critical patent/CN104012053B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/742Route cache; Operation thereof
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Navigation (AREA)

Abstract

本申请提供了一种查找装置,包括:全局分发器、全局仲裁器以及N个查找引擎。N个查找引擎能够访问第一查找表。全局分发器用于确定第一查找关键字对应第一查找表,确定第一查找表对应N个查找引擎,将第一查找关键字分发给N个查找引擎。N个查找引擎中的每个查找引擎用于根据第一查找算法在其能够访问的第一查找表的一个子表中查找是否存在与第一查找关键字匹配的表项,并将查找结果输出至全局仲裁器。全局仲裁器用于对每个查找引擎输出的查找结果进行仲裁,得到对应第一查找表的查找结果。此外,还提供了其他装置及对应的方法。上述方案有助于提高查找引擎的灵活性。

Description

查找装置及方法
技术领域
本申请涉及计算机领域,尤其涉及查找装置及方法。
背景技术
互联网数据量、速率、业务种类的增长,以及服务质量(英文:quality ofservice,简称:QoS)及深度包检测(英文:deep packet inspection,简称:DPI)要求的出现,对网络装置(如路由器)的查找引擎提出了更高要求。
目前,网络设备需要支持多种业务,所述多种业务可能对应多种查找算法。网络设备中包含多个查找引擎,其中每个查找引擎对应一种查找算法。例如,路由器可能需要支持网际协议(英文:internet protocol,简称:IP)报文的转发和媒体访问控制(英文:mediaaccess control,简称:MAC)协议报文的转发。IP报文的转发对应最长前缀匹配算法。MAC报文的转发对应精确匹配算法。路由器中需要包含对应于所述最长前缀匹配算法的查找引擎,以及对应于所述精确匹配算法的查找引擎。其中,对应于所述最长前缀匹配算法的查找引擎用于访问路由表。对应于所述精确匹配算法的查找引擎用于访问MAC协议表。上述技术方案中,查找引擎不够灵活。
发明内容
本申请实施例提供了查找装置及方法,有助于提高查找引擎的灵活性。
第一方面,提供了一种查找装置,包括:全局分发器、全局仲裁器以及N个查找引擎,N为大于1的整数;所述N个查找引擎能够访问第一查找表,其中,每个查找引擎只能够访问所述第一查找表的一个子表,对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法;
所述全局分发器,用于确定第一查找关键字对应所述第一查找表,确定所述第一查找表对应所述N个查找引擎,将所述第一查找关键字分发给所述N个查找引擎;
所述N个查找引擎中的每个查找引擎,用于根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至所述全局仲裁器;
所述全局仲裁器,用于对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果。
上述技术方案中,N个查找引擎中每个查找引擎能够访问第一查找表的一个子表。相对于现有技术中一个查找引擎对应一个查找表,上述技术方案提高了查找引擎的灵活性。
在第一方面的第一种可能的实现方式中,
还包括存储器,所述存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的所述N个查找引擎的标识的对应关系;
所述全局分发器具体用于根据所述第一查找表的标识与所述N个查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎。
根据第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,
所述N个查找引擎包括至少一个查找引擎,所述至少一个查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表,所述第二查找表对应第二查找算法;
所述本地分发器,用于接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元,用于根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器,用于对所述至少一个查找引擎中的查找单元输出的查找结果进行仲裁,并将仲裁结果输出至所述全局仲裁器。
根据第一方面、第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,
所述N个查找引擎包括第一查找引擎和第二查找引擎,所述第一查找引擎能够访问的所述第一查找表中的子表为第一子表,所述第二查找引擎能够访问的所述第一查找表中的子表为第二子表;
所述装置还用于对所述N个查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的所述第一查找表中的子表被调整为第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的所述第一查找表中的子表被调整为第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
根据第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,
所述全局仲裁器还用于将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器还用于保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器还用于获取第二查找关键字,根据对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
第二方面,提供了一种查找装置,包括:全局分发器、全局仲裁器以及N个查找引擎,N为大于1的整数;所述N个查找引擎包括第一查找引擎,所述第一查找引擎能够访问第一查找表或者所述第一查找表的一个子表,所述第一查找表对应第一查找算法,所述第一查找引擎能够访问第二查找表或者所述第二查找表的一个子表,所述第二查找表对应第二查找算法;
所述全局分发器,用于确定第一查找关键字对应所述第一查找表,确定所述第一查找表对应所述第一查找引擎,将所述第一查找关键字分发给所述第一查找引擎;
所述第一查找引擎,用于根据所述第一查找算法在其能够访问的所述第一查找表或者所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项以得到所述第一查找关键字对应的查找结果,并将所述第一查找关键字对应的查找结果输出至所述全局仲裁器;
所述全局分发器,还用于确定第二查找关键字对应所述第二查找表,确定所述第二查找表对应所述第一查找引擎,将所述第二查找关键字分发给所述第一查找引擎;
所述第一查找引擎,还用于根据所述第二查找算法在其能够访问的所述第二查找表或者所述第二查找表的一个子表中查找是否存在与所述全局分发器分发的所述第二查找关键字匹配的表项以得到所述第二查找关键字对应的查找结果,并将所述第二查找关键字对应的查找结果输出至所述全局仲裁器;
所述全局仲裁器,用于接收所述第一查找关键字对应的查找结果以及所述第二查找关键字对应的查找结果。
上述技术方案中,第一查找引擎能够访问的第一查找表或者所述第一查找表的一个子表。另外,所述第一查找引擎能够访问的第二查找表或者所述第二查找表的一个子表。相对于现有技术中一个查找引擎只能访问一个查找表,上述技术方案提高了查找引擎的灵活性。
在第二方面的第一种可能的实现方式中,
还包括存储器,所述存储器用于在所述全局分发器确定所述第一查找表对应所述第一查找引擎前,存储所述第一查找表的标识与所述第一查找引擎的标识的对应关系;
所述全局分发器具体用于根据所述第一查找表的标识与所述第一查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述第一查找引擎。
根据第二方面、第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,
所述存储器还用于在所述全局分发器确定所述第二查找表对应所述第一查找引擎前,存储所述第二查找表的标识与所述第一查找引擎的标识的对应关系;
所述全局分发器具体用于根据所述第二查找表的标识与所述第一查找引擎的标识的对应关系以及所述第二查找表的标识,确定所述第二查找表对应所述第一查找引擎。
根据第二方面、第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,
所述第一查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表或者所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表;
所述本地分发器,用于接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元,用于根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表或者所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器,用于对所述第一查找单元输出的查找结果进行仲裁;
所述本地分发器,还用于接收所述全局分发器分发的所述第二查找关键字,确定所述第二查找关键字对应所述第二查找单元,以及将所述第二查找关键字分发至所述第二查找单元;
所述第二查找单元,用于根据所述第二查找算法在所述第二查找单元能够访问的所述第二查找表或者所述第二查找表中的一个子表中查找是否存在与所述第二查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器,还用于对所述第二查找单元输出的查找结果进行仲裁。
根据第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式或者第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,
所述N个查找引擎还包括第二查找引擎,所述第一查找引擎能够访问所述第一查找表或者所述第一查找表中第一子表,所述第二查找引擎能够访问所述第一查找表中的第二子表;
所述装置还用于对所述第一查找引擎和第二查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的表项的范围从所述第一查找表或者所述第一查找表中第一子表被调整为所述第一查找表中的第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的表项的范围从所述第一查找表中的第二子表被调整为所述第一查找表中的第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
第三方面,提供了一种查找方法,包括:
全局分发器确定第一查找关键字对应第一查找表,确定所述第一查找表对应N个查找引擎,将所述第一查找关键字分发给所述N个查找引擎,N为大于1的整数,所述N个查找引擎能够访问所述第一查找表,其中,每个查找引擎只能够访问所述第一查找表的一个子表,对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法;
所述N个查找引擎中的每个查找引擎根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至全局仲裁器;
所述全局仲裁器对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果。
在第三方面的第一种可能的实现方式中,
所述全局分发器确定所述第一查找表对应N个查找引擎具体包括:
根据所述第一查找表的标识与所述N个查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎,存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的所述N个查找引擎的标识的对应关系。
根据第三方面或者第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,
所述N个查找引擎包括至少一个查找引擎,所述至少一个查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表,所述第二查找表对应第二查找算法;
所述方法还包括:
所述本地分发器接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器对所述至少一个查找引擎中的查找单元输出的查找结果进行仲裁,并将仲裁结果输出至所述全局仲裁器。
根据第三方面、第三方面的第一种可能的实现方式或者第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,
所述N个查找引擎包括第一查找引擎和第二查找引擎,所述第一查找引擎能够访问的所述第一查找表中的子表为第一子表,所述第二查找引擎能够访问的所述第一查找表中的子表为第二子表;
所述方法还包括:
对所述N个查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的所述第一查找表中的子表被调整为第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的所述第一查找表中的子表被调整为第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
根据第三方面、第三方面的第一种可能的实现方式、第三方面的第二种可能的实现方式或者第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,还包括:
所述全局仲裁器将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器获取第二查找关键字,根据所述全局分发器保存的对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
第四方面,提供了一种查找方法,包括:
全局分发器确定第一查找关键字对应第一查找表,确定所述第一查找表对应第一查找引擎,将所述第一查找关键字分发给所述第一查找引擎,N个查找引擎包括所述第一查找引擎,N为大于1的整数,所述第一查找引擎能够访问所述第一查找表或者所述第一查找表的一个子表,所述第一查找表对应第一查找算法,所述第一查找引擎能够访问第二查找表或者所述第二查找表的一个子表,所述第二查找表对应第二查找算法;
所述第一查找引擎根据所述第一查找算法在其能够访问的所述第一查找表或者所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项以得到所述第一查找关键字对应的查找结果,并将所述第一查找关键字对应的查找结果输出至全局仲裁器;
所述全局分发器确定第二查找关键字对应所述第二查找表,确定所述第二查找表对应所述第一查找引擎,将所述第二查找关键字分发给所述第一查找引擎;
所述第一查找引擎根据所述第二查找算法在其能够访问的所述第二查找表或者所述第二查找表的一个子表中查找是否存在与所述全局分发器分发的所述第二查找关键字匹配的表项以得到所述第二查找关键字对应的查找结果,并将所述第二查找关键字对应的查找结果输出至所述全局仲裁器;
所述全局仲裁器接收所述第一查找关键字对应的查找结果以及所述第二查找关键字对应的查找结果。
在第四方面的第一种可能的实现方式中,还包括:
在所述全局分发器确定所述第一查找表对应第一查找引擎前,存储器存储所述第一查找表的标识与所述第一查找引擎的标识的对应关系;
所述全局分发器确定所述第一查找表对应第一查找引擎具体包括:
所述全局分发器根据所述存储器存储的所述第一查找表的标识与所述第一查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述第一查找引擎。
根据第四方面、第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,还包括:
在所述全局分发器确定所述第二查找表对应所述第一查找引擎前,所述存储器存储所述第二查找表的标识与所述第一查找引擎的标识的对应关系;
所述全局分发器确定所述第二查找表对应所述第一查找引擎具体包括:
所述全局分发器根据所述存储器存储的所述第二查找表的标识与所述第一查找引擎的标识的对应关系以及所述第二查找表的标识,确定所述第二查找表对应所述第一查找引擎。
根据第四方面、第四方面的第一种可能的实现方式或者第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,
所述第一查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表或者所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表;
所述方法还包括:
所述本地分发器接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表或者所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器对所述第一查找单元输出的查找结果进行仲裁;
所述本地分发器接收所述全局分发器分发的所述第二查找关键字,确定所述第二查找关键字对应所述第二查找单元,以及将所述第二查找关键字分发至所述第二查找单元;
所述第二查找单元根据所述第二查找算法在所述第二查找单元能够访问的所述第二查找表或者所述第二查找表中的一个子表中查找是否存在与所述第二查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器对所述第二查找单元输出的查找结果进行仲裁。
根据第四方面、第四方面的第一种可能的实现方式、第四方面的第二种可能的实现方式或者第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,
所述N个查找引擎还包括第二查找引擎,所述第一查找引擎能够访问所述第一查找表或者所述第一查找表中第一子表,所述第二查找引擎能够访问所述第一查找表中的第二子表;
所述方法还包括:
对所述第一查找引擎和第二查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的表项的范围从所述第一查找表或者所述第一查找表中第一子表被调整为所述第一查找表中的第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的表项的范围从所述第一查找表中的第二子表被调整为所述第一查找表中的第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例。对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种查找装置的结构示意图;
图2为本申请实施例提供的至少一个查找引擎的结构示意图;
图3为本申请实施例提供的一种查找装置的结构示意图;
图4为本申请实施例提供的第一查找装置的结构示意图;
图5为本申请实施例提供的一种查找方法的流程示意图;
图6为本申请实施例提供的一种查找方法的流程示意图。
具体实施方式
本为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下文提供了多个实施例。多个实施例都涉及到查找装置。这里对多个实施例中的查找装置进行统一的描述。查找装置可以是处理器、印刷电路板(英文:printed circuitboard,简称:PCB)或者网络装置。所述处理器可以是专用集成电路(英文:application-specific integrated circuit,简称:ASIC)或者现场可编程门阵列(英文:fieldprogrammable gate array,简称:FPGA)。所述PCB可以包括所述处理器。所述PCB可以是线卡(英文:line card)。所述网络装置可以包括所述PCB。所述PCB可以包括所述处理器。所述网络装置可以是路由器、网络交换机(英文:network switch)、防火墙、负载均衡器、基站、数据中心、分组传送网(英文:packet transport network,简称:PTN)装置或者波分复用(英文:wavelength division multiplexing,简称:WDM)装置。
图1为本申请实施例提供的一个查找装置的结构示意图。参见图1,查找装置100包括全局分发器101、N个查找引擎102以及全局仲裁器103。N为大于1的整数。例如,N可以是2或者3。图1所示的N个查找引擎102包含了查找引擎1、查找引擎2、查找引擎3、查找引擎4、查找引擎5……查找引擎N。需要说明的是,图1所示的N个查找引擎仅用于举例。另外,除了N个查找引擎102,查找装置100还可以包括其他查找引擎。N个查找引擎能够访问第一查找表。其中,每个查找引擎只能够访问所述第一查找表的一个子表。对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法。
具体来说,所述第一查找表由N个子表组成。每个子表中的表项构成一个集合。任意两个子表分别对应的两个集合的交集是空集。
举例来说,所述第一查找表可以是访问控制列表(英文:access control list,简称:ACL)、路由表、入标签映射(英文:incoming label map,简称:ILM)表、MAC协议表或者队列管理(英文:queue management,简称:QM)表。
N个查找引擎102中的每个查找引擎只能够访问所述第一查找表的一个子表。举例来说,所述第一查找表由表1、表2、表3、表4、表5……以及表N组成。参见图1,查找引擎1只能访问表1。查找引擎2只能访问表2。查找引擎3只能访问表3。查找引擎4只能访问表4。查找引擎5只能访问表5……查找引擎N只能访问表N。
全局分发器101用于确定第一查找关键字对应所述第一查找表,确定所述第一查找表对应N个查找引擎102,将所述第一查找关键字分发给N个查找引擎102。
举例来说,全局分发器101可以接收处理电路发送的信令。所述信令中包含了所述第一查找关键字以及所述第一查找表的标识。全局分发器101可以根据所述信令确定所述第一查找关键字对应所述第一查找表。所述处理电路可以是解析器。所述解析器能够对接收到的报文进行解析以获得所述第一查找关键字。例如,所述接收到的报文可以是IP报文,所述第一查找关键字可以是目的IP地址。另外,所述接收到的报文可以是以太网帧,所述第一查找关键字可以是目的MAC协议地址。
举例来说,全局分发器101可以访问所述第一查找表的标识与N个查找引擎102中每个查找引擎的标识的映射关系,从而确定所述第一查找表对应N个查找引擎102。
举例来说,全局分发器101可以分别向N个查找引擎102中的每个查找引擎分发所述第一查找关键字。
N个查找引擎102中的每个查找引擎用于根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至所述全局仲裁器。
举例来说,所述第一查找算法可以是线性查找算法、最长前缀查找算法、精确查找算法或者掩码查找算法。
举例来说,图1中的查找引擎1在表1中查找是否存在与所述第一查找关键字匹配的表项。查找引擎2在表2中查找是否存在与所述第一查找关键字匹配的表项……查找引擎N在表N中查找是否存在与所述第一查找关键字匹配的表项。
举例来说,如果子表中存在与所述第一查找关键字匹配的表项,则查找结果可以是与所述第一查找关键字匹配的表项中的信息,也可以是与所述第一查找关键字匹配的表项中的索引(英文:index)所指示的信息。例如,与所述第一查找关键字匹配的表项中的信息,或者与所述第一查找关键字匹配的表项中的索引所指示的信息可以是下一跳的IP地址。与所述第一查找关键字匹配的表项中的索引可以是所述下一跳的IP地址的索引。此外,查找结果中还可以包括用于指示子表中存在与所述第一查找关键字匹配的表项的信息。用于指示子表中存在与所述第一查找关键字匹配的表项的信息可以是命中(英文:match)。
举例来说,如果子表中不存在与所述第一查找关键字匹配的表项,则查找结果可以是用于指示子表中不存在与所述第一查找关键字匹配的表项的信息。用于指示子表中不存在与所述第一查找关键字匹配的表项的信息可以是未命中(miss)。
全局仲裁器103用于对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果。
所述仲裁使得对应所述第一查找表的查找结果等于一个查找引擎根据所述第一查找关键字以及所述第一查找算法对所述第一查找表进行查找获得的查找结果。
举例来说,所述第一查找算法是最长前缀匹配算法。所述第一查找关键字是IP地址。所述IP地址可以是192.168.0.1。表1、表2、表3和表4中与所述第一查找关键字匹配的表项中的匹配域的值是192.*.*.*。表5中与所述第一查找关键字匹配的表项中的匹配域的值是192.168.*.*……表N中与所述第一查找关键字匹配的表项中的匹配域的值是192.168.0.*。查找引擎1至查找引擎4输出的查找结果是192.*.*.*。查找引擎5输出的查找结果是192.168.*.*……查找引擎N输出的查找结果是192.168.0.*。全局仲裁器103通过仲裁得到对应所述第一查找表的查找结果是表N中匹配域的值是192.168.0.*的表项中的信息。
举例来说,所述第一查找算法是精确匹配算法。所述第一查找关键字是MAC协议地址。所述MAC协议地址可以是00-00-00-00-00-00-00-E0。表1至表5都没有包含匹配域的值等于00-00-00-00-00-00-00-E0的表项。查找引擎1至查找引擎5输出的查找结果是miss。……表N中包含匹配域的值等于00-00-00-00-00-00-00-E0的表项。查找引擎N输出的查找结果是match以及表N中匹配域的值等于00-00-00-00-00-00-00-E0的表项中的信息。全局仲裁器103通过仲裁得到对应所述第一查找表的查找结果是表N中匹配域的值等于00-00-00-00-00-00-00-E0的表项中的信息。
可选地,查找装置100还包括存储器。所述存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的N个查找引擎102的标识的对应关系。
举例来说,所述存储器中存储了所述第一查找表的标识与表1至表N的映射表。
全局分发器101具体用于根据所述第一查找表的标识与N个查找引擎102的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎。
可选地,图1中的N个查找引擎102包括至少一个查找引擎。图2为所述至少一个查找引擎的结构示意图。参见图2,至少一个查找引擎200包括本地分发器201、多个查找单元202以及本地仲裁器203。其中,多个查找单元202包括第一个查找单元210和第二查找单元220。可选地,多个查找单元202还可以包括其他查找单元。其他查找单元可以是第M查找单元。M为大于2的整数。第一查找单元210能够访问所述第一查找表中的一个子表。第二查找单元220能够访问第二查找表或者所述第二查找表中的一个子表。所述第二查找表对应第二查找算法。
举例来说,多个查找单元202中的至少一个查找单元的架构是基于流水线的静态随机存取存储器(英文:pipeline-based SRAM)。也就是说,查找单元可被配置为流水线结构。所述流水线结构包含多级静态随机存取存储器。每级静态随机存取存储器用于存储将被查找的表的数据结构。每级静态随机存取存储器有对应的解析单元。解析单元用于访问对应的静态随机存取存储器中的数据结构,对数据结构进行解析,以及将解析后的结果发送至下一级流水线。pipeline-based SRAM架构的查找单元可用于实现多种查找算法。
具体来说,所述第二查找表包含的表项的数量大于所述第二查找表中的一个子表包含的表项的数量。
本地分发器201用于接收全局分发器101分发的所述第一查找关键字,确定所述第一查找关键字对应第一查找单元210,以及将所述第一查找关键字分发至第一查找单元210。
第一查找单元210用于根据所述第一查找算法在第一查找单元210能够访问的所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至本地仲裁器203。
举例来说,图2中的至少一个查找引擎200可以是图1中的查找引擎1。第一查找单元210能够访问的所述第一查找表中的一个子表可以是表1。
本地仲裁器203用于对至少一个查找引擎200中的查找单元输出的查找结果进行仲裁,并将仲裁结果输出至全局仲裁器103。
举例来说,至少一个查找引擎200中的查找单元输出的查找结果可以只包括第一查找单元210输出的查找结果。至少一个查找引擎200中的查找单元输出的查找结果也可以包括第一查找单元210输出的查找结果以及第二查找单元220输出的查找结果。也就是说,本地仲裁器203可以仅对一个查找单元输出的查找结果进行仲裁,也可以对多个查找单元输出的查找结果进行仲裁。
可选地,N个查找引擎102包括第一查找引擎和第二查找引擎。所述第一查找引擎能够访问的所述第一查找表中的子表为第一子表。所述第二查找引擎能够访问的所述第一查找表中的子表为第二子表。
查找装置100还用于对N个查找引擎102能够访问的表项的范围进行调整。其中,所述第一查找引擎能够访问的所述第一查找表中的子表被调整为第三子表。所述第三子表包括所述第一子表中除第一表项之外的所有表项。所述第二查找引擎能够访问的所述第一查找表中的子表被调整为第四子表。所述第四子表包括所述第二子表所有表项以及所述第一表项。
所述第一表项可以是一个表项或者多个表项。
举例来说,所述第一查找引擎可以是查找引擎1。所述第二查找引擎可以是查找引擎2。所述第一子表可以是表1。所述第二子表可以是表2。例如,表1中的表项的数量可以是100。表2中的表项的数量可以是100。查找装置100对N个查找引擎102能够访问的表项的范围进行调整以使表1中的至少一个表项被移动到表2中。具体来说,查找装置100对查找引擎能够访问的表项的范围进行调整后,查找引擎1能够访问的表项的范围是第三子表。查找引擎2能够访问的表项的范围是第四子表。第三子表的数量可以是99。第四子表的数量可以是101。当然,第三子表的数量也可以是0。第四子表的数量可以是200。另外,本申请并不限定表1中的至少一个表项只能被移动到表2中。也可以将表1中的至少一个表项中的一部分表项移动到表2中,将表1中的至少一个表项中的另一部分表项移动到其他表(例如表3)中。
可选地,全局仲裁器103还用于将对应所述第一查找表的查找结果发送至全局分发器101。
全局分发器101还用于保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系。
举例来说,全局分发器101可以包含存储电路。全局分发器101可以利用全局分发器101中的存储电路存储对应所述第一查找表的查找结果与所述第一查找关键字的映射关系。当然,全局分发器101也可以通过访问全局分发器101外部的存储电路从而存储对应所述第一查找表的查找结果与所述第一查找关键字的映射关系。
所述全局分发器还用于获取第二查找关键字,根据对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
举例来说,所述第二查找关键字可以是所述解析器对新接收到的IP报文进行解析从而获得的。
图3为本申请实施例提供的一个查找装置的结构示意图。参见图3,查找装置300包括全局分发器301、N个查找引擎302以及全局仲裁器303。N为大于1的整数。例如,N可以是2或者3。图3所示的N个查找引擎302包含了第一查找引擎……第N查找引擎。需要说明的是,图3所示的N个查找引擎302仅用于举例。另外,除了N个查找引擎302,查找装置300还可以包括其他查找引擎。所述第一查找引擎能够访问第一查找表或者所述第一查找表的一个子表。所述第一查找表对应第一查找算法。所述第一查找引擎能够访问第二查找表或者所述第二查找表的一个子表。所述第二查找表对应第二查找算法。
举例来说,所述第一查找表或者所述第二查找表可以是ACL、路由表、ILM表、MAC协议表或者QM表。所述第一查找表与所述第二查找表不同。
举例来说,所述第一查找算法或者所述第二查找算法可以是线性查找算法、最长前缀查找算法、精确查找算法或者掩码查找算法。所述第一查找算法域所述第二查找算法不同。
所述第一查找表的子表中的表项的数量小于所述第一查找表中的表项的数量。所述第二查找表的子表中的表项的数量小于所述第二查找表中的表项的数量。
举例来说,当所述第一查找引擎能够访问所述第一查找表的一个子表时,所述第N查找引擎能够访问所述第一查找表的另一个子表。当所述第一查找引擎能够访问所述第二查找表的一个子表时,所述第N查找引擎能够访问所述第二查找表的另一个子表。
全局分发器301用于确定第一查找关键字对应所述第一查找表,确定所述第一查找表对应所述第一查找引擎,将所述第一查找关键字分发给所述第一查找引擎。
举例来说,全局分发器301可以接收处理电路发送的第一信令。所述第一信令中包含了所述第一查找关键字以及所述第一查找表的标识。全局分发器301可以根据所述第一信令确定所述第一查找关键字对应所述第一查找表。所述处理电路可以是解析器。所述解析器能够对接收到的第一报文进行解析以获得所述第一查找关键字。例如,所述第一报文可以是IP报文,所述第一查找关键字可以是目的IP地址。另外,所述第一报文可以是以太网帧,所述第一查找关键字可以是目的MAC协议地址。
举例来说,当所述第一查找引擎能够访问所述第一查找表时,全局分发器301可以访问所述第一查找表的标识与所述第一查找引擎的标识的映射关系,从而确定所述第一查找表对应所述第一查找引擎。
举例来说,当所述第一查找引擎能够访问所述第一查找表的一个子表时,全局分发器301可以访问所述第一查找表的标识与存储了所述第一查找表中的所有子表的多个查找引擎的标识的映射关系,从而确定所述第一查找表对应所述第一查找引擎。所述第一查找表由多个子表组成。所述第一查找表中的多个子表与所述多个查找引擎一一对应。所述多个查找引擎包括所述第一查找引擎。
所述第一查找引擎用于根据所述第一查找算法在其能够访问的所述第一查找表或者所述第一查找表的一个子表中查找是否存在与全局分发器301分发的所述第一查找关键字匹配的表项以得到所述第一查找关键字对应的查找结果,并将所述第一查找关键字对应的查找结果输出至全局仲裁器303。
举例来说,如果所述第一查找表或者所述第一查找表的一个子表中存在与所述第一查找关键字匹配的表项,则查找结果可以是与所述第一查找关键字匹配的表项中的信息,也可以是与所述第一查找关键字匹配的表项中的索引所指示的信息。例如,与所述第一查找关键字匹配的表项中的信息,或者与所述第一查找关键字匹配的表项中的索引所指示的信息可以是下一跳的IP地址。与所述第一查找关键字匹配的表项中的索引可以是所述下一跳的IP地址的索引。此外,查找结果中还可以包括用于指示所述第一查找表或者所述第一查找表的一个子表中存在与所述第一查找关键字匹配的表项的信息。用于指示存在与所述第一查找关键字匹配的表项的信息可以是match。
举例来说,如果所述第一查找表或者所述第一查找表的一个子表中不存在与所述第一查找关键字匹配的表项,则查找结果可以是用于指示所述第一查找表或者所述第一查找表的一个子表中不存在与所述第一查找关键字匹配的表项的信息。用于指示不存在与所述第一查找关键字匹配的表项的信息可以是miss。
全局分发器301还用于确定第二查找关键字对应所述第二查找表,确定所述第二查找表对应所述第一查找引擎,将所述第二查找关键字分发给所述第一查找引擎。
举例来说,全局分发器301可以接收所述处理电路发送的第二信令。所述第二信令中包含了所述第二查找关键字以及所述第二查找表的标识。全局分发器301可以根据所述第二信令确定所述第二查找关键字对应所述第二查找表。所述处理电路能够对接收到的第二报文进行解析以获得所述第二查找关键字。例如,所述第二报文可以是IP报文,所述第二查找关键字可以是目的IP地址。另外,所述第二报文可以是以太网帧,所述第二查找关键字可以是目的MAC协议地址。
举例来说,当所述第一查找引擎能够访问所述第二查找表时,全局分发器301可以访问所述第二查找表的标识与所述第一查找引擎的标识的映射关系,从而确定所述第二查找表对应所述第一查找引擎。
举例来说,当所述第一查找引擎能够访问所述第二查找表的一个子表时,全局分发器301可以访问所述第二查找表的标识与存储了所述第二查找表中的所有子表的多个查找引擎的标识的映射关系,从而确定所述第二查找表对应所述第一查找引擎。所述第二查找表由多个子表组成。所述第二查找表中的多个子表与所述多个查找引擎一一对应。所述多个查找引擎包括所述第一查找引擎。
所述第一查找引擎还用于根据所述第二查找算法在其能够访问的所述第二查找表或者所述第二查找表的一个子表中查找是否存在与全局分发器301分发的所述第二查找关键字匹配的表项以得到所述第二查找关键字对应的查找结果,并将所述第二查找关键字对应的查找结果输出至全局仲裁器303。
举例来说,如果所述第二查找表或者所述第二查找表的一个子表中存在与所述第二查找关键字匹配的表项,则查找结果可以是与所述第二查找关键字匹配的表项中的信息,也可以是与所述第二查找关键字匹配的表项中的索引所指示的信息。例如,与所述第二查找关键字匹配的表项中的信息,或者与所述第二查找关键字匹配的表项中的索引所指示的信息可以是下一跳的IP地址。与所述第二查找关键字匹配的表项中的索引可以是所述下一跳的IP地址的索引。此外,查找结果中还可以包括用于指示所述第二查找表或者所述第二查找表的一个子表中存在与所述第二查找关键字匹配的表项的信息。用于指示存在与所述第二查找关键字匹配的表项的信息可以是match。
举例来说,如果所述第二查找表或者所述第二查找表的一个子表中不存在与所述第二查找关键字匹配的表项,则查找结果可以是用于指示所述第二查找表或者所述第二查找表的一个子表中不存在与所述第二查找关键字匹配的表项的信息。用于指示不存在与所述第二查找关键字匹配的表项的信息可以是miss。
全局仲裁器303用于接收所述第一查找关键字对应的查找结果以及所述第二查找关键字对应的查找结果。
举例来说,全局仲裁器303可以接收所述N个查找引擎302发送的查找结果。例如,全局仲裁器303可以接收所述第一查找引擎发送的查找结果。所述第一查找引擎发送的查找结果包括所述第一查找关键字对应的查找结果以及所述第二查找关键字对应的查找结果。
举例来说,全局仲裁器303可以对所述N个查找引擎302发送的查找结果进行仲裁。关于全局仲裁器303执行仲裁的具体实现,可以参考图1中的全局仲裁器103以及实施例对全局仲裁器103的描述。
可选地,图3中的查找装置还可以包括存储器。所述存储器用于在全局分发器301确定所述第一查找表对应所述第一查找引擎前,存储所述第一查找表的标识与所述第一查找引擎的标识的对应关系。
全局分发器301具体用于根据所述第一查找表的标识与所述第一查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述第一查找引擎。
可选地,所述存储器还用于在所述全局分发器确定所述第二查找表对应所述第一查找引擎前,存储所述第二查找表的标识与所述第一查找引擎的标识的对应关系。
所述全局分发器具体用于根据所述第二查找表的标识与所述第一查找引擎的标识的对应关系以及所述第二查找表的标识,确定所述第二查找表对应所述第一查找引擎。
可选地,图4为图3所示的第一查找引擎的结构示意图。参见图4,第一查找引擎400包括本地分发器401、多个查找单元402以及本地仲裁器403。其中,多个查找单元402包括第一个查找单元410和第二查找单元420。可选地,多个查找单元402还可以包括其他查找单元。其他查找单元可以是第M查找单元。M为大于2的整数。第一查找单元410能够访问所述第一查找表或者所述第一查找表中的一个子表。第二查找单元420能够访问第二查找表或者所述第二查找表中的一个子表。
本地分发器401用于接收全局分发器301分发的所述第一查找关键字,确定所述第一查找关键字对应第一查找单元410,以及将所述第一查找关键字分发至第一查找单元410。
第一查找单元410用于根据所述第一查找算法在第一查找单元410能够访问的所述第一查找表或者所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至本地仲裁器403。
本地仲裁器403用于对第一查找单元410输出的查找结果进行仲裁。
本地分发器401还用于接收全局分发器301分发的所述第二查找关键字,确定所述第二查找关键字对应第二查找单元420,以及将所述第二查找关键字分发至第二查找单元420。
第二查找单元420用于根据所述第二查找算法在第二查找单元420能够访问的所述第二查找表或者所述第二查找表中的一个子表中查找是否存在与所述第二查找关键字匹配的表项,并将查找结果输出至本地仲裁器403。
本地仲裁器403还用于对第二查找单元420输出的查找结果进行仲裁。
举例来说,多个查找单元402中的至少一个查找单元的架构是pipeline-basedSRAM。也就是说,查找单元可被配置为流水线结构。所述流水线结构包含多级静态随机存取存储器。每级静态随机存取存储器用于存储将被查找的表的数据结构。每级静态随机存取存储器有对应的解析单元。解析单元用于访问对应的静态随机存取存储器中的数据结构,对数据结构进行解析,以及将解析后的结果发送至下一级流水线。pipeline-based SRAM架构的查找单元可用于实现多种查找算法。
关于本地仲裁器403执行仲裁的具体实现,可以参考图2中的本地仲裁器203以及实施例关于本地仲裁器203的描述。
可选地,N个查找引擎302还包括第二查找引擎。所述第一查找引擎能够访问所述第一查找表或者所述第一查找表中第一子表。所述第二查找引擎能够访问所述第一查找表中的第二子表。
所述查找装置300还用于对所述第一查找引擎和第二查找引擎能够访问的表项的范围进行调整。其中,所述第一查找引擎能够访问的表项的范围从所述第一查找表或者所述第一查找表中第一子表被调整为所述第一查找表中的第三子表。所述第三子表包括所述第一子表中除第一表项之外的所有表项。所述第二查找引擎能够访问的表项的范围从所述第一查找表中的第二子表被调整为所述第一查找表中的第四子表。所述第四子表包括所述第二子表所有表项以及所述第一表项。
所述第一表项可以是一个表项或者多个表项。
举例来说,第一子表中的表项的数量可以是100。第二子表中的表项的数量可以是100。查找装置300对N个查找引擎302能够访问的表项的范围进行调整以使第一子表中的至少一个表项被移动到第二子表中。具体来说,查找装置300对查找引擎能够访问的表项的范围进行调整后,所述第一查找引擎能够访问的表项的范围是第三子表。所述第二查找引擎能够访问的表项的范围是第四子表。第三子表的数量可以是99。第四子表的数量可以是101。当然,第三子表的数量也可以是0。第四子表的数量可以是200。
图5为本申请实施例提供的一种查找方法的流程示意图。图1、图2或者图1及图2所示的查找装置可以用于执行图5所示的查找方法。参见图5,所述方法包括:
501、全局分发器确定第一查找关键字对应第一查找表,确定所述第一查找表对应N个查找引擎,将所述第一查找关键字分发给所述N个查找引擎。
N为大于1的整数,所述N个查找引擎能够访问所述第一查找表,其中,每个查找引擎只能够访问所述第一查找表的一个子表,对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法。
502、所述N个查找引擎中的每个查找引擎根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至全局仲裁器。
503、所述全局仲裁器对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果。
可选地,图5所示的方法中,
所述全局分发器确定所述第一查找表对应N个查找引擎具体包括:
根据所述第一查找表的标识与所述N个查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎,存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的所述N个查找引擎的标识的对应关系。
可选地,上述技术方案中,所述N个查找引擎包括至少一个查找引擎,所述至少一个查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器。所述第一查找单元能够访问所述第一查找表中的一个子表。所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表。所述第二查找表对应第二查找算法。
所述方法还包括:所述本地分发器接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元。
所述第一查找单元根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器。
所述本地仲裁器对所述至少一个查找引擎中的查找单元输出的查找结果进行仲裁,并将仲裁结果输出至所述全局仲裁器。
可选地,上述技术方案中,所述N个查找引擎包括第一查找引擎和第二查找引擎。所述第一查找引擎能够访问的所述第一查找表中的子表为第一子表。所述第二查找引擎能够访问的所述第一查找表中的子表为第二子表。
所述方法还包括:对所述N个查找引擎能够访问的表项的范围进行调整。其中,所述第一查找引擎能够访问的所述第一查找表中的子表被调整为第三子表。所述第三子表包括所述第一子表中除第一表项之外的所有表项。所述第二查找引擎能够访问的所述第一查找表中的子表被调整为第四子表。所述第四子表包括所述第二子表所有表项以及所述第一表项。
可选地,上述技术方案中,所述方法还包括:
所述全局仲裁器将对应所述第一查找表的查找结果发送至所述全局分发器。
所述全局分发器保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系。
所述全局分发器获取第二查找关键字,根据所述全局分发器保存的对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果。所述第二查找关键字等于所述第一查找关键字。
图1中的查找装置100包括全局分发器101、N个查找引擎102以及全局仲裁器103。举例来说,全局分发器101可以用于实现图5中涉及的全局分发器。N个查找引擎102可以用于实现图5中涉及的N个查找引擎。全局仲裁器103可以用于实现图5中涉及的全局仲裁器。上文描述的图5所示的方法以及在图5所示的方法的基础上扩展的方法中涉及的术语的含义以及具体实现,可以参考图1和/或者图2对应的实施例。此处不再赘述。
图6为本申请实施例提供的一种查找方法的流程示意图。图3、图4或者图3及图4所示的查找装置可以用于执行图6所示的查找方法。参见图6,所述方法包括:
601、全局分发器确定第一查找关键字对应第一查找表,确定所述第一查找表对应第一查找引擎,将所述第一查找关键字分发给所述第一查找引擎。
N个查找引擎包括所述第一查找引擎。N为大于1的整数。所述第一查找引擎能够访问所述第一查找表或者所述第一查找表的一个子表。所述第一查找表对应第一查找算法。所述第一查找引擎能够访问第二查找表或者所述第二查找表的一个子表。所述第二查找表对应第二查找算法。
602、所述第一查找引擎根据所述第一查找算法在其能够访问的所述第一查找表或者所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项以得到所述第一查找关键字对应的查找结果,并将所述第一查找关键字对应的查找结果输出至全局仲裁器。
603、所述全局分发器确定第二查找关键字对应所述第二查找表,确定所述第二查找表对应所述第一查找引擎,将所述第二查找关键字分发给所述第一查找引擎。
604、所述第一查找引擎根据所述第二查找算法在其能够访问的所述第二查找表或者所述第二查找表的一个子表中查找是否存在与所述全局分发器分发的所述第二查找关键字匹配的表项以得到所述第二查找关键字对应的查找结果,并将所述第二查找关键字对应的查找结果输出至所述全局仲裁器。
605、所述全局仲裁器接收所述第一查找关键字对应的查找结果以及所述第二查找关键字对应的查找结果。
可选地,图6所示的方法中,还包括:
在所述全局分发器确定所述第一查找表对应第一查找引擎前,存储器存储所述第一查找表的标识与所述第一查找引擎的标识的对应关系。
所述全局分发器确定所述第一查找表对应第一查找引擎具体包括:
所述全局分发器根据所述存储器存储的所述第一查找表的标识与所述第一查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述第一查找引擎。
可选地,上述技术方案中,还包括:
在所述全局分发器确定所述第二查找表对应所述第一查找引擎前,所述存储器存储所述第二查找表的标识与所述第一查找引擎的标识的对应关系;
所述全局分发器确定所述第二查找表对应所述第一查找引擎具体包括:
所述全局分发器根据所述存储器存储的所述第二查找表的标识与所述第一查找引擎的标识的对应关系以及所述第二查找表的标识,确定所述第二查找表对应所述第一查找引擎。
可选地,上述技术方案中,所述第一查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器。所述第一查找单元能够访问所述第一查找表或者所述第一查找表中的一个子表。所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表。
所述方法还包括:所述本地分发器接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元。
所述第一查找单元根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表或者所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器。
所述本地仲裁器对所述第一查找单元输出的查找结果进行仲裁。
所述本地分发器接收所述全局分发器分发的所述第二查找关键字,确定所述第二查找关键字对应所述第二查找单元,以及将所述第二查找关键字分发至所述第二查找单元。
所述第二查找单元根据所述第二查找算法在所述第二查找单元能够访问的所述第二查找表或者所述第二查找表中的一个子表中查找是否存在与所述第二查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器。
所述本地仲裁器对所述第二查找单元输出的查找结果进行仲裁。
可选地,上述技术方案中,所述N个查找引擎还包括第二查找引擎。所述第一查找引擎能够访问所述第一查找表或者所述第一查找表中第一子表。所述第二查找引擎能够访问所述第一查找表中的第二子表。
所述方法还包括:
对所述第一查找引擎和第二查找引擎能够访问的表项的范围进行调整。其中,所述第一查找引擎能够访问的表项的范围从所述第一查找表或者所述第一查找表中第一子表被调整为所述第一查找表中的第三子表。所述第三子表包括所述第一子表中除第一表项之外的所有表项。所述第二查找引擎能够访问的表项的范围从所述第一查找表中的第二子表被调整为所述第一查找表中的第四子表。所述第四子表包括所述第二子表所有表项以及所述第一表项。
图3中的查找装置300包括全局分发器301、N个查找引擎302以及全局仲裁器303。举例来说,全局分发器301可以用于实现图6中的全局分发器。N个查找引擎302可以用于实现图6中的N个查找引擎。全局仲裁器303可以用于实现图6中的全局仲裁器。上文描述的图6所示的方法以及在图6所示的方法的基础上扩展的方法中涉及的术语的含义以及具体实现,可以参考图3或者图4对应的实施例。此处不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:read-only memory,简称:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (32)

1.一种查找装置,其特征在于,包括:存储器、全局分发器、全局仲裁器以及N个查找引擎,N为大于1的整数;所述N个查找引擎能够访问第一查找表,其中,每个查找引擎只能够访问所述第一查找表的一个子表,对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法;
所述存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的所述N个查找引擎的标识的对应关系;
所述全局分发器,用于确定第一查找关键字对应第一查找表,根据所述第一查找表的标识与所述N个查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎,将所述第一查找关键字分发给所述N个查找引擎;
所述N个查找引擎中的每个查找引擎,用于根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至所述全局仲裁器;
所述全局仲裁器,用于对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果。
2.如权利要求1所述的装置,其特征在于,所述全局仲裁器还用于将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器还用于保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器还用于获取第二查找关键字,根据对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
3.一种查找装置,其特征在于,包括全局分发器、全局仲裁器以及N个查找引擎,N为大于1的整数;所述N个查找引擎能够访问第一查找表,其中,每个查找引擎只能够访问所述第一查找表的一个子表,对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法;
所述全局分发器,用于确定第一查找关键字对应所述第一查找表,确定所述第一查找表对应所述N个查找引擎,将所述第一查找关键字分发给所述N个查找引擎;
所述N个查找引擎中的每个查找引擎,用于根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至所述全局仲裁器;
所述全局仲裁器,用于对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果;
所述N个查找引擎包括至少一个查找引擎,所述至少一个查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表,所述第二查找表对应第二查找算法;
所述本地分发器,用于接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元,用于根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器,用于对所述至少一个查找引擎中的查找单元输出的查找结果进行仲裁,并将仲裁结果输出至所述全局仲裁器。
4.如权利要求3所述的装置,其特征在于,还包括存储器,所述存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的所述N个查找引擎的标识的对应关系;
所述全局分发器具体用于根据所述第一查找表的标识与所述N个查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎。
5.如权利要求3或4所述的装置,其特征在于,所述全局仲裁器还用于将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器还用于保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器还用于获取第二查找关键字,根据对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
6.一种查找装置,其特征在于,包括全局分发器、全局仲裁器以及N个查找引擎,N为大于1的整数;所述N个查找引擎能够访问第一查找表,其中,每个查找引擎只能够访问所述第一查找表的一个子表,对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法;
所述全局分发器,用于确定第一查找关键字对应所述第一查找表,确定所述第一查找表对应所述N个查找引擎,将所述第一查找关键字分发给所述N个查找引擎;
所述N个查找引擎中的每个查找引擎,用于根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至所述全局仲裁器;
所述全局仲裁器,用于对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果;
所述N个查找引擎包括第一查找引擎和第二查找引擎,所述第一查找引擎能够访问的所述第一查找表中的子表为第一子表,所述第二查找引擎能够访问的所述第一查找表中的子表为第二子表;
所述装置还用于对所述N个查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的所述第一查找表中的子表被调整为第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的所述第一查找表中的子表被调整为第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
7.如权利要求6所述的装置,其特征在于,还包括存储器,所述存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的所述N个查找引擎的标识的对应关系;
所述全局分发器具体用于根据所述第一查找表的标识与所述N个查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎。
8.如权利要求6或7所述的装置,其特征在于,所述N个查找引擎包括至少一个查找引擎,所述至少一个查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表,所述第二查找表对应第二查找算法;
所述本地分发器,用于接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元,用于根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器,用于对所述至少一个查找引擎中的查找单元输出的查找结果进行仲裁,并将仲裁结果输出至所述全局仲裁器。
9.如权利要求8所述的装置,其特征在于,所述全局仲裁器还用于将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器还用于保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器还用于获取第二查找关键字,根据对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
10.如权利要求6或7所述的装置,所述全局仲裁器还用于将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器还用于保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器还用于获取第二查找关键字,根据对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
11.一种查找装置,其特征在于,包括:全局分发器、全局仲裁器以及N个查找引擎,N为大于1的整数;所述N个查找引擎包括第一查找引擎,所述第一查找引擎能够访问第一查找表或者所述第一查找表的一个子表,所述第一查找表对应第一查找算法,所述第一查找引擎能够访问第二查找表或者所述第二查找表的一个子表,所述第二查找表对应第二查找算法;
所述全局分发器,用于确定第一查找关键字对应所述第一查找表,确定所述第一查找表对应所述第一查找引擎,将所述第一查找关键字分发给所述第一查找引擎;
所述第一查找引擎,用于根据所述第一查找算法在其能够访问的所述第一查找表或者所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项以得到所述第一查找关键字对应的查找结果,并将所述第一查找关键字对应的查找结果输出至所述全局仲裁器;
所述全局分发器,还用于确定第二查找关键字对应所述第二查找表,确定所述第二查找表对应所述第一查找引擎,将所述第二查找关键字分发给所述第一查找引擎;
所述第一查找引擎,还用于根据所述第二查找算法在其能够访问的所述第二查找表或者所述第二查找表的一个子表中查找是否存在与所述全局分发器分发的所述第二查找关键字匹配的表项以得到所述第二查找关键字对应的查找结果,并将所述第二查找关键字对应的查找结果输出至所述全局仲裁器;
所述全局仲裁器,用于接收所述第一查找关键字对应的查找结果以及所述第二查找关键字对应的查找结果。
12.如权利要求11所述的装置,其特征在于,还包括存储器,所述存储器用于在所述全局分发器确定所述第一查找表对应所述第一查找引擎前,存储所述第一查找表的标识与所述第一查找引擎的标识的对应关系;
所述全局分发器具体用于根据所述第一查找表的标识与所述第一查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述第一查找引擎。
13.如权利要求12所述的装置,其特征在于,所述存储器还用于在所述全局分发器确定所述第二查找表对应所述第一查找引擎前,存储所述第二查找表的标识与所述第一查找引擎的标识的对应关系;
所述全局分发器具体用于根据所述第二查找表的标识与所述第一查找引擎的标识的对应关系以及所述第二查找表的标识,确定所述第二查找表对应所述第一查找引擎。
14.如权利要求11至13中任一所述的装置,其特征在于,所述第一查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表或者所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表;
所述本地分发器,用于接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元,用于根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表或者所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器,用于对所述第一查找单元输出的查找结果进行仲裁;
所述本地分发器,还用于接收所述全局分发器分发的所述第二查找关键字,确定所述第二查找关键字对应所述第二查找单元,以及将所述第二查找关键字分发至所述第二查找单元;
所述第二查找单元,用于根据所述第二查找算法在所述第二查找单元能够访问的所述第二查找表或者所述第二查找表中的一个子表中查找是否存在与所述第二查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器,还用于对所述第二查找单元输出的查找结果进行仲裁。
15.如权利要求14所述的装置,其特征在于,所述N个查找引擎还包括第二查找引擎,所述第一查找引擎能够访问所述第一查找表或者所述第一查找表中第一子表,所述第二查找引擎能够访问所述第一查找表中的第二子表;
所述装置还用于对所述第一查找引擎和第二查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的表项的范围从所述第一查找表或者所述第一查找表中第一子表被调整为所述第一查找表中的第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的表项的范围从所述第一查找表中的第二子表被调整为所述第一查找表中的第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
16.如权利要求11至13中任一所述的装置,其特征在于,所述N个查找引擎还包括第二查找引擎,所述第一查找引擎能够访问所述第一查找表或者所述第一查找表中第一子表,所述第二查找引擎能够访问所述第一查找表中的第二子表;
所述装置还用于对所述第一查找引擎和第二查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的表项的范围从所述第一查找表或者所述第一查找表中第一子表被调整为所述第一查找表中的第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的表项的范围从所述第一查找表中的第二子表被调整为所述第一查找表中的第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
17.一种查找方法,其特征在于,包括:
全局分发器确定第一查找关键字对应第一查找表,根据所述第一查找表的标识与N个查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎,将所述第一查找关键字分发给所述N个查找引擎,N为大于1的整数,所述N个查找引擎能够访问所述第一查找表,其中,每个查找引擎只能够访问所述第一查找表的一个子表,对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法,存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的所述N个查找引擎的标识的对应关系;
所述N个查找引擎中的每个查找引擎根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至全局仲裁器;
所述全局仲裁器对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果。
18.如权利要求17所述的方法,其特征在于,还包括:
所述全局仲裁器将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器获取第二查找关键字,根据所述全局分发器保存的对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
19.一种查找方法,其特征在于,包括:
全局分发器确定第一查找关键字对应第一查找表,确定所述第一查找表对应N个查找引擎,将所述第一查找关键字分发给所述N个查找引擎,N为大于1的整数,所述N个查找引擎能够访问所述第一查找表,其中,每个查找引擎只能够访问所述第一查找表的一个子表,对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法;
所述N个查找引擎中的每个查找引擎根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至全局仲裁器;
所述全局仲裁器对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果;
所述N个查找引擎包括至少一个查找引擎,所述至少一个查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表,所述第二查找表对应第二查找算法;
所述方法还包括:
所述本地分发器接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器对所述至少一个查找引擎中的查找单元输出的查找结果进行仲裁,并将仲裁结果输出至所述全局仲裁器。
20.如权利要求19所述的方法,其特征在于,所述全局分发器确定所述第一查找表对应N个查找引擎具体包括:
根据所述第一查找表的标识与所述N个查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎,存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的所述N个查找引擎的标识的对应关系。
21.如权利要求19所述的方法,其特征在于,还包括:
所述全局仲裁器将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器获取第二查找关键字,根据所述全局分发器保存的对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
22.一种查找方法,其特征在于,包括:
全局分发器确定第一查找关键字对应第一查找表,确定所述第一查找表对应N个查找引擎,将所述第一查找关键字分发给所述N个查找引擎,N为大于1的整数,所述N个查找引擎能够访问所述第一查找表,其中,每个查找引擎只能够访问所述第一查找表的一个子表,对于所述第一查找表中的任意两个子表N1和N2,所述子表N1中的任意一个表项不同于所述子表N2中的任意一个表项,所述第一查找表对应第一查找算法;
所述N个查找引擎中的每个查找引擎根据所述第一查找算法在其能够访问的所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项,并将查找结果输出至全局仲裁器;
所述全局仲裁器对每个查找引擎输出的查找结果进行仲裁,得到对应所述第一查找表的查找结果;
所述N个查找引擎包括第一查找引擎和第二查找引擎,所述第一查找引擎能够访问的所述第一查找表中的子表为第一子表,所述第二查找引擎能够访问的所述第一查找表中的子表为第二子表;
所述方法还包括:
对所述N个查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的所述第一查找表中的子表被调整为第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的所述第一查找表中的子表被调整为第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
23.如权利要求22所述的方法,其特征在于,所述全局分发器确定所述第一查找表对应N个查找引擎具体包括:
根据所述第一查找表的标识与所述N个查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述N个查找引擎,存储器中存储有所述第一查找表的标识与存储所述第一查找表中的所有子表的所述N个查找引擎的标识的对应关系。
24.如权利要求22或23所述的方法,其特征在于,所述N个查找引擎包括至少一个查找引擎,所述至少一个查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表,所述第二查找表对应第二查找算法;
所述方法还包括:
所述本地分发器接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器对所述至少一个查找引擎中的查找单元输出的查找结果进行仲裁,并将仲裁结果输出至所述全局仲裁器。
25.如权利要求24所述的方法,其特征在于,还包括:
所述全局仲裁器将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器获取第二查找关键字,根据所述全局分发器保存的对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
26.如权利要求22或23所述的方法,其特征在于,还包括:
所述全局仲裁器将对应所述第一查找表的查找结果发送至所述全局分发器;
所述全局分发器保存对应所述第一查找表的查找结果与所述第一查找关键字的映射关系;
所述全局分发器获取第二查找关键字,根据所述全局分发器保存的对应所述第一查找表的查找结果与所述第一查找关键字的映射关系确定第二查找关键字对应的查找结果是对应所述第一查找表的查找结果,所述第二查找关键字等于所述第一查找关键字。
27.一种查找方法,其特征在于,包括:
全局分发器确定第一查找关键字对应第一查找表,确定所述第一查找表对应第一查找引擎,将所述第一查找关键字分发给所述第一查找引擎,N个查找引擎包括所述第一查找引擎,N为大于1的整数,所述第一查找引擎能够访问所述第一查找表或者所述第一查找表的一个子表,所述第一查找表对应第一查找算法,所述第一查找引擎能够访问第二查找表或者所述第二查找表的一个子表,所述第二查找表对应第二查找算法;
所述第一查找引擎根据所述第一查找算法在其能够访问的所述第一查找表或者所述第一查找表的一个子表中查找是否存在与所述全局分发器分发的所述第一查找关键字匹配的表项以得到所述第一查找关键字对应的查找结果,并将所述第一查找关键字对应的查找结果输出至全局仲裁器;
所述全局分发器确定第二查找关键字对应所述第二查找表,确定所述第二查找表对应所述第一查找引擎,将所述第二查找关键字分发给所述第一查找引擎;
所述第一查找引擎根据所述第二查找算法在其能够访问的所述第二查找表或者所述第二查找表的一个子表中查找是否存在与所述全局分发器分发的所述第二查找关键字匹配的表项以得到所述第二查找关键字对应的查找结果,并将所述第二查找关键字对应的查找结果输出至所述全局仲裁器;
所述全局仲裁器接收所述第一查找关键字对应的查找结果以及所述第二查找关键字对应的查找结果。
28.如权利要求27所述的方法,其特征在于,还包括:
在所述全局分发器确定所述第一查找表对应第一查找引擎前,存储器存储所述第一查找表的标识与所述第一查找引擎的标识的对应关系;
所述全局分发器确定所述第一查找表对应第一查找引擎具体包括:
所述全局分发器根据所述存储器存储的所述第一查找表的标识与所述第一查找引擎的标识的对应关系以及所述第一查找表的标识,确定所述第一查找表对应所述第一查找引擎。
29.如权利要求28所述的方法,其特征在于,
在所述全局分发器确定所述第二查找表对应所述第一查找引擎前,所述存储器存储所述第二查找表的标识与所述第一查找引擎的标识的对应关系;
所述全局分发器确定所述第二查找表对应所述第一查找引擎具体包括:
所述全局分发器根据所述存储器存储的所述第二查找表的标识与所述第一查找引擎的标识的对应关系以及所述第二查找表的标识,确定所述第二查找表对应所述第一查找引擎。
30.如权利要求27至29中任一所述的方法,其特征在于,所述第一查找引擎包括:本地分发器、第一个查找单元、第二查找单元以及本地仲裁器;所述第一查找单元能够访问所述第一查找表或者所述第一查找表中的一个子表,所述第二查找单元能够访问第二查找表或者所述第二查找表中的一个子表;
所述方法还包括:
所述本地分发器接收所述全局分发器分发的所述第一查找关键字,确定所述第一查找关键字对应所述第一查找单元,以及将所述第一查找关键字分发至所述第一查找单元;
所述第一查找单元根据所述第一查找算法在所述第一查找单元能够访问的所述第一查找表或者所述第一查找表中的一个子表中查找是否存在与所述第一查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器对所述第一查找单元输出的查找结果进行仲裁;
所述本地分发器接收所述全局分发器分发的所述第二查找关键字,确定所述第二查找关键字对应所述第二查找单元,以及将所述第二查找关键字分发至所述第二查找单元;
所述第二查找单元根据所述第二查找算法在所述第二查找单元能够访问的所述第二查找表或者所述第二查找表中的一个子表中查找是否存在与所述第二查找关键字匹配的表项,并将查找结果输出至所述本地仲裁器;
所述本地仲裁器对所述第二查找单元输出的查找结果进行仲裁。
31.如权利要求30所述的方法,其特征在于,所述N个查找引擎还包括第二查找引擎,所述第一查找引擎能够访问所述第一查找表或者所述第一查找表中第一子表,所述第二查找引擎能够访问所述第一查找表中的第二子表;
所述方法还包括:
对所述第一查找引擎和第二查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的表项的范围从所述第一查找表或者所述第一查找表中第一子表被调整为所述第一查找表中的第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的表项的范围从所述第一查找表中的第二子表被调整为所述第一查找表中的第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
32.如权利要求27至29中任一所述的方法,其特征在于,所述N个查找引擎还包括第二查找引擎,所述第一查找引擎能够访问所述第一查找表或者所述第一查找表中第一子表,所述第二查找引擎能够访问所述第一查找表中的第二子表;
所述方法还包括:
对所述第一查找引擎和第二查找引擎能够访问的表项的范围进行调整,其中,所述第一查找引擎能够访问的表项的范围从所述第一查找表或者所述第一查找表中第一子表被调整为所述第一查找表中的第三子表,所述第三子表包括所述第一子表中除第一表项之外的所有表项,所述第二查找引擎能够访问的表项的范围从所述第一查找表中的第二子表被调整为所述第一查找表中的第四子表,所述第四子表包括所述第二子表所有表项以及所述第一表项。
CN201480000376.0A 2014-04-30 2014-04-30 查找装置及方法 Active CN104012053B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/076667 WO2015165104A1 (zh) 2014-04-30 2014-04-30 查找装置及方法

Publications (2)

Publication Number Publication Date
CN104012053A CN104012053A (zh) 2014-08-27
CN104012053B true CN104012053B (zh) 2017-01-25

Family

ID=51370938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480000376.0A Active CN104012053B (zh) 2014-04-30 2014-04-30 查找装置及方法

Country Status (5)

Country Link
US (2) US10812382B2 (zh)
EP (2) EP3761575A1 (zh)
CN (1) CN104012053B (zh)
ES (1) ES2813903T3 (zh)
WO (1) WO2015165104A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3761575A1 (en) 2014-04-30 2021-01-06 Huawei Technologies Co., Ltd. Search apparatus and method
CN104301228A (zh) * 2014-09-12 2015-01-21 中国电子科技集团公司第三十二研究所 网络处理器中查找模块的实现方法及系统
CN117914784A (zh) * 2022-10-11 2024-04-19 深圳市中兴微电子技术有限公司 并行查表装置、方法、设备及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6580712B1 (en) * 1998-12-19 2003-06-17 3Com Technologies System for controlling look-ups in a data table in a network switch
CN1905523A (zh) * 2006-08-02 2007-01-31 华为技术有限公司 一种多域流分类的实现方法
CN101242362A (zh) * 2008-03-07 2008-08-13 华为技术有限公司 查找键值生成装置及方法
CN101848248A (zh) * 2010-06-04 2010-09-29 华为技术有限公司 一种规则查找方法和装置
CN103401777A (zh) * 2013-08-21 2013-11-20 中国人民解放军国防科学技术大学 Openflow的并行查找方法和系统
US8599853B2 (en) * 2010-04-16 2013-12-03 Wipro Limited System and method for an exact match search using pointer based pipelined multibit trie traversal technique
CN103473237A (zh) * 2012-06-08 2013-12-25 苏州雄立科技有限公司 键值分组方法

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430527B1 (en) * 1998-05-06 2002-08-06 Avici Systems Prefix search circuitry and method
US6678269B1 (en) * 1998-10-05 2004-01-13 Alcatel Network switching device with disparate database formats
US6810037B1 (en) 1999-03-17 2004-10-26 Broadcom Corporation Apparatus and method for sorted table binary search acceleration
US6678678B2 (en) 2000-03-09 2004-01-13 Braodcom Corporation Method and apparatus for high speed table search
US6798777B1 (en) 2000-04-17 2004-09-28 Juniper Networks, Inc. Filtering and route lookup in a switching device
US6957272B2 (en) * 2000-05-24 2005-10-18 Alcatel Internetworking (Pe), Inc. Stackable lookup engines
US6629099B2 (en) * 2000-12-07 2003-09-30 Integrated Silicon Solution, Inc. Paralleled content addressable memory search engine
US7269546B2 (en) * 2001-05-09 2007-09-11 International Business Machines Corporation System and method of finding documents related to other documents and of finding related words in response to a query to refine a search
US7099325B1 (en) 2001-05-10 2006-08-29 Advanced Micro Devices, Inc. Alternately accessed parallel lookup tables for locating information in a packet switched network
US7076602B2 (en) * 2001-11-05 2006-07-11 Hywire Ltd. Multi-dimensional associative search engine having an external memory
US7212531B1 (en) * 2001-11-27 2007-05-01 Marvell Semiconductor Israel Ltd. Apparatus and method for efficient longest prefix match lookup
US6954823B1 (en) * 2001-12-27 2005-10-11 Cypress Semiconductor Corporation Search engine device and method for generating output search responses from multiple input search responses
US7039018B2 (en) 2002-07-17 2006-05-02 Intel Corporation Technique to improve network routing using best-match and exact-match techniques
KR100541846B1 (ko) 2002-11-27 2006-01-11 한국전자통신연구원 3 단계 테이블로 구성된 아이피 주소 룩업 시스템 및 그방법
US20040186828A1 (en) 2002-12-24 2004-09-23 Prem Yadav Systems and methods for enabling a user to find information of interest to the user
US7571156B1 (en) 2003-03-28 2009-08-04 Netlogic Microsystems, Inc. Network device, storage medium and methods for incrementally updating a forwarding database
DE10329856A1 (de) 2003-07-02 2005-02-03 Micronas Gmbh Verfahren und Vorrichtung zur Ermittlung des Verhältnisses zwischen einer RC-Zeitkonstante in einer integrierten Schaltung und einem Sollwert
US7299227B2 (en) * 2003-09-09 2007-11-20 Stmicroelectronics, Inc. Method and system for providing cascaded trie-based network packet search engines
JP4129819B2 (ja) * 2003-10-06 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース検索システム及びその検索方法並びにプログラム
US7499912B2 (en) * 2003-10-23 2009-03-03 Hywire Ltd. Search method using coded keys
US20060036659A1 (en) * 2004-08-12 2006-02-16 Colin Capriati Method of retrieving information using combined context based searching and content merging
US7577641B2 (en) 2004-09-07 2009-08-18 Sas Institute Inc. Computer-implemented system and method for analyzing search queries
US7606231B2 (en) * 2005-02-18 2009-10-20 Broadcom Corporation Pipeline architecture for a network device
US7440405B2 (en) * 2005-03-11 2008-10-21 Reti Corporation Apparatus and method for packet forwarding with quality of service and rate control
US7844590B1 (en) * 2005-06-16 2010-11-30 Eightfold Logic, Inc. Collection and organization of actual search results data for particular destinations
WO2007002466A2 (en) * 2005-06-22 2007-01-04 Netlogic Microsystems, Inc. Access control list processor
US7895193B2 (en) * 2005-09-30 2011-02-22 Microsoft Corporation Arbitration of specialized content using search results
US20070124194A1 (en) * 2005-11-14 2007-05-31 Barnette James R Jr Systems and methods to facilitate keyword portfolio management
US7529746B2 (en) * 2006-09-19 2009-05-05 Netlogic Microsystems, Inc. Search circuit having individually selectable search engines
US7953721B1 (en) * 2006-11-27 2011-05-31 Netlogic Microsystems, Inc. Integrated search engine devices that support database key dumping and methods of operating same
US7987205B1 (en) * 2006-11-27 2011-07-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
US7873633B2 (en) * 2007-07-13 2011-01-18 Microsoft Corporation Interleaving search results
US20090210412A1 (en) 2008-02-01 2009-08-20 Brian Oliver Method for searching and indexing data and a system for implementing same
CN101241499B (zh) * 2008-02-26 2011-09-21 中兴通讯股份有限公司 在高内存访问位宽下实现Patricia查找树的方法
JP5283478B2 (ja) * 2008-10-23 2013-09-04 株式会社日立ソリューションズ 検索システム
US8321399B2 (en) * 2008-12-17 2012-11-27 Sap Ag Method and system for searching data
CN101505272B (zh) * 2009-03-02 2011-04-20 浙江理工大学 一种基于p2p的查找有关节点子集合的方法
US8179898B2 (en) * 2009-06-11 2012-05-15 Alcatel Lucent Packet processing using braided tries
US9009135B2 (en) 2010-01-29 2015-04-14 Oracle International Corporation Method and apparatus for satisfying a search request using multiple search engines
US8495334B2 (en) * 2011-02-06 2013-07-23 International Business Machines Corporation Address translation for use in a pattern matching accelerator
WO2012126180A1 (en) * 2011-03-24 2012-09-27 Microsoft Corporation Multi-layer search-engine index
JP5320433B2 (ja) 2011-05-10 2013-10-23 株式会社日立ソリューションズ 統合検索装置、統合検索システム、統合検索方法
WO2013020002A1 (en) 2011-08-02 2013-02-07 Cavium, Inc. Incremental update of rules for packet classification
US8909615B2 (en) * 2011-08-30 2014-12-09 Open Text S.A. System and method of managing capacity of search index partitions
US8990176B2 (en) * 2012-09-10 2015-03-24 Microsoft Technology Licensing, Llc Managing a search index
US9292525B2 (en) * 2013-06-19 2016-03-22 BlackBerry Limited; 2236008 Ontario Inc. Searching data using pre-prepared search data
US9251202B1 (en) * 2013-06-25 2016-02-02 Google Inc. Corpus specific queries for corpora from search query
CN104253765B (zh) * 2013-06-28 2017-11-24 华为技术有限公司 一种数据包交换方法、装置以及接入交换机和交换系统
US9674087B2 (en) * 2013-09-15 2017-06-06 Nicira, Inc. Performing a multi-stage lookup to classify packets
EP3761575A1 (en) 2014-04-30 2021-01-06 Huawei Technologies Co., Ltd. Search apparatus and method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6580712B1 (en) * 1998-12-19 2003-06-17 3Com Technologies System for controlling look-ups in a data table in a network switch
CN1905523A (zh) * 2006-08-02 2007-01-31 华为技术有限公司 一种多域流分类的实现方法
CN101242362A (zh) * 2008-03-07 2008-08-13 华为技术有限公司 查找键值生成装置及方法
US8599853B2 (en) * 2010-04-16 2013-12-03 Wipro Limited System and method for an exact match search using pointer based pipelined multibit trie traversal technique
CN101848248A (zh) * 2010-06-04 2010-09-29 华为技术有限公司 一种规则查找方法和装置
CN103473237A (zh) * 2012-06-08 2013-12-25 苏州雄立科技有限公司 键值分组方法
CN103401777A (zh) * 2013-08-21 2013-11-20 中国人民解放军国防科学技术大学 Openflow的并行查找方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
网络处理器原型系统路由查找算法的研究;张荣高;《中国优秀硕士学位论文全文数据库 信息科技辑》;20071115(第11期);全文 *

Also Published As

Publication number Publication date
WO2015165104A1 (zh) 2015-11-05
ES2813903T3 (es) 2021-03-25
EP3761575A1 (en) 2021-01-06
US20200244578A1 (en) 2020-07-30
EP3131240A4 (en) 2017-05-17
EP3131240A1 (en) 2017-02-15
US11606295B2 (en) 2023-03-14
CN104012053A (zh) 2014-08-27
US20170046444A1 (en) 2017-02-16
EP3131240B1 (en) 2020-06-10
US10812382B2 (en) 2020-10-20

Similar Documents

Publication Publication Date Title
CN104580027B (zh) 一种OpenFlow报文转发方法及设备
CN108566296B (zh) 网络设备分层方法、网络管理设备及计算机可读存储介质
CN107040393B (zh) 一种路由管理方法和设备
US11606295B2 (en) Search apparatus and method
Leng et al. A mechanism for reducing flow tables in software defined network
CN105373746B (zh) 一种分布式数据处理方法和装置
CN102375862B (zh) 大数据量消息管理方法和装置
CN106682006A (zh) 关于通信内容的信息提示方法和装置
CN101694656A (zh) 搜索请求方法、搜索方法、设备及系统
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
CN107888419A (zh) 一种交换机网络拓扑生成方法及装置
CN106302117A (zh) 消息传输系统、方法和装置
CN104424316B (zh) 一种数据存储方法、数据查询方法、相关装置和系统
CN107995116A (zh) 报文发送方法及通信设备
CN104253754A (zh) 一种acl快速匹配的方法和设备
CN104463460B (zh) 用于网络数据投放的排期信息的处理方法及装置
CN110519147A (zh) 数据帧传输方法、装置、设备和计算机可读存储介质
CN100456747C (zh) 一种单播反向路径检查的实现方法和网络设备
CN102763376B (zh) 用于电信网络环境中共同组动作过滤的方法和系统
CN106230684A (zh) 报文转发方法、交换机和系统
CN109241462A (zh) 网页黑词处理方法、装置、设备及存储介质
CN104506429B (zh) 一种管理路由器备份组的方法、路由器及系统
CN104978348B (zh) 数据推送的方法及装置
CN105095283A (zh) 网络社交系统中准好友的推荐方法和系统
CN104951550B (zh) 数据存储方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant