一种实现无回溯的最长前缀匹配搜索的方法和装置的制作方法

文档序号:86924阅读:381来源:国知局
专利名称:一种实现无回溯的最长前缀匹配搜索的方法和装置的制作方法
技术领域
本发明涉及网络通讯领域中的模式匹配,特别涉及一种实现无回溯的最长前缀匹配搜索的方法和装置。
背景技术
IP数据包的转发是路由器、交换机等网络设备的基本功能之一。在进行IP数据包转发时,需要根据数据包的目标地址进行搜索,以确定该数据包的转发端口。最常见的搜索操作是在路由表中查找与对应的目标地址具有最长前缀匹配表项。由于路由表的规模通常都很大,对它们的检索是一件非常费时的工作。
目前存在两种版本的IP,即IP版本4(IPv4)和IP版本6(IPv6)。IPv4的地址长度为32位,而IPv6的地址长度则为128位。一个32位的IPv4目的地址提供40亿个可能的路由,而一个互联网路由器通常存储40亿个可能的路由中的5万个路由。随着互连网的发展和IPv6的普及,路由器中所存储的路由数量也需要相应增加。
在现有的IPv4协议中,IP的地址空间分为A、B和C三类IP地址。每个IP地址空间分为网络地址和主机地址。然而,将IP地址空间划分为不同的类减少了可用IP地址的数量,浪费了大量可用的地址。为了提高IP地址空间利用率,现有技术中引入了无级域间路由(CIDR)。但无级域间路由增加了存储在路由器中的路由数量。这是由于无级域间路由需要采用最长前缀匹配搜索来取代完全匹配搜索,以获得相应的下一跳而寻找匹配的网络地址。
实现采用最长前缀匹配搜索的技术主要有以下方法基于TCAM(三态内容寻址存储器)器件的方法,这种方法的特点是使用特殊的存储器件TCAM来实现最长前缀匹配,虽然能实现很好的查找性能,但由于TCAM器件成本很高,一般只适用于规模较小的查找表中。另外一种是基于二进制树数据结构的方法搜索方法,这种方法将输入的关键字与二进制树的逐位匹配,直到找到叶子结点为止。对于一个32位的IPv4地址,需要32次搜索才能找到与关键字匹配的表项的入口。第三种方法是采用路径压缩的二进制树,采用这种结构可以减少完成一次搜索所需的匹配次数。
采用基于路径压缩的二进制树的方法进行搜索的存储空间开销较小,搜索效率也较高,而且这种方法的扩展性也很好。在当前的网络处理中,通常采用采用这种结构。但采用这种方法实现最长匹配搜索时,由于搜索时无法确定当前结点的子树中是否有最优的结果,所以在搜索时必须保存搜索过程中访问到的节点,以便在叶子结点处找不到最优结果时回退到先前访问的结点,即回溯以获得正确的搜索结果,这会使存储搜索结构的存储开销增加,同时还会因回溯而降低搜索的效率。

发明内容本发明的目的本发明的目的是克服现有方法在实现最长匹配搜索时,由于回溯而造成的存储开销增加,搜索效率降低的缺陷,从而提供一种可用于实现最长前缀匹配搜索的方法和实现装置,以提高搜索的效率。
为了实现上述目的,本发明提供了一种实现无回溯的最长前缀匹配搜索的装置,包括第一选择器10、第二选择器11、第三选择器12、第一加法器14、第二加法器15、第一或门16、第二或门17、第三或门18、多路选择器19、译码器20、掩码生成单元21和比较部件22;还包括输入信息寄存器组1、树结点寄存器组2、树结点读取部件4、叶索引表读取部件5、比较结果寄存器6、叶结点信息寄存器组7、搜索结果寄存器组8和控制信号生成部件9;其中,所述的输入信息寄存器组1与所述的多路选择器19、第一选择器10、第二加法器15连接;所述的树结点寄存器组2分别与所述的第一选择器10、第一加法器14、第二加法器15、树结点读取部件4和译码器20电连接;所述的第一选择器10还连接到第一加法器14上,所述的第一加法器14则与所述的多路选择器19连接;所述的树结点读取部件4与多路选择器19和外部的存储器3电连接,所述的存储器3还与所述的叶索引表读取部件5电连接,所述的叶索引表读取部件5与所述的第二加法器15、叶结点信息寄存器组7电连接;所述译码器20分别与所述的第一或门16、第二或门17、第三或门18和掩码生成单元21电连接,所述的第三或门18与所述的多路选择器19连接,所述的第一或门16与所述的比较结果寄存器6电连接,所述的掩码生成单元21还与叶结点信息寄存器组7、比较部件22相连,所述的比较部件22分别与所述的输入信息寄存器组1、比较结果寄存器6、第二选择器11和第三选择器12电连接,所述的叶结点信息寄存器组7分别与第二选择器11、第三选择器12电连接,所述的第二选择器11、第三选择器12分别连接到所述的搜索结果寄存器组8上。
上述技术方案中,所述的输入信息寄存器组1由叶索引表始址寄存器、搜索树根结点地址寄存器、输入关键字寄存器组成。
上述技术方案中,所述的树结点寄存器组2由类型寄存器、待测位寄存器、下一中间结点地址寄存器以及叶结点索引寄存器组成。
上述技术方案中,所述的叶结点信息寄存器组7由关键字寄存器、前缀长度寄存器、数据信息大小寄存器和数据信息指针寄存器组成。
上述技术方案中,所述的搜索结果寄存器组8由搜索信息大小寄存器和搜索信息指针寄存器组成。
一种实现无回溯的最长前缀匹配搜索的方法,包括以下步骤步骤100、将搜索需要的参数写入到输入信息寄存器组1中,发出启动信号,启动一个查找过程;步骤200、树结点读写部件4根据输入信息寄存器组1中的搜索树根结点地址寄存器和输入关键字寄存器中的信息读取外接的存储器3,将相应的树结点信息存入到树结点寄存器组2中,并置比较结果寄存器6为0,执行下一步;步骤300、判断树结点寄存器组2中的类型域的值,如果类型域的值为“00”,则置完成信号为1,并根据比较结果寄存器6的值产生搜索成功与失败信号,执行步骤900;若类型域的值为其他值,则执行下一步;步骤400、如果树结点寄存器组2中的类型域的值为“01”或者“11”,执行下一步;否则,树结点寄存器组2中的类型域为“10”,执行步骤900;步骤500、将树结点寄存器组2中的叶结点索引域中的值与输入信息寄存器组1中的叶索引表始址寄存器的值相加,相加后的结果送叶索引表读取部件5,叶索引表读写部件5根据相加的结果对存储器3进行读取,将相应的叶结点信息写入到叶结点信息寄存器组7中后,执行下一步;步骤600、将叶结点信息寄存器组7中的前缀长度域的值送到掩码生成单元21中,生成的掩码与输入信息寄存器组1的输入关键字寄存器所发出的输入关键字相与,结果送到比较部件,与叶子信息寄存器7中的关键字域中的值作比较;步骤700、判断比较的结果,若比较成功,结果送比较结果寄存器6,并将叶结点信息寄存器组7中的数据信息大小和数据信息指针域分别送到搜索结果寄存器组8的对应寄存器中;若比较失败,不进行任何操作;步骤800、对树结点寄存器组2中的类型域的值进行判断,若该值为“11”,执行步骤下一步;否则置完成信号为1,根据比较结果寄存器的值产生搜索成功与失败信号,转步骤1000;步骤900、根据树结点寄存器组2的下一待测位域取出输入信息寄存器组1中的输入关键字域对应位,若该位为1,则将树结点寄存器组2的下一中间结点地址域的值加1,得到下一个中间结点地址;否则将树结点寄存器组2的下一中间结点地址域的值作为下一中间结点地址,把该地址输入到树结点读写部件4;树结点读写部件4读取存储器3,将相应的树结点存入到树结点寄存器组2中,重新执行步骤300;步骤1000、外部设备检测到完成信号,检查搜索输出结果,若为1,则查找成功,读取输出的数据信息大小和数据信息指针寄存器,获得搜索结果;否则,搜索失败。
上述技术方案中,采用路径压缩的二进制树来存储搜索结构和叶索引表来存放叶结点信息。
在所述的二进制树中,有包含两个树结点结构的中间结点,所述的两个树结点存放在连续的存储空间中;所述树结点结构由类型、待测位、下一中间结点地址和叶结点索引四个域组成。
所述的叶索引表是一个线性表,它的每个元素是一个叶结点结构;所述叶结点结构存放所述二进制树的叶结点信息,所述叶结点结构由关键字、前缀长度、数据信息指针和数据信息大小四个域组成。
本发明的优点在于1、本发明采用了一种新的无回溯的路径压缩的二进制树的结构及搜索方法,可提高搜索效率并降低存储空间消耗。
2、本发明采用的叶子索引的机制,可减少实现查找的存储空间开销。
图1为本发明的实现无回溯的最长前缀匹配搜索装置的示意图;图2为一种应用本发明的实现无回溯的最长前缀匹配搜索装置的网络处理器的结构图;图3为在一个实施例中所采用的二叉树的示意 图4为本发明的实现无回溯的最长前缀匹配搜索方法的流程图。
图面说明1 输入信息寄存器组 2 树结点寄存器组 3 存储器4 树结点读取部件 5 叶索引表读取部件 6 比较结果寄存器7 叶结点信息寄存器组 8 搜索结果寄存器组 9 控制信号生成部件10 第一选择器 11 第二选择器 12 第三选择器14 第一加法器 15 第二加法器 16 第一或门17 第二或门 18 第三或门 19 多路选择器20 译码器 21 掩码生成单元 22 比较部件31 控制微处理器 32 数据总线 33 搜索装置具体实施方式
下面结合附图和具体实施方式
对本发明的实现无回溯的最长前缀匹配搜索的方法和装置作进一步说明。
在对本发明的实现无回溯的最长前缀匹配搜索的方法进行说明前,首先对本发明中所涉及到的数据结构进行说明。
在本发明中所采用的二进制搜索树中包含以下数据结构中间结点(IN)、树结点(TN)、叶结点索引表(LIT)和叶结点(LN)。
中间结点(IN)是实现搜索树内部结点的结构,如表1所示,它包含了两个树结点结构,结点1(TN1)和结点2(TN2),它们存放在连续的存储空间中,分别用于表示该结点的左右两棵子树。
表1树结点(TN)是中间结点(IN)的基本组成部分。如表2所示,一个树结点包含了类型(Type)、待测位(TB)、下一中间结点地址(NIA)和叶结点索引(LI)几个域。其中,类型(Type)域表明了该树结点的类型。在本方法中,树结点分为四类空树结点、连接叶结点的树结点、连接中间结点的树结点和连接叶及中间结点的树结点。类型域的长度为两位,表3给出了各个结点类型的定义和成立条件;待测位(TB)域表明关键字中待测试的位的位置;下一中间结点地址保存了连接在该树结点上的中间结点的地址;而叶结点索引则存储了连接在该树结点上的叶子结点在叶结点索引表中的索引值。
表2
表3叶结点是实现查找树的叶子结点的结构,如表4所示,它包含关键字(Key)、前缀长度(PL)、数据信息指针(DP)和数据信息大小(DS)四个域。其中,关键字和前缀长度域存储了该叶子中关键字,用于在查找时与输入的关键字比较;数据信息指针域和数据信息大小域分别保存了与该叶子结点对应的数据信息在存储器中的地址及其大小,这两个域将作为搜索结果返回,控制处理器可以根据它们从存储器中读出对应的数据信息。
表4叶结点索引表(LIT)是一个线性表,它的每个元素是一个叶结点结构。如表5所示,该表是一个保存8个32位的IPv4路由表项的叶结点索引表的示例,其中,0至7号前缀分别与0至7号数据一一对应。例如,在编号为0的叶结点索引表项中,一个32位的IP地址,它的前缀长度为16位,因此,该IP地址中关键字为32位IP地址的前16位,即“1.1.x.x”中的“1.1”为关键字。
表5如图4所示,为一个搜索二叉树的示意图。在该示意图中,树结点的类型(Type)域是用二进制表示的,待测位(TB)和叶子索引是用十进制表示的。以其中的根结点为例,根结点本身是一个树结点数据结构,由该结点的类型值10可以看出,根结点只与一个中间结点相连,待测位的值为6表示进行搜索时,需根据输入关键字的第6位决定下一步访问根节点的左子树还是右子树,若关键字的第6位为1在根节点的右子树中查找,否则在根节点的左子树中查找。没有叶结点与根结点连接,因此叶结点索引值为空。在与根结点连接的中间结点上有两个树结点,左侧的树结点的类型值为11,表示该结点与一个叶结点和一个中间结点连接。待测位的值14表示进行搜索时,需根据输入关键字的第14位决定下一步访问当前节点的左子树还是右子树,若关键字的第14位为1,在当前节点的右子树中查找,否则在当前节点的左子树中查找,叶结点索引值7表示与结点相连接的叶结点在叶结点索引表中的第7项,假设所述的叶结点索引表就是表5,则与树结点连接的叶结点为1.x.x.x/8。图中其他结点的含义相类似,不再一一说明。
无回溯的最长前缀匹配搜索在网络技术中有广泛的应用,在本实施例中,以网络处理器为例,对本发明的应用于网络处理器的实现无回溯的最长前缀匹配搜索装置进行说明。
如图2所示,一个网络处理器由控制微处理器31、数据总线32、搜索装置33和存储器3组成,其中控制微处理器31通过数据总线32与搜索装置33相连,控制微处理器31和搜索装置33都和存储器3相连。搜索装置33即为本发明的实现无回溯的最长前缀匹配搜索装置,它作为网络处理器中的查找加速电路存在。数据总线32在控制微处理器31和搜索装置33之间传递数据和读写控制信号,控制微处理器31通过该部件向搜索装置33的寄存器写入数据或者从搜索装置33中间查找结果后读出。存储器3存储了查找所需的各种数据结构,它可以被控制微处理器31和搜索装置33访问。
下面对本发明的实现无回溯的最长前缀匹配搜索装置进行详细说明。如图1所示,本发明的实现无回溯的最长前缀匹配搜索装置包括输入信息寄存器组1、树结点寄存器组2、树结点读取部件4、叶索引表读取部件5、比较结果寄存器6、叶结点信息寄存器组7、搜索结果寄存器组8和控制信号生成部件9。其中,输入信息寄存器组1与多路选择器19、第一选择器10、第二加法器15连接;树结点寄存器组2分别与第一选择器10、第一加法器14、第二加法器15、树结点读取部件4和译码器20电连接;第一选择器10还连接到第一加法器14上,第一加法器14则与多路选择器19连接;树结点读取部件4与多路选择器19和外部的存储器3电连接,存储器3还与叶索引表读取部件5电连接,叶索引表读取部件5与第二加法器15、叶结点信息寄存器组7电连接;所述译码器20分别与第一或门16、第二或门17、第三或门18和掩码生成单元21电连接,所述的第三或门18与所述的多路选择器19连接,所述的第一或门16与比较结果寄存器6电连接,所述的掩码生成单元21还与叶结点信息寄存器组7、比较部件22相连,所述的比较部件22分别与输入信息寄存器组1、比较结果寄存器6、第二选择器和第三选择器12电连接,所述的叶结点信息寄存器组7分别与第二选择器11、第三选择器12电连接,所述的第二选择器11、第三选择器12分别连接到搜索结果寄存器组8上。
输入信息寄存器组1由多个寄存器组成,包括叶索引表始址寄存器、搜索树根结点地址寄存器、输入关键字寄存器。输入信息寄存器组1从与本发明装置连接的控制微处理器31输入参数,该参数包括搜索树根结点地址、叶结点索引表起始地址、输入关键字和启动信号。其中,搜索树的根结点在存储器3中的地址存储在搜索树根结点地址寄存器中,叶结点索引表的起始地址存储在叶索引表始址寄存器,输入关键字存储在输入关键字寄存器。
树结点读取部件4从与本发明的装置相连接的存储器3中读取树结点的信息。
树结点寄存器组2保存了树结点读取部件4从存储器3中读入的树结点,搜索电路利用该寄存器组决定进行查找时的各项操作,该寄存器组包含了类型寄存器(Type)、待测位(TB)寄存器、下一中间结点地址寄存器(NIA)以及叶结点索引(LI)寄存器四个寄存器,它们与树结点的几个域一一对应,树结点四个域中的信息保存在对应的四个寄存器中。
叶索引表读取部件5根据输入的输入信息寄存器组1中的叶索引表始址寄存器和树结点寄存器组2的LI寄存器读取叶索引表,将存储器3中的叶结点信息写入到叶结点信息寄存器组7中。
比较结果寄存器6存放了搜索过程中叶子结点中的关键字与输入关键字的比较结果,同时还用于在搜索结束时产生搜索成功与失败信号(OK/KO)。
叶结点信息寄存器组7包含关键字寄存器(Key)、前缀长度(PL)寄存器、数据信息大小寄存器(DS)和数据信息指针寄存器(DP)四个寄存器,分别用于存放叶结点的四个域中的相应信息。
搜索结果寄存器组8包括搜索信息大小寄存器和搜索信息指针寄存器两个寄存器,分别存放作为搜索结果的信息的大小及其在存储器中的存储位置。
控制信号生成部件9用于生成各种内部的控制信号。
本发明装置的输出结果发送到控制微处理器31上,输出结果具体包括搜索成功信号(OK/KO)、搜索完成信号(Finish)、搜索结果(搜索信息指针(DP)和搜索信息大小(DS))等。
上述的输入信息寄存器组1中的输入关键字寄存器和叶子信息寄存器组7中的Key域寄存器可根据需要可设置为不同的值,一般可取128位至256位之间,为简化硬件电路,其余的全部内部寄存器应所处的网络处理器的字长一致,例如,在32位长的机器中,内部搜索装置的寄存器均为32位长。
利用本发明的实现无回溯的最长前缀匹配搜索装置可实现无回溯的最长前缀匹配搜索,其方法如下步骤100、控制微处理器31将搜索需要的各种输入参数写入到输入信息寄存器组中,发出启动信号,启动一个查找过程;
步骤20、树结点读写部件4根据输入信息寄存器组1中的搜索树根结点地址寄存器和输入关键字寄存器中的信息读取存储器3,将相应的树结点存入到树结点寄存器组2中,置比较结果寄存器6为0,执行步骤300;步骤300、判断树结点寄存器组2中的类型域(Type)的值,如果类型域的值为“00”,则置完成(Finish)信号为1,并根据比较结果寄存器6的值产生搜索成功与失败信号(OK/KO),执行步骤900;若类型域的值为其他值,则执行下一步;步骤400、如果树结点寄存器组2中的类型域(Type)的值为“01”或者“11”,执行下一步;否则,树结点寄存器组2中的类型域(Type)为“10”,执行步骤900;步骤500、将树结点寄存器组2中的叶结点索引域(LI)中的值与输入信息寄存器组1中的叶索引表始址寄存器的值相加,相加后的结果送叶索引表读取部件5;叶索引表读写部件5对存储器3进行读取,将相应的叶结点信息写入到叶结点信息寄存器组7中后,执行下一步;步骤600、将叶结点信息寄存器组7中的前缀长度域(PL)的值送到掩码生成单元中,生成的掩码与输入信息寄存器组1的输入关键字寄存器所发出的输入关键字相与,结果送到比较部件,与叶子信息寄存器7中的关键字域(Key)中的值作比较;步骤700、判断比较的结果,若比较成功,结果送比较结果寄存器6,并将叶结点信息寄存器组中的数据信息大小(DS)和数据信息指针域(DP)分别送到搜索结果寄存器组8的对应寄存器中;若比较失败,不进行任何操作。
步骤800、对树结点寄存器组2中的类型域(Type)的值进行判断,若该值为“11”,执行步骤900;否则置完成(Finish)信号为1,根据比较结果寄存器的值产生搜索成功与失败信号(OK/KO),转步骤1000;步骤900、根据树结点寄存器组2的下一待测位域(TB)取出输入信息寄存器组1中的输入关键字域对应位,若该位为1,则将树结点寄存器组2的NIA域加1,得到下一个中间结点地址;否则树结点寄存器组2的NIA域作为下一中间结点地址。将该地址输入到树结点读写部件4;树结点读写部件4读取存储器3,将相应的树结点存入到树结点寄存器组2中,重新执行步骤300;步骤1000、控制微处理器1检测到完成信号,检查搜索输出结果(OK/KO),若为1,则查找成功,读取输出的数据信息大小(DS)和数据信息指针(DP)寄存器,获得搜索结果;否则搜索失败。
下面以一个具体的实例,对无回溯的最长前缀匹配搜索过程进行说明。假设在图4的树中,搜索一个IPv4的地址1.1.0.5,所采用的叶结点索引表如表5所示,具体实现如下步骤a、控制微处理器31将树和叶结点索引表的信息以及关键字(1.1.0.5)写入到搜索装置33的输入寄存器中,启动搜索过程;步骤b、搜索装置33读入根结点,根结点的类型为“10”,关键字1.1.0.5的第6位(指二进制位)为0,因此读入根节点的左子结点;步骤c、根结点的左子结点的类型值为“11”,TB域的值为14,叶子索引域为7,根据该索引值(7)和索引表的起始地址从表5中读入该叶子结点,其中的前缀为1.x.x.x(Key)/8(PL),根据前缀长度8得到掩码255.0.0.0。将掩码分别与关键字和前缀相与后作比较,二者相等,比较成功,因此将叶结点寄存器组的DP和DS域(即索引值为7的叶结点的地址和大小)送到结果寄存器组中。由于该节点的类型为“11“,TB域为14,而输入关键字1.1.0.5的第14位为0,因此还需要读入该树结点的左孩子结点。
步骤d、在步骤300中读入的结点的类型域为“10”,TB域为15,输入关键字(1.1.0.5)的第15位为1,故读入其右孩子结点。
步骤e、新读入的右孩子结点的类型域为“11”,TB域为23,其叶子索引域的值为0,根据该索引值(0)和索引表的起始地址从表5中读入该叶子结点,其中的前缀为1.1.x.x(Key)/16(PL),根据前缀长度16得到掩码255.255.0.0。将掩码分别与关键字和前缀相与后再比较,二者相等,即比较成功,所以将叶结点寄存器组的DP和DS域(即索引值为0的叶结点的地址和数据的大小)送到结果寄存器组中。由于该节点的类型为“11”,TB域为23,而输入关键字(1.1.0.5)的第23位为0,故读入该树结点的左孩子结点。
步骤f、本次读入的结点类型为“01”,其叶子索引域的值为4,根据该索引值(4)和索引表的起始地址从表5中读入索引值为4的叶子结点,其中的前缀为1.1.2.x(Key)/24(PL),根据前缀长度24得到掩码255.255.255.0。将掩码分别与关键字和前缀相与后再比较,二者不等,即比较失败,不进行任何操作。由于该结点的类型域为“01”,即搜索结束,此时比较结果寄存器的值为1,故置比较完成标志和比较成功标志为1。此时,搜索完成,搜索结果为搜索成功,得到的数据为索引值为0的叶结点中的数据。
权利要求
1.一种实现无回溯的最长前缀匹配搜索的装置,其特征在于,包括第一选择器(10)、第二选择器(11)、第三选择器(12)、第一加法器(14)、第二加法器(15)、第一或门(16)、第二或门(17)、第三或门(18)、多路选择器(19)、译码器(20)、掩码生成单元(21)和比较部件(22);还包括输入信息寄存器组(1)、树结点寄存器组(2)、树结点读取部件(4)、叶索引表读取部件(5)、比较结果寄存器(6)、叶结点信息寄存器组(7)、搜索结果寄存器组(8)和控制信号生成部件(9);其中,所述的输入信息寄存器组(1)与所述的多路选择器(19)、第一选择器(10)、第二加法器(15)连接;所述的树结点寄存器组(2)分别与所述的第一选择器(10)、第一加法器(14)、第二加法器(15)、树结点读取部件(4)和译码器(20)电连接;所述的第一选择器(10)还连接到第一加法器(14)上,所述的第一加法器(14)则与所述的多路选择器(19)连接;所述的树结点读取部件(4)与多路选择器(19)和外部的存储器(3)电连接,所述的存储器(3)还与所述的叶索引表读取部件(5)电连接,所述的叶索引表读取部件(5)与所述的第二加法器(15)、叶结点信息寄存器组(7)电连接;所述译码器(20)分别与所述的第一或门(16)、第二或门(17)、第三或门(18)和掩码生成单元(21)电连接,所述的第三或门(18)与所述的多路选择器(19)连接,所述的第一或门(16)与所述的比较结果寄存器(6)电连接,所述的掩码生成单元(21)还与叶结点信息寄存器组(7)、比较部件(22)相连,所述的比较部件(22)分别与所述的输入信息寄存器组(1)、比较结果寄存器(6)、第二选择器(11)和第三选择器(12)电连接,所述的叶结点信息寄存器组(7)分别与第二选择器(11)、第三选择器(12)电连接,所述的第二选择器(11)、第三选择器(12)分别连接到所述的搜索结果寄存器组(8)上。
2.根据权利要求
1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的输入信息寄存器组(1)包括叶索引表始址寄存器、搜索树根结点地址寄存器和输入关键字寄存器。
3.根据权利要求
1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的树结点寄存器组(2)由类型寄存器、待测位寄存器、下一中间结点地址寄存器以及叶结点索引寄存器组成。
4.根据权利要求
1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的叶结点信息寄存器组(7)由关键字寄存器、前缀长度寄存器、数据信息大小寄存器和数据信息指针寄存器组成。
5.根据权利要求
1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的搜索结果寄存器组(8)由搜索信息大小寄存器和搜索信息指针寄存器组成。
6.一种应用权利要求
1、2、3、4或5所述的搜索装置进行无回溯的最长前缀匹配搜索的方法,包括以下步骤步骤100)、将搜索需要的参数写入到输入信息寄存器组(1)中,发出启动信号,启动一个查找过程;步骤200)、树结点读写部件(4)根据输入信息寄存器组(1)中的搜索树根结点地址寄存器和输入关键字寄存器中的信息读取外接的存储器(3),将相应的树结点信息存入到树结点寄存器组(2)中,并置比较结果寄存器(6)为0,执行下一步;步骤300)、判断树结点寄存器组(2)中的类型域的值,如果类型域的值为“00”,则置完成信号为1,并根据比较结果寄存器(6)的值产生搜索成功与失败信号,执行步骤900;若类型域的值为其他值,则执行下一步;步骤400)、如果树结点寄存器组(2)中的类型域的值为“01”或者“11”,执行下一步;否则,树结点寄存器组(2)中的类型域为“10”,执行步骤900;步骤500)、将树结点寄存器组(2)中的叶结点索引域中的值与输入信息寄存器组(1)中的叶索引表始址寄存器的值相加,相加后的结果送叶索引表读取部件(5),叶索引表读写部件(5)根据相加的结果对存储器(3)进行读取,将相应的叶结点信息写入到叶结点信息寄存器组(7)中后,执行下一步;步骤600)、将叶结点信息寄存器组(7)中的前缀长度域的值送到掩码生成单元(21)中,生成的掩码与输入信息寄存器组(1)的输入关键字寄存器所发出的输入关键字相与,结果送到比较部件,与叶子信息寄存器(7)中的关键字域中的值作比较;步骤700)、判断比较的结果,若比较成功,结果送比较结果寄存器(6),并将叶结点信息寄存器组(7)中的数据信息大小和数据信息指针域分别送到搜索结果寄存器组(8)的对应寄存器中;若比较失败,不进行任何操作;步骤800)、对树结点寄存器组(2)中的类型域的值进行判断,若该值为“11”,执行步骤下一步;否则置完成信号为1,根据比较结果寄存器的值产生搜索成功与失败信号,转步骤1000;步骤900)、根据树结点寄存器组2的下一待测位域取出输入信息寄存器组(1)中的输入关键字域对应位,若该位为1,则将树结点寄存器组(2)的下一中间结点地址域的值加1,得到下一个中间结点地址;否则将树结点寄存器组(2)的下一中间结点地址域的值作为下一中间结点地址,把该地址输入到树结点读写部件(4);树结点读写部件(4)读取存储器(3),将相应的树结点存入到树结点寄存器组(2)中,重新执行步骤300;步骤1000)、外部设备检测到完成信号,检查搜索输出结果,若为1,则查找成功,读取输出的数据信息大小和数据信息指针寄存器,获得搜索结果;否则,搜索失败。
7.根据权利要求
6所述的实现无回溯的最长前缀匹配搜索的方法,其特征在于,采用路径压缩的二进制树来存储搜索结构和叶索引表来存放叶结点信息。
8.根据权利要求
7所述的实现无回溯的最长前缀匹配搜索的方法,其特征在于,在所述的二进制树中,有包含两个树结点结构的中间结点,所述的两个树结点存放在连续的存储空间中;所述树结点结构由类型、待测位、下一中间结点地址和叶结点索引四个域组成。
9.根据权利要求
7所述的实现无回溯的最长前缀匹配搜索的方法,其特征在于,所述的叶索引表是一个线性表,它的每个元素是一个叶结点结构;所述叶结点结构存放所述二进制树的叶结点信息,所述叶结点结构由关键字、前缀长度、数据信息指针和数据信息大小四个域组成。
专利摘要
本发明公开了一种实现无回溯的最长前缀匹配搜索的装置,包括第一选择器、第二选择器、第三选择器、第一加法器、第二加法器、第一或门、第二或门、第三或门、多路选择器、译码器、掩码生成单元和比较部件,还包括输入信息寄存器组、树结点寄存器组、树结点读取部件、叶索引表读取部件、比较结果寄存器、叶结点信息寄存器组、搜索结果寄存器组和控制信号生成部件。本发明还公开了一种实现无回溯的最长前缀匹配搜索的方法。本发明采用的无回溯的路径压缩的二进制树的结构及搜索方法,可提高搜索效率并降低存储空间消耗;本发明采用叶子索引的机制,可减少实现查找的存储空间开销。
文档编号G06F17/30GK1996953SQ200610165449
公开日2007年7月11日 申请日期2006年12月20日
发明者张飞飞, 鄢贵海, 付斌章, 李华伟, 韩银和, 刘彤, 雷韶华 申请人:中国科学院计算技术研究所导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1