当前位置: 首页 > 专利查询>凯为公司专利>正文

混合通配符匹配表制造技术

技术编号:13338147 阅读:272 留言:0更新日期:2016-07-13 10:22
本发明专利技术涉及混合通配符匹配表,更具体地,本发明专利技术的实施例在于一种通配符匹配解决方案,其在混合解决方案中使用静态随机存取存储器(SRAM)和三元内容可寻址存储器(TCAM)的组合。具体地,通配符匹配解决方案使用用于查找的多个SRAM池以及用于未解决的散列冲突的溢出TCAM池。

【技术实现步骤摘要】

本专利技术涉及通配符匹配。更具体地,本专利技术涉及混合通配符匹配表
技术介绍
网络设备使用通配符匹配将数据包分为多个流。三元内容可寻址存储器(TCAM)由于其速度和简单性而传统上用于执行通配符匹配。然而,高成本和高功耗是基于TCAM的通配符匹配引擎的主要缺点。
技术实现思路
本专利技术的实施例的目的在于通配符匹配解决方案,其在混合解决方案中使用静态随机存取存储器(SRAM)和三元内容可寻址存储器(TCAM)的组合。具体地,通配符匹配解决方案使用用于查找的多个SRAM池以及用于未解决的散列冲突的溢出TCAM池。在一个方面中,提供了一种网络开关。该网络开关包括:多个SRAM池,存储可散列条目;至少一个溢出TCAM池,存储不可散列条目;以及请求接口控制逻辑,将搜索关键字(key)分配给一个或多个有效池并返回结果数据。在一些实施例中,多个SRAM池中的每一个均包括用于平行散列的16个SRAM瓦片(tile),并且至少一个TCAM池包括多个TCAM数据库作为基本匹配单元。在一些实施例中,该网络开关还包括可被多个SRAM池、至少一个溢出TCAM池和请求接口控制逻辑访问的混合通配符匹配(WCM)表。在一些实施例中,混合WCM包括用于多个SRAM池、至少一个溢出TCAM池和请求接口控制逻辑的配置。在一些实施例中,该配置包括用于多个SRAM池中的每一个SRAM池的配置、用>于至少一个溢出TCAM中的每一个的配置以及用于请求接口控制逻辑的配置。在一些实施例中,该配置识别多个SRAM池和至少一个溢出TCAM池中的哪些是一个或多个有效池。在一些实施例中,进行仲裁以确定一个或多个有效池中的哪一个具有返回结果数据的优先级。在一些实施例中,至少一个溢出TCAM池被组织到八个数据库中,其中八个数据库中的每一个均包括六个TCAM瓦片并且伴随有用于控制数据返回的专用SRAM。在一些实施例中,六个TCAM瓦片中的每一个均是64位宽和512个条目深。在一些实施例中,多个SRAM池中的每一个均包括八对SRAM瓦片,八对SRAM瓦片中的两对存储控制数据且八对SRAM瓦片中的六对存储条目。在一些实施例中,16个SRAM瓦片中的每一个均是256位宽且2048条线深。在另一方面中,提供了一种实施网络开关的方法,网络开关包括多个SRAM池和至少一个溢出TCAM池。该方法包括:接收将被插入到一个池中的条目;确定条目是否可散列;基于条目可散列的确定,将条目插入到多个SRAM池中的一个中;以及基于条目不可散列的确定,将条目插入到溢出TCAM池中。在一些实施例中,确定条目是否可散列包括将每个key_map与条目进行比较。在一些实施例中,多个SRAM池中的每一个均包括16个SRAM瓦片,并且16个SRAM瓦片中的每一个均与key_map相关联。在一些实施例中,每个key_map均掩蔽参与散列的条目的位。在一些实施例中,当条目中参与散列的所有位均不是通配符时,该条目是可散列的。在一些实施例中,条目被插入到多个SRAM池中的一个SRAM池的两个SRAM瓦片的一个中。在一些实施例中,将条目插入到多个SRAM池中的一个中包括再散列以解决散列冲突。在一些实施例中,再散列实施深度第一插入算法。可选地,在一些实施例中,再散列实施深度第一插入算法。在一些实施例中,条目作为图案被插入到一个池中。在又一方面中,提供了一种实施网络开关的方法,网络开关包括多个SRAM池和至少一个溢出TCAM池。该方法包括:在请求接口控制逻辑处接收搜索关键字;基于混合通配符匹配(WCM)表,将搜索关键字分配给一个或多个有效池;当一个或多个有效池包括溢出TCAM池时,TCAM池返回包括数据和优先级信息的第一组结果;当一个或多个有效池包括多个SRAM池中的至少一个时,通过每个有效SRAM池返回第二组结果,其中第二组结果包括数据和优先级信息;基于优先级执行由一个或多个有效池返回的所有组的结果的第二层级仲裁;以及基于第二层级仲裁,输出来自具有最高优先级的组的数据。在一些实施例中,混合WCM表的配置表示哪些池是一个或多个有效池。在一些实施例中,同时执行一个或多个有效池中的查找。在一些实施例中,该方法还包括:对于每个有效SRAM池来说,基于优先级执行由对应有效SRAM池的每个SRAM瓦片返回的所有组的结果的第一层级仲裁,以确定第二组结果。在一些实施例中,至少一个溢出TCAM池被组织到八个数据库中,八个数据库中的每一个均包括六个TCAM瓦片并且伴随有用于控制数据返回的专用SRAM。在一些实施例中,多个SRAM池中的每一个均包括八对SRAM瓦片,八对SRAM瓦片中的两对存储控制数据,以及八对SRAM瓦片中的六对存储条目。在又一方面中,提供了一种用于网络开关的存储结构。该存储结构包括:多个SRAM池,存储可散列条目;以及至少一个溢出TCAM池,存储不可散列条目。存储结构通常与请求接口控制逻辑交互,请求接口控制逻辑被配置为接收在网络开关处到达的数据包的搜索关键字并输出结果数据。在一些实施例中,请求接口控制逻辑基于可被请求接口控制逻辑访问的混合通配符匹配(WCM)表的配置将搜索关键字分配给一个或多个有效池。该配置识别多个SRAM池和至少一个溢出TCAM池中的哪一些是一个或多个有效池。在一些实施例中,进行最后的仲裁以确定一个或多个有效池中的哪一个具有返回结果数据的优先级。在一些实施例中,多个SRAM池中的每一个均包括多个SRAM瓦片,多个SRAM瓦片被逻辑组织以表示不同的逻辑表宽度。在一些实施例中,多个SRAM瓦片包括成对组织的16个SRAM瓦片,其中八对SRAM瓦片中的两对存储控制数据以及八对SRAM瓦片中的六对存储条目。在一些实施例中,多个SRAM池中的每一个均被配置为执行由对应SRAM池的每个SRAM瓦片返回的所有组的结果的初始仲裁并且基于初始仲裁返回第一数据和用于第一数据的优先级信息。每个SRAM瓦片均与key_map相关联。在一些实施例中,当条目中参与散列的所有位均不是通配符时,该条目是可散列的。key_map确定条目中的哪些位参与散列。在一些实施例中,至少一个溢出TCAM池被组织成多个数据库。多个数据库中的每一个均包括多个TCAM瓦片并且伴随有专用SRAM。至少一个溢出TCAM池被配置为返回第二数据和用于第本文档来自技高网...

【技术保护点】
一种网络开关,包括:多个SRAM池,存储可散列条目;至少一个溢出TCAM池,存储不可散列条目;以及请求接口控制逻辑,将搜索关键字分配给一个或多个有效池并返回结果数据。

【技术特征摘要】
2014.11.10 US 14/536,9371.一种网络开关,包括:
多个SRAM池,存储可散列条目;
至少一个溢出TCAM池,存储不可散列条目;以及
请求接口控制逻辑,将搜索关键字分配给一个或多个有效池并
返回结果数据。
2.根据权利要求1所述的网络开关,其中所述多个SRAM池中
的每一个均包括用于平行散列的16个SRAM瓦片,并且其中所述至
少一个溢出TCAM池包括多个TCAM数据库作为基本匹配单元。
3.根据权利要求1所述的网络开关,还包括可被所述多个SRAM
池、所述至少一个溢出TCAM池和所述请求接口控制逻辑访问的混
合通配符匹配(WCM)表。
4.根据权利要求3所述的网络开关,其中所述混合WCM包括
用于所述多个SRAM池、所述至少一个溢出TCAM池和所述请求接
口控制逻辑的配置。
5.根据权利要求4所述的网络开关,其中所述配置包括用于所
述多个SRAM池中的每一个的配置、用于所述至少一个溢出TCAM
中的每一个的配置以及用于所述请求接口控制逻辑的配置。
6.根据权利要求4所述的网络开关,其中所述配置识别所述多
个SRAM池和所述至少一个溢出TCAM池中的哪些是所述一个或多
个有效池。
7.根据权利要求1所述的网络开关,其中进行仲裁以确定所述
一个或多个有效池中的哪一个具有返回所述结果数据的优先级。
8.根据权利要求1所述的网络开关,其中所述至少一个溢出
TCAM池被组织到八个数据库中,其中所述八个数据库中的每一个
均包括六个TCAM瓦片并且伴随有用于控制数据返回的专用
SRAM。
9.根据权利要求8所述的网络开关,其中所述六个TCAM瓦片

\t中的每一个均是64位宽和512个条目深。
10.根据权利要求1所述的网络开关,其中所述多个SRAM池
中的每一个均包括八对SRAM瓦片,所述八对SRAM瓦片中的两对
存储控制数据且所述八对SRAM瓦片中的六对存储条目。
11.根据权利要求10所述的网络开关,其中所述16个SRAM
瓦片中的每一个均是256位宽且2048条线深。
12.一种用于实施网络开关的方法,所述网络开关包括多个
SRAM池和至少一个溢出TCAM池,所述方法包括:
接收将被插入到一个所述池中的条目;
确定所述条目是否可散列;
基于所述条目可散列的确定,将所述条目插入到所述多个
SRAM池中的一个中;以及
基于所述条目不可散列的确定,将所述条目插入到所述溢出
TCAM池中。
13.根据权利要求12所述的方法,其中确定所述条目是否可散
列包括将每个key_map与所述条目进行比较。
14.根据权利要求13所述的方法,其中所述多个SRAM池中的
每一个均包括16个SRAM瓦片,并且其中所述16个SRAM瓦片中
的每一个均与key_map相关联。
15.根据权利要求13所述的方法,其中每个key_map均掩蔽参
与散列的条目的位。
16.根据权利要求15所述的方法,其中当所述条目中参与散列
的所有位均不是通配符时,所述条目是可散列的。
17.根据权利要求12所述的方法,其中所述条目被插入到所述
多个SRAM池中的一个SRAM池的两个SRAM瓦片的一个中。
18.根据权利要求12所述的方法,其中将所述条目插入到所述
多个SRAM池中的一个中包括再散列以解决散列冲突。
19.根据权利要求12所述的方法,其中再散列实施深度第一插
入算法。
20.根据权利要求12所述的方法,其中再散列实施宽度第一插
入算法。
21.根据权利要求12所述的方法,其中所述条目作为图案被插
入到一个所述池中。
22.一种实施网络开关的方法,所述网络开关包括多个SRAM
池和至少一个溢出TCAM池,所述方法包括:
在请求接口控制逻辑处接收搜索关键字;
基于混合通配符匹配(WCM)表,将所述搜索关键字分配给一
个或多个有效池;
当所述一个或多个有效池包括所述溢出TCAM池时,所述<...

【专利技术属性】
技术研发人员:王炜煌T·丹尼尔S·阿特鲁里
申请(专利权)人:凯为公司
类型:发明
国别省市:美国;US

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

1