首页> 中国专利> 用于在网络交换机中利用集中式存储器池的表搜索的装置和方法

用于在网络交换机中利用集中式存储器池的表搜索的装置和方法

摘要

一种网络交换机包括:在第一处理器核中的多个分组处理单元。接口模块被连接到分组处理单元。接口模块支持统一的表搜索请求以及统一的表搜索响应接口。公共存储器池被连接到接口模块。公共存储器池包括能被配置以支持多个并行表搜索请求的、各种存储器类型。

著录项

  • 公开/公告号CN104135437A

    专利类型发明专利

  • 公开/公告日2014-11-05

    原文格式PDF

  • 申请/专利权人 西普联特公司;

    申请/专利号CN201410182691.1

  • 申请日2014-04-30

  • 分类号H04L12/741(20130101);H04L12/743(20130101);H04L12/745(20130101);G06F17/30(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人酆迅;赵林琳

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 02:09:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-15

    专利权的转移 IPC(主分类):H04L12/741 登记生效日:20200427 变更前: 变更后: 申请日:20140430

    专利申请权、专利权的转移

  • 2018-12-18

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/741 变更前: 变更后: 申请日:20140430

    专利权人的姓名或者名称、地址的变更

  • 2018-04-10

    授权

    授权

  • 2015-08-05

    专利申请权的转移 IPC(主分类):H04L12/741 变更前: 变更后: 登记生效日:20150717 申请日:20140430

    专利申请权、专利权的转移

  • 2015-07-01

    实质审查的生效 IPC(主分类):H04L12/741 申请日:20140430

    实质审查的生效

  • 2014-11-05

    公开

    公开

查看全部

说明书

相关申请的交叉引用

本申请要求2013年4月30日提交的美国临时申请序列第61/817,810号的优先权,通过引用将其全文引用于此。

技术领域

本申请涉及网络环境中的通信。更具体地,本发明涉及在高速网络处理单元中执行表搜索。

背景技术

在网络交换单元中的表搜索的示例包括:用于媒体接入控制(MAC)地址查找的哈希操作,用于因特网协议(IP)路由的最长前缀匹配(LPM),用于接入控制列表(ACL)的通配符匹配(wild-cardmatching)以及用于控制数据的直接存储访问。

在市场上已经出现软件定义网络(SDN)。SDN允许通过对低层功能性进行抽象来管理网络。这是通过将执行关于业务发往何处的判决的系统(控制平面)从将业务转发到选定的目的地的低层系统(数据平面)去耦合来实现的。

表搜索如软件所见是处于灵活控制路径的核心。交换机执行对每个进入分组的查找,并且执行由搜索命中结果指示的动作或者由表搜索失败指示的默认动作。

由于表搜索对于SDN是至关重要的,将期望提供用于执行这类搜索的技术。

发明内容

网络交换机包括在第一处理器核中的分组处理单元。接口模块被连接到分组处理单元。接口模块支持统一的表搜索请求接口以及统一的表搜索响应接口。公共存储器池被连接到接口模块。公共存储器池包括可被配置为支持多个并行表搜索请求的各种存储器类型。

附图说明

如在附图中所示,前述内容将从以下对于本发明的示例性实施方式的更具体的描述中更明显,在附图中类似的参考标号在不同的视图中指代相同的部件。

图1图示根据本发明实施方式所配置的网络交换机。

图2图示根据本发明实施方式所利用接口模块和公共存储器池。

图3图示根据本发明实施方式所利用的示例性接口模块和公共存储器池。

图4图示根据本发明的实施方式所利用的表搜索配置信息。

图5图示与本发明的实施方式关联的通用表搜索参数。

图6图示与本发明的实施方式关联的直接表访问搜索参数。

图7图示与本发明的实施方式关联的哈希搜索参数。

图8图示与本发明的实施方式关联的TCAM搜索参数。

图9图示根据本发明的实施方式所利用的TCAM架构。

具体实施方式

图1示出了根据本发明实施方式所配置的网络交换机100。网络交换机100包括业务管理器101以及一个或多个分组处理单元102_1至102_N,其向分组修改器104分发处理的分组。这些组件形成核106_1。每个核可以存在多个实例,诸如106_1至106_N。接口模块108提供到公共存储器池110的接口。正如从以下讨论中将理解的,该架构支持用于多核网络交换机的集中式表搜索引擎。每个核106可以利用相同的接口模块108和公共存储器池110。

该架构通过统一的请求和结果接口支持多个平行表搜索。公共存储器池110支持对于存储器资源的有效使用。正如以下所讨论的,该架构还灵活地生成搜索键值,以利用不同尺寸的搜索键值来执行不同类型的表搜索。还可以支持混合表搜索。

图2图示了接口模块108包括一组存储器搜索逻辑接口200_1至200_N。每个存储器搜索逻辑接口200遵循统一的表请求接口格式和统一的表响应接口格式。每个存储器搜索逻辑接口200进行独立请求。因此,公共存储器池110处理大量并行请求。

公共存储器110包括各种存储器类型202_1至202_N。存储器类型可以包括直接存取存储器(例如,静态随机存取存储器(SRAM)以及三态内容可寻址存储器(TCAM)。TCAM支持对于存储的数据字中一个或多个比特的“不关注”或“X”态。这增加了灵活性,但是增加的灵活性是以超过两态存储器的附加成本而获得的,因为TCAM编码三个可能的状态而不是两个。TCAM经常被用于最长前缀匹配和存取控制列表搜索。TCAM是昂贵的交换组件。正如以下所讨论的,本发明的实施方式灵活地利用了TCAM资源。

图3图示接口模块108和公共存储器池110的实施方式。接口模块108包括接口单元300以接收表搜索请求。表搜索请求指向包括逻辑以实施特定的表搜索请求的引擎。引擎可以包括最长前缀匹配(LPM)引擎302,哈希搜索引擎304,直接存储器搜索引擎306以及TCAM引擎308。本发明的一个实施方式包括每个引擎的多个实例。每个引擎的输出指向一个片上网络310。片上网络310被实施为用来提供如由表请求接口所指定的、对公共存储器池110中的所有存储器资源的访问。

在该示例中,公共存储器池110包括一组SRAM资源312_0至312_N以及TCAM314。如下所讨论的,在TCAM314中命中引起对用于对应控制信息的专用SRAM资源的访问。在存储器中表查找的结果被导向片上网络316,该片上网络316将结果路由到接口单元300。

图4图示可以根据本发明的实施方式使用的配置表。配置表在接口单元300中建立一组配置文档。配置表建立如何形成搜索键值,执行何种类型的搜索以及利用那个处理引擎。在该示例中,配置表具有四列以及八行。图中图示了用于一列的比特字段。第一字段是8比特的“table_id”(表标识),其用于作为表的行中的索引。由于在该示例中存在八行,存在对于八个不同搜索配置文档的访问。每个配置文档包含多至四个搜索命令;每次搜索可以是相同的或者不同的表。

下一字段是48比特的“key_byte_mask”(键值字节掩码)字段。该字段指定搜索键值的构造。也即,掩码说明来自输入统一表请求接口的哪些比特需要被解释为特定的搜索命令。例如,用于层2桥接器的目的地地址将设定与用于哈希查找的目的地MAC地址和桥接器域的位置对应的字节位图。同时,在一个分别的搜索命令中,源地址查找可以利用被设定用于源MAC地址和相同的桥接器域的搜索键值字节掩码而被执行。形成具有字节位图的搜索键值的灵活性不仅简化了控制路径设计,而且还缩小了硬件,因为不需要额外的硬件来针对两次查找来两次提取相同的桥接器域。而且,软件可以指定对于特定搜索请求的优先级。例如,在桥接环境中,用户可以设置源地址查找作为较低优先级,以便使得搜索引擎仅在存在空闲带宽时执行这种搜索,因为源地址通常能够从将来的分组中导出。这是示出搜索引擎方案的应用以及优势的一个示例。还应该理解,本发明提供协议独立的搜索键值,这有利于灵活性。

“ecmp_en”和“ecmp_hash_byte_start”字段是专用于LPM搜索的。“rslt_qw_start”字段指定用于向其发送结果的逻辑通信通道的起点,而“rslt_qw_inc”字段指定向其发送结果的通道递增数目。例如,单个搜索命令的结果可以是256比特宽,被划分为四个通道,每个通道是64比特宽。用于整个搜索配置文档的结果能够多至1024比特,因此其可以采用多个循环周期以返回所有结果。每个搜索命令在0-15之间配置“rslt_qw_start”并且在0-3之间配置“result_qw_inc”,以指定将结果布置在16双字中的何处。

“regret_table”字段是服务质量参数;它指定当搜索引擎被拥塞,哪个要求查询的重新部署。“age_en”字段是表条目逐出参数,它有助于用于调试的目的。“hash_way_cnt”字段支持具体的哈希搜索。“eng_id”字段指定多个处理引擎中的一个处理引擎。

图5图示根据本发明实施方式所配置的通用搜索引擎表500。搜索引擎表500指定根据图4的配置信息处理的搜索请求。在一个实施方式中,搜索引擎表500包括搜索键值部分502以及控制数据部分504。搜索键值部分502具有各自的搜索键值参数506_1至506_N。搜索键值参数可以从键值尺寸、哈希函数配置、存储器块配置等等中选择。因此,本发明支持不同的指定的键值尺寸。哈希函数配置参数允许指定映射到存储器的不同的方式。存储器块配置是物理存储器资源的范围。

类似地,控制数据部分504具有各自的数据参数508_1至508_N。数据参数可以从数据尺寸、数据存储器块配置等等中选择。因此,本发明支持不同的数据尺寸结果。存储器块配置允许对存储器资源的抽象引用。

因此,键值尺寸和控制数据都能够被配置以不同的尺寸;除了TCAM表格的所有表格均被配置为灵活地基于准确的应用用途被存储在集中式SRAM池的某个部分中。

通用搜索引擎表500支持各种搜索查询。图6图示被配置用于直接表存取的表600。搜索键值部分502是保留的。控制数据部分包括数据尺寸、池、row_blk_start和row_blk_cnt参数。这些参数可以与SRAM池结合使用,该SRAM池具有16MB的SRAM被划分为8个相同的池。每个池具有2MB的存储器。可以使用支持每个循环周期1读取和1读/写操作的双端口存储器。物理上,池中的所有SRAM块被组织为8块,每个块256比特宽并且8K行。行块是在高级表地址和物理存储器地址之间的中间表示。这允许将存储器池的逻辑视图从物理块选择中去耦合。每个行块表示1K行。

SRAM可以被灵活配置以存储不同的表类型和条目宽度。哈希表和LPM表查找算法要求多个存储器访问以具有最优的存储器效率。将SRAM资源划分为8个分离的池,这允许并行的存储器访问以及片上网络尺寸的缩减。

在行块中分配与SRAM关联的表,其中每个行块是1024存储器行。表条目可以是32比特、64比特、128比特、256比特或者512比特,而物理SRAM的是每个256比特宽。如果条目少于256比特,多个条目驻留在一个SRAM行,其中逻辑表地址的较低比特被用于选择相同行中多个条目中的一个条目,而逻辑表地址的较高比特被用于选择存储器行以及存储器块。如果条目是512比特宽,其使用两个SRAM块。双块条目在其偶数块中存储其较低256比特,并且在紧邻块的相同行中存储其较高256比特。尽管每个块每个时钟循环周期具有最大两次访问次数,但是多个表格可以驻留在相同块,以允许以时域复用方式访问每个表格。典型地,取决于分组解析结果,来自相同源的不同分组可以要求不同的查找;由此,多个表被配置在相同存储器块中,但是如果通道提供大表容量,则针对不同分组来访问该多个表。最小表尺寸是1024条目,而最大表可以占据所有SRAM资源。通过每个具体网络应用的不同要求,搜索表的尺寸可以与搜索表的数目相权衡。

图7图示被配置用于哈希搜索的表700。控制数据部分504是保留的。搜索键值部分具有以下参数:key_size、data_size、dual_tile_entry、way_bmp、bucket_depth、hash_func以及row_blk_start。在该示例中,搜索引擎哈希函数能够从七种不同尺寸中选择;存在四种不同的哈希函数以供选择。每个方式被固定到一个对应的池;控制数据与一个键值相伴。

图8图示被配置用于TCAM搜索的表800。控制数据部分504具有键值尺寸参数、数据库起始参数以及数据库结束参数。控制数据部分具有数据尺寸参数。在一个实施方式中,搜索键值部分已经允许64、128、192和384比特的尺寸。在一个实施方式中,数据尺寸可以是32、64、128或256比特。

所有TCAM查找都通过片上网络被路由到共享的TCAM池314,该共享的TCAM池314与用于存储对应控制数据的片上SRAM相关联。控制数据通过另一片上网络传递,并且路由回各自的表结果接口。

图9图示了在本发明的实施方式中,TCAM引擎308包括16个引擎Engine_0至Engine_15。TCAM314被划分为16个数据库DB_0至DB_15。每个数据库具有一组块。

每个TCAM数据库能够被配置为具有不同的键值尺寸,例如,64比特、128比特、192比特或者384比特。TCAM表能够是一个或多个邻接的TCAM数据库。这样,在一个实施方式中,存在16个不同的TCAM表,每个具有1个数据库,或者存在具有全部16个数据库的一个TCAM表。图9图示TCAM314包括16个数据库DB_0至DB_15。取决于应用,可以配置多个小尺寸表或者少数几个大尺寸TCAM表,从而充分利用硬件上昂贵并且耗电的TCAM存储器块。

来自TCAM314的输出被施加到解码器900,解码器900访问对应于TCAM命中的SRAM条目。在该实施方式中,SRAM池312包括SRAM组SRAM_0至SRAM_31。

搜索引擎能够执行多至16个并行TCAM查找。存在视配置而定的延迟的权衡。在一个极端情况,单个大表占据所有存储器空间,但是具有相对大的延迟。多个较小表可能构筑于整个存储器,在这种情况下较小的表具有较小的延迟。

对于每个TCAM数据库使用专用的SRAM降低了对于TCAM表的存取延迟。该方案使得TCAM表由于其低延迟以及灵活性成为用于各种应用的有吸引力的备选方案。这些应用包括但不限于ACL以及LPM。

所有直接存取表、哈希表以及LPM表共享集中式片上SRAM池,该片上SRAM池与处理引擎和结果接口通过分离的片上网络进行互连。如果表条目变得陈旧,并且在一段时间内没有被任何分组命中,则搜索引擎通过表老化机制通知CPU。

哈希处理引擎中的每个引擎具有关联的输入缓冲器,以用于将多个进入的请求入队列。当引擎变得被所有请求者过多订购时,将一些较低优先级请求丢弃。对进入请求进行优先级排序的能力允许充分利用空闲带宽,特别是在分组交换的背景下,其中分组的变化的长度要求对于处理带宽的过度供给。

处于解释的目的,前文的描述使用具体术语来提供对于本发明的透彻理解。但是,对于本领域的技术人员将清楚的是,为了实现本发明将不需要具体细节。因此,处于说明和描述的目的来给出前文对于本发明具体实施方式的描述。这些实施方式并不旨在穷尽本发明或者将本发明限制到所公开的精确形式;显然,根据上述教导,许多修改和变形是可能的。选择并且描述了实施方式,以便最好地解释本发明的原理以及其实际应用,因此它们使得本领域的技术人员能够最好的利用本发明以及各种实施方式,并且利用适合于所设想的特定用途的各种修改。旨在由后续的权利要求和其等效物来定义本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号