CN1602485A - 用于网络处理器和计算机系统的混合搜索存储器 - Google Patents
用于网络处理器和计算机系统的混合搜索存储器 Download PDFInfo
- Publication number
- CN1602485A CN1602485A CNA028245334A CN02824533A CN1602485A CN 1602485 A CN1602485 A CN 1602485A CN A028245334 A CNA028245334 A CN A028245334A CN 02824533 A CN02824533 A CN 02824533A CN 1602485 A CN1602485 A CN 1602485A
- Authority
- CN
- China
- Prior art keywords
- leaf
- cam
- tree structure
- threshold value
- tree
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Abstract
公开了一种数据结构,搜索所述数据结构的系统和方法。所述系统包括具有直接表(DT)、Patricia树、指针的数据结构和诸如内容地址存储器(CAM)之类的高速存储系统。DT具有许多条目,每个条目与具有多个节点的Patricia树耦接,所述多个节点与树叶耦接。为获得树叶中的信息,能够遍历的节点的数目(称为阈值)被限制为预定值。一旦达到阈值,则指针指示CAM的地址,树叶的地址被保存在CAM中。通过使用所公开的结构和方法,显著减小与搜索相关的等待时间。
Description
技术领域
本发明涉及计算机数据库结构,更具体地说,涉及网络处理器数据库结构。
背景技术
在现有技术中,使用计算机网络分发信息是众所周知的。传统的计算机网络包括由通信基础结构互连的许多终端。所述基础结构包括交换机、路由器、网络处理器和诸如因特网及称为企业内部网的专用网络之类的传输设施。通常根据分组中的信息,在交换机中进行路由选择和其它判定。
为了支持判定产生,每个网络处理器交换机或其它设备配有数据库和查寻方法。当收到分组时,交换机和/或网络处理器控制器使分组与数据库相关,并根据预存信息处理分组。在美国专利5414704中描述了数据库查寻方法的一个例子。
产生判定的速度对网络的效能(effectiveness)至关重要。测量网络效能的一种标准是其以中等速度处理信息(即产生判定)的能力。
下面陈述的本发明提高了控制器使分组与数据库相关的速度。
发明内容
根据本发明的第一方面,提供一种搜索方法,包括下述动作:使用来自一个搜索关键字的N位作为数据结构中的索引,其中N为整数,所述数据结构包括具有至少一个条目的直接表和操作上与所述一个条目耦接的树形结构;根据树形结构的第一预定特征,设置阈值;使用来自搜索关键字的选择位遍历(traverse)所述树形结构,直到阈值被满足为止;并从内容地址存储器的至少一个条目中读取信息,以便获得相对于搜索关键字要采取的操作。
所述方法最好还包括把基于搜索关键字的预定特征和所述树形结构的另一预定特征的至少一个条目保存在内容地址存储器中的步骤。
树形结构最好包括多个节点和操作上与选择的节点耦接的树叶。树形结构最好还包括带有位于选定节点的搜索信息的模式搜索控制块(PSCB)。
例如,所述N位可包括目的地MAC地址的前16位,并且选择位可包括目的地MAC地址的剩余32位。
可选的是,搜索关键字包括一部分数据分组。
可选的是,读取步骤还包括使用所述N位作为CAM中的索引的步骤。
根据本发明的第二方面,提供一种设备,包括:包含多个协议处理器的嵌入式处理器复合体;操作上与处理器复合体耦接的控制点处理器;每个协议处理器能够访问的,并提供高速模式搜索、数据操纵和帧分析的多个硬件加速器协处理器;和操作上与处理器复合体耦接的至少一个存储器装置,所述存储器装置保存包括直接表和具有操作上链接在一起的节点和树叶的树形结构的数据结构。
可选的是,所述设备还包括操作上与处理器复合体耦接,保存表示在树搜索例程中要访问的节点的最大数目的数值的存储器位置;和操作上与处理器复合体耦接,存储识别保存树叶的位置的指针的内容地址存储器(CAM)。
控制点处理器最好被编程,以便产生并转发包括调整数据结构的信息的帧。
根据本发明的第三方面,提供一种数据结构,包括:具有至少两个条目的直接表;操作上与至少两个条目耦接,并具有操作上链接在一起的多个节点和树叶的树形结构;和保存阈值的存储器,所述阈值指示在沿所述树形结构行走过程中,需要访问的节点的最大数目。
数据结构最好还包括内容地址存储器CAM,如果树叶连接到高于阈值的一个节点,则树叶信息被保存在内容地址存储器中。
例如,本发明的一个实施例可提供一种系统,包括:提供从数据分组抽取的关键字的处理器;响应于使用关键字沿树形结构行走,直到达到阈值为止的Tree-Walk逻辑;使用关键字搜索CAM的CAM控制器;和使用来自Tree-Walk逻辑或CAM控制器的第一可用结果,确定相对于数据分组要采取的操作的控制器。
本发明的另一实施例可提供一种包括下述动作的搜索方法:提供从数据分组抽取的关键字;Tree-Walk逻辑使用所述关键字搜索树形结构,直到达到阈值为止;CAM控制器使用所述关键字搜索CAM;使用来自动作(b)或(c)的第一结果,确定相对于数据分组要采取的操作。
从而,本发明使用包括直接表(DT)、Patricia树形结构和内容地址存储器(CAM)的存储器结构来保存数据库信息。存储器结构和搜索方法降低了使分组与网络处理器中的数据库相关所需的等待时间。
数据库结构最好包括分成多个条目的直接表(DT)。每个条目与具有树叶和称为“模式搜索控制块(PSCB)”的多个节点的Patricia树相关联。在树叶中陈述相对于分组的一部分(称为和DT中的条目匹配的“关键字”)要采取的操作。为了到达一个树叶,必须沿树形结构行走(下面陈述其细节)。
等待时间通常由分离DT中的条目和树叶的PSCB的数目决定。PSCB的数目越大,则访问树叶中的信息所用的时间越长;PSCB的数目越小,则获得信息所用的时间越短。访问节点以走向树形结构的树叶的过程被称为“沿着树形结构行走”等。
可选的是,设置限制在表条目及相关树叶之间遍历的PSCB的数目的阈值。之后,CAM保存树叶所位于的地址,所述树叶包含将对帧采取的操作。通过访问该树叶,获得将对帧采取的操作。
通过增加和/或删除树形结构的树叶,能够维持数据结构。增加和/或删除会增大和/或减小PSCB的数目。为了补偿数据库调整,CAM老化机构对CAM进行恰当的删除和/或增加。
本发明的一个优点在于通过利用根据本发明教导的加速器CAM和/或阈值的帮助,限制(减小)了基于存储器的查寻逻辑系统的等待时间。例如,阈值规定对特定搜索中,能够遍历的PSCB的数目的限制。
另一优点在于如果使用CAM跟踪和选择的树叶相关的信息,而通过常规的“沿着树形结构行走”访问其它树叶(下面说明),则能够以较低的费用实现大型Patricia树形结构。
本发明的另一优点在于本发明提供一种在数据结构中实现大型Patricia树的相对低成本、低等待时间的解决方案。在本发明之前,在某些设计中,大型Patricia树数据结构是不可接受的,因为搜索大型Patricia树形数据结构的等待时间很长。
附图说明
下面将结合附图,参考本发明的优选实施例,举例说明本发明,
其中:
图1图解说明网络处理器的例证方框图;
图2图解说明嵌入式处理器复合体的细节;
图3图解说明协议处理器结构;
图4图解说明树形数据结构;
图4a表示用于使分组与数据库相关的分组的一部分的图形表示;
图5图解说明其中在CAM复制阈值之上插入树叶6的树形数据结构。只有当网络通信量需要它时,才把该树叶插入CAM中;
图6图解说明其中树叶5现在位于CAM阈值之上,并且只有当网络通信量需要该树叶时,树叶5才被复制的树形数据结构;
图7图解说明其中在CAM复制阈值之上插入第二树叶7的树形数据结构;
图8图解说明其中从CAM中删除网络通信量持续一段时间未使用的树叶的树形数据结构;
图9图解说明其中网络通信量现在需要在图8中删除的树叶,并在查寻时重新将其复制到CAM中的树形数据结构;
图10图解说明其中从树中删除某一树叶,同样从CAM中删除所述某一树叶的树形数据结构;
图11图解说明其中删除树叶使先前在CAM复制阈值之上的树叶掉到CAM复制阈值之下的树形数据结构;
图12图解说明其中从CAM中除去网络通信量持续一段时间未使用的树叶7的树形数据结构;
图13图解说明其中从CAM删除网络通信量未使用的另一树叶6的树形数据结构;
图14图解说明加速器(Booster)CAM中数据的结构;
图15表示根据本发明的混合查寻机构的方框图。
具体实施方式
这里描述的本发明可用在任意计算机数据库系统中。在网络处理器(NP)中,本发明工作效果良好,从而将在网络处理器环境中描述本发明。
图1表示了包括本发明优选实施例的加速器CAM系统15的网络处理器的体系结构。加速器CAM系统15通过通信媒体15a与嵌入式处理器复合体(EPC)12耦接。可实现成单个芯片或许多芯片的网络处理器包括包含同步光纤网上的以太网分组或IP(POS)的物理层装置26;PMM-入口多路复用MAC 22;和包括入口数据存储器42的入队列出队列调度14及入口交换接口18。在出口一侧,网络处理器包括出口交换接口20;入队列出队列调度16和出口数据存储器44。
参见图1,嵌入式处理器复合体(EPC)12通过通信媒体与入口EDS和出口EDS耦接。包括内部S-RAM 28、D-RAM 32和外部S-RAM30在内的许多不同存储模块与嵌入式处理器复合体连接。嵌入式Power PC处理器34与嵌入式处理器复合体耦接。PCI接口总线提供从外部到嵌入式处理器34的访问。虽然图1中处理器34被表示成是嵌入式的,不过替代的优选实施方式是处理器34也可设置在外部,并通过物理层装置与网络处理器耦接。如下所述,本发明的数据结构在Power PC 34中产生,并下载到存储模块中。为了简洁起见,下面只说明与本发明密切相关的网络处理器的那些部件和功能。只要说网络处理器是除了支持其它内容之外,还支持同步光纤网上的以太网分组和/或IP的可编程交换和路由选择系统就够了。Power PC 34(下面称为控制点(CP))可以是嵌入式的,如图1中所示,或者在备选实施例中,可以在外部,但是通过物理层装置26或提供控制及管理支持的其它恰当机构与处理器连接。嵌入式处理器复合体包括提供处理能力的许多并行协议处理器。每个协议处理器可以访问为过滤能力提供模式搜索、数据操纵、内部数据管理、帧分析和数据预取出的协处理器。
本发明特别涉及网络处理器的过滤能力,下面将只描述在过滤或分类过程中用到的那些装置。这些装置包括嵌入式处理器复合体及其协处理器;CP 34(设置在外部或者嵌入的通用处理器);加速器CAM系统15和保存与本发明密切相关的数据模式的存储器。如下更详细说明的那样,协处理器使分组的各个部分与保存在网络处理器存储器中的数据结构相关,并抽取描述相对于该分组要采取的操作的信息。加速器CAM系统加快从存储器得出该判定的速度。
图2图解说明了嵌入式处理器复合体的例证实施例。它包括提供大约2128 MIPS子处理能力的许多协议处理器。每个协议处理器40包括3级流水线(取出、解码和执行)通用寄存器,专用寄存器,8指令超高速缓存,专用算术逻辑单元(ALU)和均以133mhz运行的协处理器。至少两个协议处理器是专用的:一个称为引导帧处理器,用于处理把信息从控制处理器传送给网络处理器内的其它实体的引导帧,一个称为类属树处理器,用于在受控存储器中建立查寻表,并搜索存储器,以确定相对于某一分组要采取何种操作。
图3图解说明了协议处理器40的一个例证实施例。协议处理器40包括具有通用寄存器(GPR)和算术逻辑单元(ALU)的CLP(核心语言处理器)72。检查和协处理器62、数据存储(DS)协处理器64、入队列协处理器66、WEB协处理器68和树搜索引擎(TSE)协处理器70通过独立的总线与CLP耦接。
检查和协处理器62计算报头检查和。
数据存储(DS)协处理器64与帧缓冲存储器42、44(入口和出口方向)接口,从而提供直接存储器存取(DMA)能力。
入队列协处理器66控制对包含关键帧参数的256位工作寄存器的访问。该协处理器与完成单元46(图1和2)接口,从而把帧排入到交换机和目标端口队列中。
WEB协处理器提供对内部寄存器、计数器和存储器的所有协议处理器访问,以便收集调试器统计信息。
树搜索引擎(TSE)协处理器70与协议处理器并行工作,实现树搜索指令(包括存储器READ、WRITE或READ/WRITE),存储器范围检查。TSE协处理器还对照保存在Patricia树结构中的数据库,搜索分组,并根据本发明的教导,访问加速器CAM。在备选实施例中,可使用逻辑把信息复制到CAM中,和/或从CAM中删除信息。
重新参考图1和2,可以是嵌入式的(如图所示),或者通过物理层装置26连接到网络处理器上的控制点处理器34提供对整个网络处理器的管理。为此,在通用处理器中产生数据结构(后面说明),并下载到存储器中。通过CP处理器34,完成诸如删除树叶或增加树叶之类的更新,CP处理器34使用前面说明的引导信元(cell)在它和嵌入式处理器复合体之间传递控制信息。选择的一个嵌入式处理器复合体使用其相关的树搜索引擎与相应的存储器和加速器CAM系统15通信。
图4-13表示了根据本发明的不同数据结构。这些数据结构被用于进一步说明要求保护的发明。
图4表示了保存在协议处理器10的存储器中的数据结构的图形表示。该数据结构包括具有许多条目的直接表(DT),只有一个条目被表示成由水平线留出的区域,并与具有称为模式搜索控制块(PSCB)的许多节点的Patricia树结构连接。包含路由判定信息的每个PSCB与一个或多个树叶连接,图4中表示了其中的5个树叶。树叶中包括的是判定或者相对于对照保存在树形结构中的信息进行了相关的分组要采取的操作。如前所述,相关性由执行皮指令或皮代码的皮处理器(协处理器)完成,不过也可由其它装置完成。
仍然参见图4,CAM复制阈值与每个树形结构相关。CAM复制阈值(表示成垂直线)是保存在系统中,指示要到达某一树叶,能够遍历的PSCB的最大数目的数字。一旦遍历的节点的数目超过CAM复制阈值,则相关机构(协处理器或硬件)访问CAM,获得和该树叶相关的信息。通常,不是该树叶中的信息,而是该树叶的地址被保存在CAM中。通过只保存树叶所处的地址,可节约CAM中的空间。CAM中的空间非常宝贵,因为CAM是很高速度、低密度、高价格的存储机构。在图4-13中,标记成“CAM复制阈值”的虚线是保存在系统中的存储器中的阈值的图形表示。保存在直接表中的信息是正使之与数据结构相关的分组中的信息的复制品。
参见图4a,图中表示了将使之与数据模式或结构相关的分组的目的地地址(DA)。DA地址被分成A和B部分。A部分用作直接表中的索引,B部分用于沿着树形结构行走。本申请中,沿着树形结构行走表示访问PSCB,并使用保存在一个PSCB中的信息前进到下一PSCB。继续该过程,直到达到某一树叶为止。树叶保存包括相对于分组要采取的操作的信息。在优选实施例中,目的地地址是一个48位的MAC地址。标为A的前16位被用于访问直接表,剩余的32位被用于沿着与该条目相关联的树形结构行走。更具体地说,比较MAC目的地地址的前16位与DT中的条目。如果在前16位和某一条目之间存在匹配,则其它32位中的一些选定位被用于沿着该树形结构行走,直到到达相关联的树叶为止。应注意散列程序可被用于建立DT和DT中的条目。在本领域中,散列程序众所周知,将不再进一步说明。
应注意分组中的其它实体可能已被用于访问直接表,并沿着与该条目相关的树形结构行走。例如,数据表中的条目会与帧的部分A相关。实行皮代码的协处理器使数据表与特定分组的16位相关。如果数据表中的某一条目和表中的条目匹配,则剩余的32位被用于如下所述沿着树形结构行走:对照PCB1匹配剩余32位中的有效位。如果位是逻辑0,则执行和0一起保存在PSCB中的操作。如果位是逻辑1,则执行和1一起保存在PSCB中的操作。本质上,PSCB中的信息指示是沿着标为“X”的路径行走树形结构到达PSCB 3,还是沿着标为“Y”的路径行走树形结构到达PSCB 2。PSCB 2具有指向树叶2或树叶1中的信息的信息。如果沿着“X”路径行走,则下一节点应是PSCB 3,随后是PSCB 4。本例中,阈值被设置为3,由于所有树叶都位于该阈值之下,因此不使用加速器CAM。
参见图14,图中表示了加速器CAM的图形表示。CAM是现有物品,包括把信息写入CAM和老化(删除)CAM中的信息的机构。CAM在本领域中众所周知,于是这里不对其进行详细说明。只要说CAM具有几个条目就够了,其中之一表示在15B。对本发明来说,CAM被分成部分15C和部分15D。在部分15C中,输入MAC数据地址(图4a)的A+B部分,来自树形结构的树叶的位置地址(LA)记录在部分15D中。操作上,分组的目的地地址的32-48位保存在加速器CAM中,还被用作访问加速器CAM系统15的加速器CAM的索引。加速器CAM的部分15D中的相关树叶地址被读出,并被用于访问保存在该树叶地址中的信息。现在参见图4,加速器CAM的使用不适合于图4中的数据结构。这是因为图4中的树叶连接到位于CAM复制阈值左侧的PSCB(表示这些PSCB低于设定的PSCB)上。现在说明由于树叶连接到高于阈值的PSCB,将会使用CAM的情况。当在树形结构中加入树叶时,会发生几种情形:
A)树叶被插入阈值之上(即,CAM复制阈值右侧)的节点。这种情况下,插入需要将触发CAM中复制树叶的搜索。图5是这种情形的一个例子。图5中,阈值被设置成3。树叶6被插入,并且只有在四个节点(即PSCB 1、PSCB 3、PSCB 4和PSCB 5)之后才到达树叶6。插入时,树叶6的地址被复制到CAM中。即使树叶5现在在阈值之上,如果通信量(traffic)不需要该树叶,树叶5也不会被复制到CAM中。
B)另一种情形是树叶被插入到阈值下面,不会使任意树叶跨越阈值。这种情况下,CAM内容未发生任何变化。
C)另一种情形是树叶被插入到阈值下面,但是使另一树叶或一些树叶跨越或落在阈值之外。这种情况下,跨越阈值的任意树叶不会被立即复制到CAM中。相反,只有当常规查寻到达该树叶时,即只有当确实使用该树叶时,才复制该跨越阈值的树叶。从而,CAM只包含当前网络通信量所需的“有用”树叶。
D)图6表示了查寻时,树叶5和6现在被复制到CAM中的情形。参考图5应回想起,当树叶6被复制到CAM中时,树叶5并未被复制到CAM中,因为通信量并不需要树叶5。但是,一旦需要树叶5,那么树叶5就被复制到CAM中。这同样是一种节约CAM资源的技术,因为CAM是一种相当昂贵的存储器。
E)图7表示了3片树叶,即树叶5、6和7被复制到CAM中的情形。树叶7被插入,因为在5个PSCB(高于阈值=3)之后到达树叶7。树叶7被复制到CAM中。
F)图8表示了从CAM删除树叶6的地址的情形。所述删除由CAM老化机构实现。由于持续指定的一段时间,任意通信量都没有使用树叶6,因此启动所述删除。
G)图9表示了查寻时,树叶6被重新复制到CAM中的情形。参考图8,由于通信量不需要使用树叶6,因此树叶6被删除。在图9中,通信量现在再次需要树叶6。于是,树叶6被重新复制到CAM中,并据此标记。应注意这些例子表示老化机构将根据树叶中信息的使用或未使用,定期从CAM中删除树叶信息。
H)上面说明了当把树叶加入树形结构中时存在的情形。下面说明当从树形结构中删除树叶时存在的情形。由于老化或控制点操作的缘故,可触发从树形结构中删除树叶。当持续一段时间未使用某一树叶时发生老化现象,老化机构从存储器中删除该树叶。当位于控制点的通用处理器出于任何原因,决定应从存储器中删除某一树叶时,发生控制点删除。就源于老化或控制点的任何一种删除来说,如果树叶具有设置成逻辑1的复制位,则从CAM中删除对应条目。
I)如果树叶具有设置为0的复制位,则CAM内容不发生变化。删除树叶将导致当删除某一树叶时,高于阈值的其它树叶落到阈值之下。如果这些树叶先前已被复制到CAM中,则CAM老化机构将从CAM中删除这些树叶。关于所述老化的超时一般短于树形结构老化。这便于有效重复使用查寻中时常用到的树叶的CAM条目。当CAM老化机构删除某一CAM条目时,当查寻要到达对应的树叶时,该相应树叶将再次被复制到CAM中。只有该查寻具有高于阈值的持续时间;接下来的查寻将受益于CAM复制。
J)图10表示了从树形结构中删除树叶5的情形。这种删除可以来自控制点处理器的明确删除操作为基础或者由树形结构老化机构实现。这种情形下,CAM副本也被删除。应注意的是树叶6和7的CAM副本保留,因为它们连接到高于阈值的PSCB 6之上。
K)图11表示了由明确的删除操作或由树形结构老化机构从树形结构中删除树叶4的情形。树叶4的CAM副本也从CAM中被删除。应注意树叶6和7落到阈值之下,但是此时未删除它们的CAM副本。
L)图12表示了CAM老化机构现在删除先前记录在CAM中的树叶7的例子。由于树叶7持续指定的一段时间未被任意通信量使用时,因此触发所述删除。
M)在图13中,树叶6持续指定的一段时间未被使用,CAM老化机构从CAM中删除树叶6。
图15表示了根据本发明的混合查寻机构的方框图。混合查寻机构包括CLP(核心语言处理器)72,树形结构搜索引擎(TSE)70,存储器30(S-RAM、DDRAM等)和CAM 15。上面说明的树形结构保存在存储器30中。上面说明的CAM信息保存在CAM中。
TSE 70包括Tree-Walk逻辑151,CAM控制器152和存储器判优器153。TSE与CLP 72、存储器30和CAM 15连接,存储器30可以是S-RAM、D-RAM或者其它任意恰当的存储器。存储器保存上面说明的查寻数据结构(DT、PSCB、树叶)。CAM包含如前所述的关键字的动态副本。
CLP 72把要搜索的、由帧产生的关键字给予TSE。存储器判优器153把关键字转发给Tree-Walk逻辑151和CAM控制器152。
Tree-Walk逻辑自动实现DT中的第一查寻步骤,并通过沿着PSCB链而行,直到到达树叶为止,继续搜索操作。当沿着PSCB节点链而行时,PSCB计数器154计数遍历的节点的数目。
同时,CAM控制器把关键字转发给CAM,CAM执行该关键字的快速搜索。
可按照任意顺序(Tree-Walk逻辑优先或CAM优先)完成同时启动的这两个操作。
如果CAM首先完成,则它把结果(树叶地址)返回给存储器判优器,存储器判优器终止还在Walk-Tree逻辑中运行的操作。这是因为在CAM中找到了关键字,从而在Tree-Walk逻辑中继续搜索没有任何意义。存储器判优器随后通过Tree-Walk逻辑向存储器发出读取请求,以便取出树叶的实际内容。
如果Tree-Walk逻辑首先完成,则它把结果(树叶地址和树叶内容,PSCB计数)返回给存储器判优器。存储器判优器请求CAM控制器终止CAM中的搜索过程。这允许CAM的老化机构删除对应于在存储器中,实际很快(快于通过CAM的搜索)搜索到的关键字的CAM条目,为在存储器中需要较长搜索的其它关键字留下更多空间。
PSCB计数包括在Tree-Walk逻辑提供的搜索结果中。存储器判优器使用PSCB计数,存储器判优器比较PSCB计数和预先配置的阈值,从而如果阈值被超过,则存储器判优器请求CAM控制器增加和刚刚搜索到的关键字对应的CAM条目。
阈值被配置成使得确保存储器中的搜索操作长于CAM中的搜索操作,以避免请求在CAM中增加已被保存,但是和在存储器中相比,搜索更慢的关键字。
Claims (10)
1、一种搜索方法,包括下述步骤:
使用来自一个搜索关键字的N位作为数据结构中的索引,其中N为整数,所述数据结构包括具有至少一个条目的直接表和操作上与所述一个条目耦接的树形结构;
根据树形结构的第一预定特征,设置阈值;
使用来自搜索关键字的选择位遍历所述树形结构,直到阈值被满足为止;
从内容地址存储器的至少一个条目读取信息,以获得将对搜索关键字采取的操作。
2、按照权利要求1所述的方法,还包括下述步骤:
把基于搜索关键字的预定特征和所述树形结构的第二预定特征的至少一个条目保存在内容地址存储器中。
3、按照权利要求1或2所述的方法,其中N位包括目的地MAC地址的前16位。
4、按照任意前述权利要求所述的方法,其中第一预定特征包括节点,并且阈值被设置成节点的计数。
5、按照权利要求1所述的方法,其中信息包括其中保存所述操作的树形结构的树叶的地址。
6、一种设备,包括:
包含多个协议处理器的嵌入式处理器复合体;
操作上与处理器复合体耦接的控制点处理器;
每个协议处理器能够访问的,并提供高速模式搜索、数据操纵和帧分析的多个硬件加速器协处理器;
操作上与处理器复合体耦接的至少一个存储器装置,所述存储器装置保存包括直接表和具有操作上链接在一起的节点和树叶的树形结构的数据结构;
操作上与处理器复合体耦接,保存表示在树搜索例程中要访问的节点的最大数目的数值的存储器位置;和
操作上与处理器复合体耦接,存储识别保存树叶的位置的指针的内容地址存储器(CAM),其中树叶包含和将对分组采取的操作相关的信息。
7、按照权利要求6所述的设备,其中CAM还包括和指针成对的标记,所述标记选自分组中的目的地MAC地址的一部分。
8、按照权利要求7所述的设备,还包括根据树形结构中的树叶调整和/或预定时间间隔内信息的未使用,从CAM删除指针的电路。
9、按照权利要求8所述的设备,其中所述调整包括树叶删除和/或插入。
10、一种数据结构,包括:
具有至少两个条目的直接表;
操作上与至少两个条目耦接,并具有操作上链接在一起的多个节点和树叶的树形结构;
保存阈值的存储器,所述阈值指示在沿着所述树形结构行走过程中,需要访问的节点的最大数目;和
内容地址存储器CAM,其中如果树叶连接到高于阈值的一个节点,则树叶信息被保存在该内容地址存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/015,165 US8195705B2 (en) | 2001-12-11 | 2001-12-11 | Hybrid search memory for network processor and computer systems |
US10/015,165 | 2001-12-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1602485A true CN1602485A (zh) | 2005-03-30 |
Family
ID=21769867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA028245334A Pending CN1602485A (zh) | 2001-12-11 | 2002-12-09 | 用于网络处理器和计算机系统的混合搜索存储器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8195705B2 (zh) |
JP (1) | JP3935880B2 (zh) |
KR (1) | KR100603699B1 (zh) |
CN (1) | CN1602485A (zh) |
AU (1) | AU2002347376A1 (zh) |
BR (1) | BR0214890A (zh) |
WO (1) | WO2003054739A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100371936C (zh) * | 2006-04-03 | 2008-02-27 | 无锡永中科技有限公司 | 用于树型结构文件的数据查找方法 |
CN101231638B (zh) * | 2007-01-24 | 2010-07-14 | 阿里巴巴集团控股有限公司 | 一种实现类目搜索的方法、系统及装置 |
CN101350788B (zh) * | 2008-08-25 | 2011-10-26 | 中兴通讯股份有限公司 | 一种网络处理器内外混合查表方法 |
CN102436453A (zh) * | 2010-09-29 | 2012-05-02 | 金蝶软件(中国)有限公司 | 一种父子维的处理方法及装置 |
CN105701065A (zh) * | 2016-01-15 | 2016-06-22 | 浪潮电子信息产业股份有限公司 | 一种协议表可变更协议处理器的实现方法 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7382736B2 (en) | 1999-01-12 | 2008-06-03 | Mcdata Corporation | Method for scoring queued frames for selective transmission through a switch |
US7596139B2 (en) | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
US7236490B2 (en) | 2000-11-17 | 2007-06-26 | Foundry Networks, Inc. | Backplane interface adapter |
US7002980B1 (en) | 2000-12-19 | 2006-02-21 | Chiaro Networks, Ltd. | System and method for router queue and congestion management |
US7266117B1 (en) | 2002-05-06 | 2007-09-04 | Foundry Networks, Inc. | System architecture for very fast ethernet blade |
US7649885B1 (en) | 2002-05-06 | 2010-01-19 | Foundry Networks, Inc. | Network routing system for enhanced efficiency and monitoring capability |
US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
US7468975B1 (en) | 2002-05-06 | 2008-12-23 | Foundry Networks, Inc. | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability |
US7187687B1 (en) | 2002-05-06 | 2007-03-06 | Foundry Networks, Inc. | Pipeline method and system for switching packets |
US6901072B1 (en) | 2003-05-15 | 2005-05-31 | Foundry Networks, Inc. | System and method for high speed packet transmission implementing dual transmit and receive pipelines |
US7082493B1 (en) * | 2003-10-31 | 2006-07-25 | Integrated Device Technology, Inc. | CAM-based search engines and packet coprocessors having results status signaling for completed contexts |
US7817659B2 (en) | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
US7657703B1 (en) | 2004-10-29 | 2010-02-02 | Foundry Networks, Inc. | Double density content addressable memory (CAM) lookup scheme |
US7707217B2 (en) * | 2005-01-24 | 2010-04-27 | 3Com Corporation | Trie search engines and ternary CAM used as pre-classifier |
US8448162B2 (en) | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
US7903654B2 (en) | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
KR100786268B1 (ko) * | 2006-10-31 | 2007-12-18 | 에스케이 텔레콤주식회사 | 이동 단말의 sms를 활용한 결제 서비스 제공 방법 및시스템 |
US8238255B2 (en) | 2006-11-22 | 2012-08-07 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
US7978614B2 (en) | 2007-01-11 | 2011-07-12 | Foundry Network, LLC | Techniques for detecting non-receipt of fault detection protocol packets |
US8271859B2 (en) | 2007-07-18 | 2012-09-18 | Foundry Networks Llc | Segmented CRC design in high speed networks |
US8037399B2 (en) | 2007-07-18 | 2011-10-11 | Foundry Networks, Llc | Techniques for segmented CRC design in high speed networks |
US8509236B2 (en) | 2007-09-26 | 2013-08-13 | Foundry Networks, Llc | Techniques for selecting paths and/or trunk ports for forwarding traffic flows |
US7814267B1 (en) * | 2008-02-04 | 2010-10-12 | Netlogic Microsystems, Inc. | Processor with compare operations based on any of multiple compare data segments |
US8090901B2 (en) | 2009-05-14 | 2012-01-03 | Brocade Communications Systems, Inc. | TCAM management approach that minimize movements |
US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
US10963426B1 (en) | 2013-02-25 | 2021-03-30 | EMC IP Holding Company LLC | Method of providing access controls and permissions over relational data stored in a hadoop file system |
US9898475B1 (en) | 2013-02-25 | 2018-02-20 | EMC IP Holding Company LLC | Tiering with pluggable storage system for parallel query engines |
CN104572648B (zh) * | 2013-10-11 | 2018-01-16 | 中国石油化工股份有限公司 | 一种基于高性能计算的存储统计系统及方法 |
US20150262062A1 (en) * | 2014-03-17 | 2015-09-17 | Microsoft Corporation | Decision tree threshold coding |
US10332008B2 (en) | 2014-03-17 | 2019-06-25 | Microsoft Technology Licensing, Llc | Parallel decision tree processor architecture |
KR200488004Y1 (ko) | 2014-07-28 | 2018-12-03 | 오종만 | 피자 고정구에 착탈되는 캐릭터 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5136580A (en) | 1990-05-16 | 1992-08-04 | Microcom Systems, Inc. | Apparatus and method for learning and filtering destination and source addresses in a local area network system |
EP0522743B1 (en) | 1991-06-26 | 1997-12-17 | Digital Equipment Corporation | Combined hash table and CAM address recognition in a network |
DE69324204T2 (de) | 1992-10-22 | 1999-12-23 | Cabletron Systems Inc | Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers |
JP3545858B2 (ja) | 1995-12-01 | 2004-07-21 | 株式会社東芝 | ネットワーク間接続装置及び情報検索装置 |
JP3520709B2 (ja) | 1997-03-13 | 2004-04-19 | 三菱電機株式会社 | ネットワークアドレス検索方式 |
US6553002B1 (en) * | 1997-08-29 | 2003-04-22 | Ascend Communications, Inc. | Apparatus and method for routing data packets through a communications network |
US6061712A (en) * | 1998-01-07 | 2000-05-09 | Lucent Technologies, Inc. | Method for IP routing table look-up |
US6173384B1 (en) * | 1998-02-11 | 2001-01-09 | Nortel Networks Limited | Method of searching for a data element in a data structure |
JP2000022736A (ja) | 1998-07-06 | 2000-01-21 | Nec Eng Ltd | ルーティングエントリ検索システム及びその検索方法並びにその制御プログラムを記録した記録媒体 |
JP2000209216A (ja) | 1999-01-12 | 2000-07-28 | Shimada Phys & Chem Ind Co Ltd | アドレス管理方法及び装置、記録媒体 |
JP3216630B2 (ja) | 1999-06-09 | 2001-10-09 | 日本電気株式会社 | 通信制御装置 |
US6985431B1 (en) | 1999-08-27 | 2006-01-10 | International Business Machines Corporation | Network switch and components and method of operation |
US6766381B1 (en) * | 1999-08-27 | 2004-07-20 | International Business Machines Corporation | VLSI network processor and methods |
US6675163B1 (en) * | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
US7107265B1 (en) * | 2000-04-06 | 2006-09-12 | International Business Machines Corporation | Software management tree implementation for a network processor |
JP2001326679A (ja) | 2000-05-15 | 2001-11-22 | Fujitsu Ltd | 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体 |
JP2002016638A (ja) * | 2000-06-29 | 2002-01-18 | Mitsubishi Electric Corp | ルーチング情報検索装置およびルーチング情報検索制御データを記録したコンピュータ読み取り可能な記録媒体 |
JP2002166387A (ja) | 2000-11-28 | 2002-06-11 | Mitsubishi Heavy Ind Ltd | ロボット視覚装置 |
US6691124B2 (en) * | 2001-04-04 | 2004-02-10 | Cypress Semiconductor Corp. | Compact data structures for pipelined message forwarding lookups |
JP3779619B2 (ja) | 2002-01-11 | 2006-05-31 | 日本電信電話株式会社 | パケット転送装置およびネットワークおよびプログラムおよび記録媒体 |
JP3757882B2 (ja) | 2002-03-12 | 2006-03-22 | 日本電信電話株式会社 | パケットのフィルタリング方法 |
JP3784054B2 (ja) | 2002-06-10 | 2006-06-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Macアドレスを並べ替えさせる方法および記録媒体 |
-
2001
- 2001-12-11 US US10/015,165 patent/US8195705B2/en active Active
-
2002
- 2002-12-09 AU AU2002347376A patent/AU2002347376A1/en not_active Abandoned
- 2002-12-09 WO PCT/GB2002/005562 patent/WO2003054739A2/en active Application Filing
- 2002-12-09 JP JP2003555385A patent/JP3935880B2/ja not_active Expired - Fee Related
- 2002-12-09 CN CNA028245334A patent/CN1602485A/zh active Pending
- 2002-12-09 BR BR0214890-0A patent/BR0214890A/pt not_active IP Right Cessation
- 2002-12-09 KR KR1020047001554A patent/KR100603699B1/ko not_active IP Right Cessation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100371936C (zh) * | 2006-04-03 | 2008-02-27 | 无锡永中科技有限公司 | 用于树型结构文件的数据查找方法 |
CN101231638B (zh) * | 2007-01-24 | 2010-07-14 | 阿里巴巴集团控股有限公司 | 一种实现类目搜索的方法、系统及装置 |
CN101350788B (zh) * | 2008-08-25 | 2011-10-26 | 中兴通讯股份有限公司 | 一种网络处理器内外混合查表方法 |
CN102436453A (zh) * | 2010-09-29 | 2012-05-02 | 金蝶软件(中国)有限公司 | 一种父子维的处理方法及装置 |
CN102436453B (zh) * | 2010-09-29 | 2015-03-11 | 金蝶软件(中国)有限公司 | 一种父子维的处理方法及装置 |
CN105701065A (zh) * | 2016-01-15 | 2016-06-22 | 浪潮电子信息产业股份有限公司 | 一种协议表可变更协议处理器的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US20030110180A1 (en) | 2003-06-12 |
US8195705B2 (en) | 2012-06-05 |
KR20040058168A (ko) | 2004-07-03 |
AU2002347376A8 (en) | 2003-07-09 |
AU2002347376A1 (en) | 2003-07-09 |
JP3935880B2 (ja) | 2007-06-27 |
WO2003054739A2 (en) | 2003-07-03 |
JP2005513895A (ja) | 2005-05-12 |
BR0214890A (pt) | 2004-12-14 |
KR100603699B1 (ko) | 2006-07-20 |
WO2003054739A3 (en) | 2004-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1602485A (zh) | 用于网络处理器和计算机系统的混合搜索存储器 | |
Stone | Parallel querying of large databases: A case study | |
You et al. | 100-epoch imagenet training with alexnet in 24 minutes | |
Arge | The buffer tree: A new technique for optimal I/O-algorithms | |
CN104504003B (zh) | 图数据的搜索方法和装置 | |
US4967341A (en) | Method and apparatus for processing data base | |
JP2005513895A5 (zh) | ||
CN1914597A (zh) | 处理单元的动态加载和卸载 | |
Hawthorn et al. | Performance analysis of alternative database machine architectures | |
Tumeo et al. | Aho-Corasick string matching on shared and distributed-memory parallel architectures | |
JP3510042B2 (ja) | データベース管理方法及びシステム | |
JPH04241072A (ja) | 配線経路探索装置及び配線経路探索方法 | |
Helman et al. | Designing practical efficient algorithms for symmetric multiprocessors | |
CN106708956B (zh) | 一种基于多url规则集的http数据匹配方法 | |
CN114064551B (zh) | 基于cpu+gpu异构的高并发序列比对计算加速方法 | |
Jang et al. | Charon: Specialized near-memory processing architecture for clearing dead objects in memory | |
Omiecinski et al. | Hash-based and index-based join algorithms for cube and ring connected multicomputers | |
US8869155B2 (en) | Increasing parallel program performance for irregular memory access problems with virtual data partitioning and hierarchical collectives | |
CN103038718B (zh) | 本地化数据亲和性系统和混合方法 | |
CN105577806A (zh) | 一种分布式缓存方法及系统 | |
CN1924816A (zh) | 提高多核系统访问临界资源速度的方法和装置 | |
Jin et al. | A comparison of cache blocking methods for fast execution of ensemble-based score computation | |
Leland et al. | The silicon database machine | |
Zhang et al. | Egraph: efficient concurrent GPU-based dynamic graph processing | |
Evangelista et al. | Memory efficient state space storage in explicit software model checking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |