CN101902401A - 一种搜索处理装置及网络系统 - Google Patents
一种搜索处理装置及网络系统 Download PDFInfo
- Publication number
- CN101902401A CN101902401A CN2010102383749A CN201010238374A CN101902401A CN 101902401 A CN101902401 A CN 101902401A CN 2010102383749 A CN2010102383749 A CN 2010102383749A CN 201010238374 A CN201010238374 A CN 201010238374A CN 101902401 A CN101902401 A CN 101902401A
- Authority
- CN
- China
- Prior art keywords
- skip list
- index
- search process
- process device
- next skip
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
Abstract
本发明提供一种搜索处理装置及网络系统,其中,搜索处理装置具有第一工作模式和第二工作模式,在第一工作模式下,第一请求处理单元解析搜索请求,获取IP地址;第二请求处理单元根据IP地址从路由表项数据中获取匹配的下一跳表的索引;第一结果处理单元将下一跳表的索引封装到一数据访问请求后通过接口单元发送;而在第二工作模式下,第一请求处理单元解析数据访问请求,获取下一跳表的索引;第二请求处理单元根据下一跳表的索引从下一跳表中获取下一跳信息;第一结果处理单元将第二请求处理单元获取的下一跳信息通过接口单元发送,供网络处理器进行路由计算。本发明简化了网络处理器的路由查找过程,提高了系统吞吐率,减小硬件成本和功耗。
Description
技术领域
本发明涉及通信技术领域,特别是一种搜索处理装置及网络系统。
背景技术
Internet带领着人们迈入一个全新的信息时代,对人类社会的发展起着巨大的推进作用。
Internet是信息的载体,而实现Internet载体功能的除了众多的终端计算机和数据服务器,更主要的是搭起这个“信息高速公路”的网络互连设备,如各级的路由器或交换机。网络互连设备所完成的最核心的功能就是在路由表中为来自不同链路、去往不同目的地的IP分组找到最佳的传送路由,又以同样的方式把分组送到下一跳的路由器,如此反复,直到分组到达最终目的地。而为每个IP分组根据各自的目的地,在路由表里找到最佳匹配路由的算法,是路由转发处理的关键技术。
随着Internet应用需求的广泛、光接口技术的成熟,Internet链路带宽以超Moore定律的速度增长。近年来,大约每2年链路上路由查找的吞吐量就需要翻一番才能适应增长的需求。作为路由转发关键路径上的功能部件,路由查找引擎在性能上面临着巨大的压力和挑战。
现有技术中,网络处理器在进行IP分组转发时,首先要将待查找IPV4地址发送到外部搜索处理装置,由外部搜索处理装置进行搜索处理后返回下一跳表的索引给网络处理器,然后网络处理器利用该下一跳表的索引从保存于一个外部存储器的下一跳表中获取下一跳信息(如出端口号、下一跳IP地址、链路权重等),来进行转发计算处理。
从以上的现有技术的描述中可以发现,现有技术至少存在如下的问题:
网络处理器在一次IP分组转发计算的过程中,需要与外部装置(网络查找引擎、外部存储器)进行多次请求-反馈的查询过程,而由于处理器和外部存储器的运行速度差别,以及处理器访问外部设备受到的协议延迟,接口延迟,排队缓冲等方面的影响,会导致系统延迟较大,从而影响数据转发性能。
发明内容
本发明的目的是提供一种搜索处理装置及网络系统,降低IP分组转发计算中获取下一跳信息的时间,同时增加系统设计灵活度。
为了实现上述目的,本发明实施例提供了一种搜索处理装置,其中,所述搜索处理装置具有第一工作模式和第二工作模式,所述搜索处理装置包括存储单元、接口单元、第一请求处理单元、第二请求处理单元以及第一结果处理单元,其中:
在第二工作模式下:
所述存储单元用于存储下一跳表;
所述第一请求处理单元用于解析通过接口单元接收到的,由工作于第一工作模式下的另一搜索处理装置发送的数据访问请求,获取下一跳表的索引;
所述第二请求处理单元用于根据下一跳表的索引从所述下一跳表中获取下一跳信息;
所述第一结果处理单元用于将第二请求处理单元获取的下一跳信息通过所述接口单元发送,供网络处理器进行路由计算。
所述搜索处理装置具有第一工作模式和第二工作模式,所述搜索处理装置包括存储单元、接口单元、第一请求处理单元、第二请求处理单元以及第一结果处理单元,其中:
在第二工作模式下:
所述存储单元用于存储下一跳表;
所述第一请求处理单元用于解析通过所述接口单元接收到的,由工作于第一工作模式下的另一所述搜索处理装置发送的数据访问请求,获取下一跳表的索引;
所述第二请求处理单元用于根据下一跳表的索引从所述下一跳表中获取下一跳信息;
所述第一结果处理单元用于将第二请求处理单元获取的下一跳信息通过所述接口单元发送,供网络处理器进行路由计算。
上述的搜索处理装置,其中,在第一工作模式下:
所述存储单元用于存储一路由表项数据;
所述第一请求处理单元用于解析通过所述接口单元接收到的搜索请求,获取待查找IP地址;
所述第二请求处理单元用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
所述第一结果处理单元用于将所述下一跳表的索引封装到一数据访问请求后通过所述接口单元发送,供工作于第二工作模式下的再一所述搜索处理装置获取下一跳信息。
上述的搜索处理装置,其中,所述接口单元为高速串行接口或高速并行接口。
上述的搜索处理装置,其中,所述存储单元为片内存储器,所述片内存储器包括多个独立的片内存储器块,每个片内存储器块具有独立的地址和数据接口,供所述第二请求处理单元进行并行访问。
为了实现上述目的,本发明实施例还提供了一种网络系统,包括网络处理器,其中,所述网络系统还包括:
至少一个工作于第一工作模式的搜索处理装置;以及
至少一个工作于第二工作模式的搜索处理装置;
所述工作于第一工作模式和第二工作模式的搜索处理装置均包括存储单元、接口单元、第一请求处理单元、第二请求处理单元以及第一结果处理单元;
工作于第一工作模式的搜索处理装置中的存储单元用于存储一路由表项数据,第一请求处理单元用于解析通过接口单元接收到的由所述网络处理器发送的搜索请求,获取待查找IP地址,第二请求处理单元用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引,第一结果处理单元用于将所述下一跳表的索引封装到一数据访问请求后通过所述接口单元发送到工作于第二工作模式下的搜索处理装置;
工作于第二工作模式的搜索处理装置中的存储单元用于存储下一跳表,第一请求处理单元用于解析通过接口单元接收到的所述数据访问请求,获取下一跳表的索引,第二请求处理单元用于根据下一跳表的索引从所述下一跳表中获取下一跳信息,第一结果处理单元用于将第二请求处理单元获取的下一跳信息通过所述接口单元发送到所述网络处理器。
上述的网络系统,其中,所述接口单元为高速串行接口或高速并行接口。
上述的网络系统,其中,所述存储单元为片内存储器,所述片内存储器包括多个独立的片内存储器块,每个片内存储器块具有独立的地址和数据接口,供所述第二请求处理单元进行并行访问。
为了实现上述目的,本发明实施例还提供了一种搜索处理装置,其中,包括:
接口单元;
用于存储路由表项数据的第一存储单元;
用于存储下一跳表的第二存储单元;
第三请求处理单元,用于通过解析从接口单元接收到搜索请求来获取待查找IP地址;
第四请求处理单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第五请求处理单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息;
第二结果处理单元,用于将所述下一跳信息封装后发送给网络处理器,供网络处理器进行路由计算。
上述的搜索处理装置,其中,所述第四请求处理单元具体包括:
第一子单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第二子单元,用于将所述下一跳表的索引封装到一数据访问请求中;
第五请求处理单元具体包括:
第三子单元,用于解析所述数据访问请求获取所述下一跳表的索引;
第四子单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息。
为了实现上述目的,本发明实施例还提供了一种网络系统,包括网络处理器,所述网络系统还包括一搜索处理装置,所述搜索处理装置包括:
接口单元,与所述网络处理器连接;
用于存储路由表项数据的第一存储单元;
用于存储下一跳表的第二存储单元;
第三请求处理单元,用于通过解析从接口单元接收到的,由所述网络处理器发送的搜索请求来获取待查找IP地址;
第四请求处理单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第五请求处理单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息;
第二结果处理单元,用于将所述下一跳信息封装后发送给所述网络处理器,供所述网络处理器进行路由计算。
上述的网络系统,其中,所述第四请求处理单元具体包括:
第一子单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第二子单元,用于将所述下一跳表的索引封装到一数据访问请求中;
第五请求处理单元具体包括:
第三子单元,用于解析所述数据访问请求获取所述下一跳表的索引;
第四子单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息。
本发明实施例具有以下的有益效果:
本发明的搜索处理装置不仅可以配置成普通的搜索处理装置,同时还可以被配置成存储芯片,且可以串行连接成为完整的查找-存储器访问链,使得网络处理器不用再与外部设备进行很多次的交互,简化了网络处理器的路由查找过程;
本发明的搜索处理装置还可以同时起到搜索和存储的作用,使得网络处理器可以直接得到下一跳信息,减少了网络处理器与外部设备的交互次数,简化了网络处理器的路由查找过程,同时降低了整个路由处理路径上的包延迟,提高了系统吞吐率;
同时,由于搜索和存储采用了相同的芯片,能够最大程度的降低硬件设计复杂度,减小硬件成本和功耗。具体的说:
通过搜索引擎空间和存储空间可以灵活配置,本发明可以使单个硬件平台适应不同应用对路由转发的需求。如应用对路由表容量需求较少,则可以将多片搜索引擎中的一部分配置成存储装置,从而降低了网络处理器上的存储器需求,降低了硬件的成本和功耗。
附图说明
图1为本发明第一实施例的搜索处理装置的结构示意图;
图2为本发明一种可能的模式配置指令的格式示意图;
图3为本发明第一实施例的分别工作于第一工作模式和第二工作模式的搜索处理装置A和搜索处理装置B与网络处理器之间的连接示意图;
图4为本发明第一实施例的分别工作于第一工作模式和第二工作模式的级联的搜索处理装置A和级联的搜索处理装置B与网络处理器之间的连接示意图;
图5为本发明第一实施例的搜索请求的格式示意图;
图6为本发明第一实施例的数据访问请求的格式示意图;
图7为本发明第二实施例的搜索处理装置的结构示意图。
具体实施方式
本发明实施例中,提供一种搜索处理装置及网络系统,通过降低网络处理器与外部装置之间交互的过程,降低IP分组转发计算中获取下一跳信息的时间。
本发明第一实施例的搜索处理装置如图1所示,所述搜索处理装置工作于第一工作模式或第二工作模式,所述搜索处理装置包括:存储单元、接口单元、第一请求处理单元、第二请求处理单元以及第一结果处理单元,其中:
在第二工作模式下,所述存储单元用于存储下一跳表,所述第一请求处理单元用于解析通过接口单元获取工作于第一工作模式下的另一搜索处理装置发送的数据访问请求,获取下一跳表的索引,第二请求处理单元用于根据所述下一跳表的索引从所述下一跳表中读取下一跳信息(如下一跳的出端口号,下一跳IP地址,链路权重等),所述第一结果处理单元用于将所述下一跳信息通过所述接口单元发送,供网络处理器进行路由计算。
在第一工作模式下,所述存储单元用于存储一路由表项数据,所述第一请求处理单元用于解析通过接口单元接收到包括待查找IP地址的搜索请求,获取所述待查找IP地址,所述第二请求处理单元用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引,所述第一结果处理单元用于将所述下一跳表的索引封装到一数据访问请求后通过所述接口单元发送,供工作于第二工作模式下的再一搜索处理装置获取下一跳信息;
在此,在第一工作模式下,所述第一结果处理单元用于将所述下一跳表的索引封装到一数据访问请求后通过所述接口单元发送,供工作于第二工作模式下的再一搜索处理装置获取下一跳信息,该第一结果处理单元可能是直接或通过其他与之级联的搜索处理装置发送到所述另一搜索处理装置;
而在第二工作模式下,所述第一结果处理单元用于将所述下一跳信息通过所述接口单元发送,供网络处理器进行路由计算,该第一结果处理单元可能是直接或通过其他与之级联的搜索处理装置发送到网络处理器。
当然,所述搜索处理装置可以工作于第一工作模式或第二工作模式,其需要一配置模块,将其配置成工作于第一工作模式或第二工作模式。
图1所示的各个模块之间通过内部数据总线及控制总线连接。
该配置单元可以通过接口单元从外部接收的模式配置指令而进行工作模式的配置,也可以是通过硬件设置开关来进行工作模式的配置。
如图2所示,为其中一种可能的模式配置指令的格式示意图,包括:
编码字段Ctrl-word(这个是控制字字段),159位至152位,如0x10表示查找模式(第一工作模式),0x11表示存储模式(第二工作模式),0x12表示混合模式(第三工作模式)。3种模式将在后续进行详细说明。
混合模式指示字段(包括Onchip mem size和Offhip mem size),用于记录混合模式下时用于存储的存储单元信息,如151位至120位记录片内RAM配置为存储模式的大小,而119位至80位记录片外存储器配置为存储模式的大小;
保留字段(Reserved),79位至0位,设置为0。
下面以分别工作于第一工作模式和第二工作模式的搜索处理装置A和搜索处理装置B来说明进行IP分组转发计算中获取下一跳信息的工作过程。
如图3所示,网络系统中包括网络处理器以及工作于第一工作模式的搜索处理装置A和工作于第二工作模式的搜索处理装置B,其中:
网络处理器在接收到IP分组后,将IP分组的待查找IP地址封装到搜索请求中,发送给工作于第一工作模式的搜索处理装置A,由于搜索处理装置A的工作于第一工作模式下,所以搜索处理装置A中的第一请求处理单元解析通过接口单元接收到的搜索请求后,获取所述待查找IP地址,所述第二请求处理单元用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引,并由第一结果处理单元用于将所述下一跳表的索引封装到一数据访问请求后,通过所述接口单元发送到工作于第二工作模式下的搜索处理装置B;
搜索处理装置B在第二工作模式下,其存储单元中存储有下一跳表,搜索处理装置B中的第一请求处理单元解析通过接口单元从工作于第一工作模式下的搜索处理装置A中接收到的数据访问请求,获取下一跳表的索引,第二请求处理单元根据所述下一跳表的索引从所述下一跳表中读取下一跳信息,由该第一结果处理单元将所述下一跳信息通过所述接口单元发出。
网络处理器接收到下一跳信息后即可进行包转发计算处理。
从以上描述可以发现,从网络处理器发送搜索请求开始,到网络处理器接收到下一跳信息为止,通过网络相连接的各个装置之间发生了3次数据传递(网络处理器-搜索处理装置A-搜索处理装置B),相对于现有技术的4次传递,由于网络传输带来的时延减少了25%。
下面,以n个级联方式连接的工作于第一工作模式的搜索处理装置和p个级联方式连接的工作于第二工作模式的搜索处理装置相配合,进行IP分组转发计算中获取下一跳信息的工作过程。
如图4所示,假定搜索请求中的待查找IP地址对应的下一跳表的索引保存于工作于第一工作模式的搜索处理装置Am中,则该搜索请求会被之前的搜索处理装置A1到Am-1一直旁路到搜索处理装置Am,而搜索处理装置Am在获取待查找IP地址对应的下一跳表的索引(封装于数据读取请求中)会通过级联的搜索处理装置Am+1到An发送到搜索处理装置B1;
假定下一跳表的索引对应的下一跳表保存于工作于第一工作模式的搜索处理装置Bq中,则该下一跳表的索引会被之前的搜索处理装置B1到Bp-1一直旁路到搜索处理装置Bq,而搜索处理装置Bq在获取下一跳表的索引对应的下一跳信息后,该下一跳信息会通过级联的搜索处理装置Bq+1到Bp发送到网络处理器。
通过上述的级联设置,极大的扩大了路由表项及下一跳信息的支持能力(n倍)。
在本发明的具体实施例中,该接口单元可以是高速并行接口单元和/或高速串行接口单元,分别说明如下。
高速并行接口由多条数据线和相应的时钟线构成,数据在同步的时钟驱动下,并行的输入/输出到搜索处理装置中。
高速并行接口可以是80bit或者72bit的TCAM(Ternary ContentAddressable Memory,三态内容寻址存储器)接口,也可以是36bit的LA-1接口(旁视接口)接口。关于80bit或者72bitTCAM接口,以及LA-1接口,可以参考网络处理论坛(npforum)的相关文档。
而串行高速接口单元可以是由多个SERDES(Serializer-Deserializer,串行器-解串器)构成的接口。
多个SERDES链路之间通过一定的串行传输链路协议来进行绑定,如interlaken-LA协议,interlaken协议,XAUI(10Gb连接单元接口)协议,RXAUI,SPAUI(基于10Gb以太网XAUI和spi4.2标准的串行接口)等其他协议。在发送端,数据报文根据协议进行打包,拆分为多个串行数据通道,再经过并串转换成为高速的串行数据流输出;而在接收端,高速串行数据流经过串并转换成为并行数据,再经过通道对齐,解码等操作,恢复出每通道的数据,并根据协议层的通道恢复得到原始的传输数据。
在40nm工艺下,高速串行收发器的工作频率可以达到6.25Gbps,甚至是10Gbps。SERDES的通道数根据需要的数据传输率而设置,通常为了满足100G路由查找的需求,需要实现12甚至24对SERDES。
接口单元所接收到的数据的编码可以根据具体的应用而作调整,例如,可以使高速串行接口的数据格式和高速并行接口的数据格式一样,也可以使高速并行接口的数据格式和高速串行接口的数据格式不一样。一般情况下,由于网络处理器只会提供一种接口(串行或者并行),所以对应的搜索处理装置也只能对应使能高速串行接口和高速并行接口中的一个。因此,一旦决定工作接口的类型后,搜索处理装置将完全使用这种类型的接口(串行或者并行)传输相关数据。
在本发明的具体实施例中,该存储单元可以片内存储器,用于存储路由表项数据,ACL(Access Control List,访问控制列表)数据,以及其他为了实现查找而附加的数据结构。
片内存储器单元可以采用片上SRAM(Static Random Access Memory,静态随机存取存储器)构成,也可以采用片内集成的edRAM(embedded DynamicRandom Access Memory,嵌入式动态随机存取存储器)来实现,或者是二者混合的实现。
SRAM具有速度高,密度低,功耗大的特点,而edram具有速度低,功耗低,密度大的特点,可以根据具体的设计指标进行选择,或者混合使用。比如为了实现100K的IPV4路由表项存储,每个路由前缀是32个bit,那么总共需要至少3.2Mbit的存储器资源,可以考虑完全采用SRAM实现,或者考虑采用1.7Mb的SRAM和2Mb的edRAM来实现,第二种方案相对于第一种其芯片面积会变小,但是查询性能可能会受一定的影响,此外,由于edRAM需要特殊的掩模工艺实现,在制作成本,开发周期以及成品率等方面,也会有一定的区别。
片内存储器可以是由多个独立的较小的片内存储器块构成,以加速查找速度,并且降低芯片的不良生产率。每个片内存储器块具有独立的地址和数据接口,可以通过第二请求处理单元进行并行访问。如3.2Mb的SRAM,可以拆分成16个200Kb的SRAM块,在查找的时候,可以同时发起16个查找请求给16个SRAM块,从而将查找速度加速16倍。此外,分成多块以后,可以将生产过程中有缺陷的芯片标记成不同容量范围的芯片。
例如,在生产中16块RAM有一块RAM因为制造缺陷而不能使用,则将因为制造缺陷而不能使用的RAM标记为不可用即可。通常情况下,SRAM或者edRAM存储块还可以加入ECC(Error Checking and Correcting,错误检查和纠正)功能,即预留出一定的存储空间作为检错纠错数据的存储空间。例如64bit位宽的数据,一般预留8位作为ECC的数据存储,从而实际的存储块数据位宽为72bit。
该存储单元也可以多个片外DRAM控制器单元和片外DRAM存储器芯片结合实现。所述DRAM存储器芯片可以是现行工业标准的DDR(Double DataRate)动态随机存取器芯片,DDR2动态随机存取器芯片,DDR3动态随机存取器芯片、RLDRAMII(Reduced Latency Dynamic Random Access Memory II,第二代低延时动态随机存取存储器)芯片,RLDRAMIII(Reduced LatencyDynamic Random Access Memory III,第三代低延时动态随机存取存储器)芯片等。
不同的芯片其性能,容量,接口标准也有所不同,实现的过程中可以根据系统的需求进行选取。如实现较小的表项空间扩展,可以选择容量较小但是速度较快的RLDRAM芯片,如果实现比较大的表项空间的扩展,但是对查找性能要求不是非常高,则可以选用DDR3动态随机存储器芯片。DRAM控制器单元实现DRAM的配置,初始化,时序调整,读写以及刷新等操作。通过例化多个DRAM控制器,可以增加单位时间的存储器访问次数,从而达到更高的查询性能。DRAM控制器可以工作在两种模式,查询模式和缓存模式。工作在查询模式时,控制器针对读操作进行优化,将大部分的操作时间给予读操作,保证读操作的效率。工作在缓存模式时,控制器针对读写均衡的操作进行优化,重点优化读写之间切换时的效率。
下面结合图3来具体说明数据/指令的传递过程。
搜索处理装置中的第一请求处理单元通过接口单元接收到搜索请求,其中,该搜索请求包括如图5所示的3个字段:
第一控制字字段Ctrl-word,第159至152位,用于指示搜索类型,如0x00代表当前是一个IPV4的路由地址的查询,0x01代表当前是一个IPV6的路由地址的查询;
内容字段Dest IP,第151位至120位,用于记载待查找内容,如待查找IPV4地址;
保留字段Reserved,第119位至0位,用bit0填充。
当然,上述的字段长度仅仅是举例说明,也可以根据不同的需要来调整。
第一请求处理单元通过接口单元接收到搜索请求后,解析即可发现该搜索请求是请求搜索内容字段记录的IP地址,然后将该IP地址发送给第二请求处理单元,第二请求处理单元为一查找单元,其根据内容字段记录的IP地址从所述路由表项数据中获取匹配的下一跳表的索引。
其中,第二请求处理单元可以通过多种算法去实现路由地址的最长前缀匹配,其匹配可以基于现有的各种算法来实现,如trie算法、Tree算法以及Hash算法中的一种或多种,具体的匹配算法可以参考《Packet ForwardingTechnologies》,weidong wu,Auerbach publication,2007,ISBN:978-0-8493-8057-0。
当找到与待查找IP地址匹配的最长前缀条目后,第二处理单元将对应的下一跳表的索引发送到第一结果处理单元,由第一结果处理单元将该下一跳表的索引封装到数据访问请求,并通过接口单元发送给工作于第二工作模式下的另一搜索处理装置,当然,如果没有找到匹配的路由条目,第二处理单元也输出查找失败标记。
第一结果处理单元需要对搜索结果(下一跳表的索引或失败标记)进行编码和处理后发送到工作于第二工作模式下的另一搜索处理装置。
如图6所示,数据访问请求包括如下字段:
第二控制字字段Ctrl-Word,第159至152位,用于指示访问类型,如可以使用0x02代表当前是一个128bit的写操作,可以使用0x03代表当前是一个128bit的读操作;
地址字段(Address),第151位至128位,用于记录下一跳表的索引;
内容字段,第127位至0位,当为读请求时,用bit0填充,而为写请求时,为待写入数据。
在这种键值的配置下,如果需要扩大访问空间,则可以适当减小第二控制字字段的位数,比如减小第二控制字字段为4bit,那么相应的地址可以扩展至28位,从而对应的实际可寻址空间也对应扩大。具体的地址位数可以根据片内存储器的配置而设定为不同的值。
在第二工作模式下工作的搜索处理装置解析通过接口单元获取数据访问请求,获取地址字段中记录的下一跳表的索引,并根据所述下一跳表的索引从下一跳表中读取下一跳信息,并将下一跳信息封装后通过所述接口单元发送,供网络处理进行路由计算。
第二工作模式下工作的搜索处理装置解析后的数据访问请求,并通过下一跳表的索引与片内存储器单元或者DRAM控制器单元交互,获取下一跳信息。
如图7所示,本发明第二实施例的网络系统包括网络处理器和搜索处理装置,其中的搜索处理装置工作于混合模式,如图7所示,包括:
接口单元;
用于存储路由表项数据的第一存储单元;
用于存储下一跳表的第二存储单元;
第三请求处理单元,用于通过解析从接口单元接收到搜索请求来获取待查找IP地址;
第四请求处理单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第五请求处理单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息;
第二结果处理单元,用于将所述下一跳信息封装后发送给网络处理器,供网络处理器进行路由计算。
图7所示的搜索处理装置中,该第一存储单元可以是片内存储器,而第二存储单元可以是片外存储器,当然也可以是其它方式。
当然,上述的各个处理单元仅仅是逻辑上的划分,在实现时可以利用同一模块来实现,也可以分别实现。
同时,为了尽可能与标准保持一致,在本发明的第二具体实施例中,该第四请求处理单元具体包括:
第一子单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第二子单元,用于将所述下一跳表的索引封装到一数据访问请求中;
第五请求处理单元具体包括:
第三子单元,用于解析所述数据访问请求获取所述下一跳表的索引;
第四子单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息。
该第五请求处理单元可以和第三请求处理单元设置一个第六请求处理单元,这种情况下,第六请求处理单元在接收到的请求为搜索请求时,则解析获取待查找IP地址,由第四请求处理单元来获取下一跳索引,而在接收到的请求为数据访问请求(由第二结果处理单元封装)时,则直接解析获取所述下一跳表的索引后,通过下一跳表的索引从所述下一跳表中读取下一跳信息。
下面说明一下本发明实施例的系统的初始化过程。
当线卡上电后,搜索处理装置(芯片)冷启动,外部的时钟输入并维持稳定,锁相环锁定外部参考时钟频率。搜索处理装置进入预复位状态,等待网络处理器输入的复位信号或者指令。当接收到复位信号或者指令后,搜索处理装置进入复位状态,清空各种状态寄存器、计数器、存储单元。当复位流程结束后,芯片给出复位完成指示。网络处理器采取轮询等待的方式来等待搜索处理装置的复位结束。
在完成复位操作后,网络处理器发出设置工作模式的配置指令。搜索处理装置解析配置指令,根据主控端的需求将内部存储器设置为查找模式或者是存储模式,或者是混合模式。
本发明的查找加速芯片不仅可以配置成普通的查找引擎,同时也可以被配置成存储芯片,且可以串行连接成为完整的查找-存储器访问链,从而简化整个路由查找过程,且由于查找和存储采用了相同的芯片,能够最大程度的降低硬件设计复杂度,减小硬件成本和功耗。如搜索引擎空间和存储空间可以灵活配置,本发明可以使单个硬件平台适应不同应用对路由转发的需求。如应用对路由表容量需求较少,则可以将多片搜索引擎中的一部分配置成存储装置,从而降低了网络处理器上的存储器需求,降低了硬件的成本和功耗。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种搜索处理装置,其特征在于,所述搜索处理装置具有第一工作模式和第二工作模式,所述搜索处理装置包括存储单元、接口单元、第一请求处理单元、第二请求处理单元以及第一结果处理单元,其中:
在第二工作模式下:
所述存储单元用于存储下一跳表;
所述第一请求处理单元用于解析通过所述接口单元接收到的,由工作于第一工作模式下的另一所述搜索处理装置发送的数据访问请求,获取下一跳表的索引;
所述第二请求处理单元用于根据下一跳表的索引从所述下一跳表中获取下一跳信息;
所述第一结果处理单元用于将第二请求处理单元获取的下一跳信息通过所述接口单元发送,供网络处理器进行路由计算。
2.根据权利要求1所述的搜索处理装置,其特征在于,在第一工作模式下:
所述存储单元用于存储一路由表项数据;
所述第一请求处理单元用于解析通过所述接口单元接收到的搜索请求,获取待查找IP地址;
所述第二请求处理单元用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
所述第一结果处理单元用于将所述下一跳表的索引封装到一数据访问请求后通过所述接口单元发送,供工作于第二工作模式下的再一所述搜索处理装置获取下一跳信息。
3.根据权利要求1或2所述的搜索处理装置,其特征在于,所述接口单元为高速串行接口或高速并行接口。
4.根据权利要求1或2所述的搜索处理装置,其特征在于,所述存储单元为片内存储器,所述片内存储器包括多个独立的片内存储器块,每个片内存储器块具有独立的地址和数据接口,供所述第二请求处理单元进行并行访问。
5.一种网络系统,包括网络处理器,其特征在于,所述网络系统还包括:
至少一个工作于第一工作模式的搜索处理装置;以及
至少一个工作于第二工作模式的搜索处理装置;
所述工作于第一工作模式和第二工作模式的搜索处理装置均包括存储单元、接口单元、第一请求处理单元、第二请求处理单元以及第一结果处理单元;
工作于第一工作模式的搜索处理装置中的存储单元用于存储一路由表项数据,第一请求处理单元用于解析通过接口单元接收到的由所述网络处理器发送的搜索请求,获取待查找IP地址,第二请求处理单元用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引,第一结果处理单元用于将所述下一跳表的索引封装到一数据访问请求后通过所述接口单元发送到工作于第二工作模式下的搜索处理装置;
工作于第二工作模式的搜索处理装置中的存储单元用于存储下一跳表,第一请求处理单元用于解析通过接口单元接收到的所述数据访问请求,获取下一跳表的索引,第二请求处理单元用于根据下一跳表的索引从所述下一跳表中获取下一跳信息,第一结果处理单元用于将第二请求处理单元获取的下一跳信息通过所述接口单元发送到所述网络处理器。
6.根据权利要求5所述的网络系统,其特征在于,所述接口单元为高速串行接口或高速并行接口。
7.根据权利要求5所述的网络系统,其特征在于,所述存储单元为片内存储器,所述片内存储器包括多个独立的片内存储器块,每个片内存储器块具有独立的地址和数据接口,供所述第二请求处理单元进行并行访问。
8.一种搜索处理装置,其特征在于,包括:
接口单元;
用于存储路由表项数据的第一存储单元;
用于存储下一跳表的第二存储单元;
第三请求处理单元,用于通过解析从接口单元接收到搜索请求来获取待查找IP地址;
第四请求处理单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第五请求处理单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息;
第二结果处理单元,用于将所述下一跳信息封装后发送给网络处理器,供网络处理器进行路由计算。
9.根据权利要求8所述的搜索处理装置,其特征在于,所述第四请求处理单元具体包括:
第一子单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第二子单元,用于将所述下一跳表的索引封装到一数据访问请求中;
第五请求处理单元具体包括:
第三子单元,用于解析所述数据访问请求获取所述下一跳表的索引;
第四子单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息。
10.一种网络系统,包括网络处理器,其特征在于,所述网络系统还包括一搜索处理装置,所述搜索处理装置包括:
接口单元,与所述网络处理器连接;
用于存储路由表项数据的第一存储单元;
用于存储下一跳表的第二存储单元;
第三请求处理单元,用于通过解析从接口单元接收到的,由所述网络处理器发送的搜索请求来获取待查找IP地址;
第四请求处理单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第五请求处理单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息;
第二结果处理单元,用于将所述下一跳信息封装后发送给所述网络处理器,供所述网络处理器进行路由计算。
11.根据权利要求10所述的网络系统,其特征在于,所述第四请求处理单元具体包括:
第一子单元,用于根据所述待查找IP地址从所述路由表项数据中获取匹配的下一跳表的索引;
第二子单元,用于将所述下一跳表的索引封装到一数据访问请求中;
第五请求处理单元具体包括:
第三子单元,用于解析所述数据访问请求获取所述下一跳表的索引;
第四子单元,用于通过所述下一跳表的索引从所述下一跳表中读取下一跳信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102383749A CN101902401A (zh) | 2010-07-23 | 2010-07-23 | 一种搜索处理装置及网络系统 |
PCT/CN2010/076729 WO2012009873A1 (zh) | 2010-07-23 | 2010-09-08 | 一种搜索处理装置及网络系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102383749A CN101902401A (zh) | 2010-07-23 | 2010-07-23 | 一种搜索处理装置及网络系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101902401A true CN101902401A (zh) | 2010-12-01 |
Family
ID=43227616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102383749A Pending CN101902401A (zh) | 2010-07-23 | 2010-07-23 | 一种搜索处理装置及网络系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101902401A (zh) |
WO (1) | WO2012009873A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035738A (zh) * | 2010-12-14 | 2011-04-27 | 中兴通讯股份有限公司 | 一种获取路由信息的方法及装置 |
CN102546742A (zh) * | 2010-12-15 | 2012-07-04 | 丛林网络公司 | 管理分布式开关构造系统中的下一跳标识符的方法和装置 |
CN102801500A (zh) * | 2012-08-02 | 2012-11-28 | 苏州雄立科技有限公司 | 一种搜索芯片的错码实时校正方法 |
CN103973571A (zh) * | 2013-02-05 | 2014-08-06 | 中兴通讯股份有限公司 | 网络处理器及其路由查找方法 |
CN108415869A (zh) * | 2018-02-28 | 2018-08-17 | 北京零壹空间科技有限公司 | 串行数据的发送方法及装置 |
CN108418820A (zh) * | 2018-02-28 | 2018-08-17 | 北京零壹空间科技有限公司 | 串行数据的接收方法及装置 |
CN108541364A (zh) * | 2016-01-21 | 2018-09-14 | 思科技术公司 | 模块化平台中的路由表缩放 |
CN110636000A (zh) * | 2018-06-22 | 2019-12-31 | 贵州白山云科技股份有限公司 | 一种虚拟云网络控制方法、系统和网络装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441579A (zh) * | 2003-03-28 | 2003-09-10 | 清华大学 | 支持多nexthop的TCAM高速查找方法及其系统 |
CN101043428A (zh) * | 2006-05-30 | 2007-09-26 | 华为技术有限公司 | 一种路由转发的方法和系统 |
CN101282296A (zh) * | 2008-05-27 | 2008-10-08 | 华为技术有限公司 | 获取下一跳路由的方法和装置 |
US20100158010A1 (en) * | 2008-12-22 | 2010-06-24 | Electronics And Telecommunications Research Institute | Method for forwarding packet in mpls l3vpn |
-
2010
- 2010-07-23 CN CN2010102383749A patent/CN101902401A/zh active Pending
- 2010-09-08 WO PCT/CN2010/076729 patent/WO2012009873A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441579A (zh) * | 2003-03-28 | 2003-09-10 | 清华大学 | 支持多nexthop的TCAM高速查找方法及其系统 |
CN101043428A (zh) * | 2006-05-30 | 2007-09-26 | 华为技术有限公司 | 一种路由转发的方法和系统 |
CN101282296A (zh) * | 2008-05-27 | 2008-10-08 | 华为技术有限公司 | 获取下一跳路由的方法和装置 |
US20100158010A1 (en) * | 2008-12-22 | 2010-06-24 | Electronics And Telecommunications Research Institute | Method for forwarding packet in mpls l3vpn |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035738A (zh) * | 2010-12-14 | 2011-04-27 | 中兴通讯股份有限公司 | 一种获取路由信息的方法及装置 |
CN102035738B (zh) * | 2010-12-14 | 2014-12-31 | 中兴通讯股份有限公司 | 一种获取路由信息的方法及装置 |
CN102546742A (zh) * | 2010-12-15 | 2012-07-04 | 丛林网络公司 | 管理分布式开关构造系统中的下一跳标识符的方法和装置 |
CN102546742B (zh) * | 2010-12-15 | 2015-08-19 | 瞻博网络公司 | 管理分布式开关构造系统中的下一跳标识符的方法和装置 |
CN102801500A (zh) * | 2012-08-02 | 2012-11-28 | 苏州雄立科技有限公司 | 一种搜索芯片的错码实时校正方法 |
CN103973571A (zh) * | 2013-02-05 | 2014-08-06 | 中兴通讯股份有限公司 | 网络处理器及其路由查找方法 |
CN108541364A (zh) * | 2016-01-21 | 2018-09-14 | 思科技术公司 | 模块化平台中的路由表缩放 |
CN108541364B (zh) * | 2016-01-21 | 2021-07-20 | 思科技术公司 | 一种用于模块化平台中的路由表缩放的装置和方法 |
CN108415869A (zh) * | 2018-02-28 | 2018-08-17 | 北京零壹空间科技有限公司 | 串行数据的发送方法及装置 |
CN108418820A (zh) * | 2018-02-28 | 2018-08-17 | 北京零壹空间科技有限公司 | 串行数据的接收方法及装置 |
CN110636000A (zh) * | 2018-06-22 | 2019-12-31 | 贵州白山云科技股份有限公司 | 一种虚拟云网络控制方法、系统和网络装置 |
CN110636000B (zh) * | 2018-06-22 | 2021-07-27 | 贵州白山云科技股份有限公司 | 一种虚拟云网络控制方法、系统和网络装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2012009873A1 (zh) | 2012-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101902401A (zh) | 一种搜索处理装置及网络系统 | |
CN102769869B (zh) | 无线接入点的控制和配置报文快速转发系统 | |
CN101853237B (zh) | 片上系统及axi总线下的传输方法 | |
US8625604B2 (en) | Hash-based prefix-compressed trie for IP route lookup | |
Bando et al. | FlashTrie: beyond 100-Gb/s IP route lookup using hash-based prefix-compressed trie | |
CN102624738B (zh) | 一种串口服务器、协转芯片及数据传输方法 | |
WO2020107484A1 (zh) | 一种acl的规则分类方法、查找方法和装置 | |
CN1859316A (zh) | 数据包传送装置 | |
US11777864B2 (en) | Transparent packet splitting and recombining | |
EP3813318B1 (en) | Packet transmission method, communication device, and system | |
CN101692647A (zh) | 路由器中采用IPv6头封装IPv4包的隧道转发系统 | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
CN105874758A (zh) | 内存访问方法、交换机及多处理器系统 | |
JP2017519433A (ja) | パケット処理のためのマルチテーブルハッシュベースのルックアップ | |
CN100459587C (zh) | 一种实现灵活QinQ的方法及设备 | |
CN103023782B (zh) | 一种访问三态内容寻址存储器的方法及装置 | |
CN1953418A (zh) | 处理信息分组的方法和使用该方法的电信设备 | |
KR20180105978A (ko) | 온칩 네트워크를 포함하는 전자 장치의 동작 방법 | |
US8645620B2 (en) | Apparatus and method for accessing a memory device | |
US20060114892A1 (en) | Method and apparatus to transmit state information through a communication link | |
CN103457855A (zh) | 无类域间路由表建立、以及报文转发的方法和装置 | |
CN102231141A (zh) | 一种数据读、写方法及系统 | |
WO2022166854A1 (zh) | 一种数据查找方法、装置及集成电路 | |
KR20230038082A (ko) | 칩렛 기반의 스토리지 아키텍쳐 | |
CN114124594A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20101201 |