多存储器流水路由体系结构的制作方法

文档序号:7856130阅读:222来源:国知局

专利名称::多存储器流水路由体系结构的制作方法
技术领域
:本发明涉及一种路由体系结构,具体来说,涉及一种使用多个存储器以流水并行化多个数据包的路由信息查找操作,从而有效提高路由系统的吞吐量的多存储器流水路由体系结构。
背景技术
:一个IP路由器实现两个基本功能,分别是路由功能和交换功能,当数据包到达路由器的某个输入端口时,其须依次经历路由阶段和交换阶段,在路由阶段,系统获取数据包的目的地址,并据此查找路由表以获取相应的目的输出端口号;在交换阶段,系统通过调度将数据包交换到指定的输出端口,从而将数据包转发到下一跳站点。目前,基于前缀树的路由算法包括BinaryTrie(BT)>PrefixTrie(PT)[I]>Fixed-StrideTrie(FST)2和Multi-PrefixTrie(MPT)3等算法。在本文的陈述中用到以下术语。目的地址IPv4/IPv6互联网协议下,一个数据包的目的地址可表示为一个长度32/128的二进制字符串。二进制字符串一个长度为n的二进制字符串是将n个属于字符集E={0,1}的字符按其位置依次排列形成的数组S。二进制前缀子串二进制字符串S的前缀子串S,表示S串中从位置0到位置i的一段字符串,也就是3,5[1],..,5[1]组成的字符串。路由表一张路由表由多条记录组成,一条记录由一个前缀子项和一个输出端口号组成,一个前缀子项是一个二进制字符串,各记录的前缀子项构成一个二进制字符串集合TI。最长匹配前缀对于任意两个二进制字符串S1,S2,m<n,若满足S1为S2的前缀子串,则我们称S1是S2的一个长度为m的匹配前缀,记作岑eS1。给定一个二进制字符串集合n和字符串S,若S'en且Yf=S,则S’是S的一个匹配前缀。又若对S的任意匹配前缀S〃GTI,有fez允,则我们称s’为S的关于n的最长匹配前缀。基于前缀树的路由算法在路由阶段,系统根据数据包的目的地址在路由表中查找与目的地址匹配的最长匹配前缀。直观地,系统可以将目的地址与表中各记录的前缀子项依次进行比较以获得符合要求的最长匹配前缀。显而易见,这种查找方式无法获得较高的查找效率。另一方面,将路由表转化为前缀树以支持快速路由查找的策略被广泛地研究并推广到工业生产中。不失一般性地,在一棵前缀树中,单个前缀结点可表示路由表中的一条或多条记录,各前缀结点以指针相连。一个数据包的路由查找过程从前缀树的根结点开始,直到其到达某叶子结点结束。在此过程中,系统将数据包的目的地址与查找路径上的所有结点中的前缀进行匹配,并记录其间获得的最长匹配前缀。最终,系统返回该最长匹配前缀对应的输出端口号,数据包继而进入交换阶段。利用以上术语,我们给出一个基于前缀树的路由查找示例,为了描述方便,我们选用BT路由算法来组织路由表中的前缀,如图I和图2所示根据图I所示的路由表,图2给出了釆用BT路由算法构造而成的前缀树,该前缀树的每个前缀结点包含最多I个前缀。假设到达路由器的数据包的目的地址的高8位为10101010,则该数据包的路由查找过程可描述如下数据包访问前缀树的根结点,根结点前缀为空,匹配不成功,其根据目的地址的第0位分支搜索前缀树;目的地址第0位为1,则数据包访问根结点的右孩子,该结点前缀为空,匹配不成功,其根据目的地址的第I位分支搜索前缀树;目的地址第I位为0,则数据包访问当前结点的左孩子,该结点前缀为10*,匹配成功,最长匹配前缀更新为10*,其继而根据目的地址的第2位分支搜索前缀树。重复以上步骤,最终找到与目的地址匹配的路由表前缀为10*和1010*,根据最长匹配前缀的定义,系统返回1010*对应的输出端口号r7。现存有多种基于前缀树的路由算法,具体可参见文献1-15。这些算法可进一步划分为串行前缀树路由算法和并行前缀树路由算法。在串行算法中,各数据包的路由查找过程严格按照时序先后执行,因此,系统的处理速度慢,吞吐量低。为此,大量研究致力于设计高效的多存储器流水路由体系结构,其通过合理地调度和安排存储器资源的存取操作,以实现多个路由查找过程的并行执行,从而极大地提高系统的整体性能12-15。参考文献[1]M.Berger,“IPlookupwithlowmemoryrequirementandfastupdate,”inProc.IEEEHPSRjJun2003,287-291.[2]S.SahniandK.Kim,“EfficientconstructionofmultibittriesforIPlookup”,IEEE/ACMTrans,onNetworking,pp.650-662,Aug2003.[3]S.Hsieh,Y.HuangandY.Yang,“Anoveldynamicrouter-tablesdesignforIPlookupandupdate,,,inIEEEInt.Con.onFutureInformationTechnology,May2010,pp.1-6.[4]V.SrinivasanandG.Varghese,“FasterIPlookupsusingcontrolledprefixexpansion,,,ACMTrans,onComputerSystems,pp.I-40,Feb1999.[5]S.NilssonandG.Karlsson,“IP-addresslookupusinglc-tries,,,IEEEJ.onSelectedAreasinCommunications,pp.1083-1092,Jun1999.[6]M.Degermark,A.Brodnik,S.Carlsson,andS.Pink,“Smallforwardingtablesforfastroutinglookups,”inProc.ACMSIGC0MM,1997,pp.3-14.[7]V.Ravikumar,R.Mahapatra,andJ.Liu,“Modifiedlc-triebasedefficientroutinglookup,”inProc.IEEEInt.Symp.onMASCOTS,Jan2003,pp.177-182.[8]S.SahniandK.Kim,“Efficientconstructionoffixed-stridemultibittriesforIPlookup,,’inIEEEWorkshoponFutureTrendsofDistributedComputingSystems,Nov2001,pp.178-184.[9]-,“Efficientconstructionofvariable-stridemultibittriesforIPlookup,,,inProc.Symp.onApplicationsandtheInternet,Feb2002,pp.220-227.[10]S.SahniandH.Lu,“DynamictreebitmapforIPlookupandupdate,”inIEEEInt.con.onNetworking,April2007,pp.79-84.[11]Y.Chang,Y.Lin,andC.Su,“DynamicmultiwaysegmenttreeforIPlookupsandthefastpipelinedsearchengine,^IEEETrans,onComputers,pp.492-506,Feb2010.[12]K.KimandS.Sahni,“Efficientconstructionofpipelinedmultibit-trierouter-tables,”IEEETrans,onComputers,pp.32-43,Jan2007.[13]M.BandoandH.J.Chao,^Flashtrie:Hash-basedprefixcompressedtrieforIProutelookupbeyondIOOGbps,”inProc.IEEEINF0C0M,March2010,pp.I-9.[14]ff.JiangandV.Prasanna,“Amemory-balancedIinearpipelinearchitecturefortrie-basedIPlookup,,,inIEEESymp.onHigh-PerformanceInterconnects,Aug2007,pp.83-90.[15]S.Kumar,M.Becchi,P.Corwley,andJ.Turner,“CAMP:fastandefficientIPlookuparchitecture,”inACM/1EEESymp.onArchitectureforNetworkingandCommunicationsSystems,2006,pp.51-60.[16]T.Anderson,S.Owicki,J.Saxe,andC.Thacker,“High-speedswitchschedulingforlocalareanetworks,,,ACMTrans.Comput.Syst.,pp.319-352,Nov1993.[17]N.McKeown,“TheiSLIPschedulingalgorithmforinput-queuedswitches,”IEEE/ACMTrans,onNetworking,pp.188-201,April1999.
发明内容针对以上的不足,本发明提供了一种使用多个存储器以流水并行化多个数据包的路由信息查找操作,从而有效提高路由系统的吞吐量的多存储器流水路由体系结构,它包含一个用于缓存数据包的路由缓冲区,一个用于控制数据包和存储器间的读写访问的调度单元,以及一组用于存储路由表前缀树结点的存储器。所述路由表前缀树结点通过随机存储方式实现到存储器组的映射。所述数据包的排队策略为1)系统时间被分割为固定大小的时隙;2)每个到达路由缓冲区的数据包长度固定,每个时隙到达的数据包数量最多为1,数据包的到达时刻为时隙的开始;3)在各时隙的末尾,调度单元从排队数据包中选取一个无冲突的数据包集合,所有当选的数据包并行地访问存储器组以查找存储在各存储器中的路由信息,如果某个当选的数据包完成了其路由信息查找任务,那么它将立刻离开路由缓冲区;4)各存储器在一个时隙内只能被访问一次。每个到达的数据包生成一个路由信息查找请求,该路由信息查找请求包含一次或多次存储器访问操作,每次存储器访问操作的目标是前缀树中某结点所在的存储器,各目标结点依序构成一条从根结点出发到某叶子结点结束的查找路径。所述调度单元的调度策略为步骤I:每个数据包发送一个访问请求给目标前缀树结点所在的存储器;步骤2:每个存储器从向其发送请求的多个数据包中任意选择一个授予其访问许可;步骤3:每个被授予访问许可的数据包对各目标存储器执行访问操作。所述步骤2采取先来先服务的调度策略,先到达的数据包具有较高的访问优先级。本发明的有益效果首先,本发明的路由体系结构提供了一个路由缓冲区来缓冲到达的数据包,从而支持日益增长的主干网带宽需求,如果路由缓冲区的包丢失率小于交换缓冲区的包丢失率,那么本发明的路由体系结构的性能就能够达到无路由缓冲区的路由系统的性能;另外,本发明的路由体系结构能够将任意基于前缀树路由算法下的路由表前缀树结点均匀地映射到流水系统的所有存储器中,相较于现存的其他流水路由设计方案,该方案无需使用额外的时间和空间即可实现流水系统的存储需求平衡。图I为路由表不例图;图2为路由表对应的BT树示意图;图3为本发明的多存储器流水路由体系结构的示意图;、图4为本发明的数据包的排队策略的结构示意图;图5为本发明初始状态和达到的数据包的示意图;图6为本发明对给定的数据包的流水并行调度的结果示意图。具体实施例方式下面结合附图对本发明进行进一步阐述。如图3所示,本发明的多存储器流水路由体系结构包含一个用于缓存数据包的路由缓冲区,一个用于控制数据包和存储器间的读写访问的调度单元,一组用于存储路由表前缀树结点的存储器。传统路由器的一个设计假设是路由器能够为以任意可能的速率到达的数据包提供实时的路由服务,从而,路由器在路由阶段不需要提供缓冲区来缓存到达的数据包。本发明为了提高系统吞吐量,路由体系结构提供一个路由缓冲区来缓冲到达的数据包,从而支持日益增长的主干网带宽需求,且如果路由缓冲区的包丢失率小于交换缓冲区的包丢失率,那么本发明所提出的路由体系结构的性能就能够达到无路由缓冲区的路由系统的性能。在基于前缀树的路由算法中,路由表中的各前缀项均存储于前缀树的某个结点中,前缀之间的父子前缀关系通过指针关系表示,本发明使用一种前缀结点随机存储技术,该路由体系结构能够将任意基于前缀树路由算法下的路由表前缀树结点均匀地映射到流水系统的所有存储器中,即前缀树中的任意前缀结点均等概率地存储到任意存储器组的任意存储器中,换言之,给定流水系统的存储器个数为M,则任意前缀结点i存储到下标为j的存储器中的概率为1/M。相较于现存的其他流水路由设计方案,该方案无需使用额外的时间和空间即可实现流水系统的存储需求平衡,同时,在实际的操作过程中,我们验证了该方案能够满足流水路由系统负载均衡的要求。我们给出以下假设和参数声明以建立路由体系结构的排队策略。I)系统时间被分割为固定大小的时隙。2)每个到达路由缓冲区的数据包长度固定,每个时隙到达的数据包数量最多为1,另外,数据包的到达时刻为时隙的开始。3)在各时隙的末尾,调度单元从排队数据包中选取一个无冲突的数据包集合,所有当选的数据包并行地访问存储器组以查找存储在各存储器中的路由信息,如果某个当选的数据包完成了其路由信息查找任务,那么它将立刻离开路由缓冲区。4)各存储器在一个时隙内只能被访问一次。为了表述方便,我们引入下面两个参数N:路由缓冲区中排队数据包的数量,缓冲区的容量为L个数据包。M:可用存储器的数量,我们用符号Hi1,mM表示存储器,为了表述方便,我们假定M为2的整数次幂。基于以上假设和参数定义,图4给出了本发明的路由体系结构的排队策略,在本发明中,每个到达的数据包生成一个路由信息查找请求,该路由信息查找请求包含一次或多次存储器访问操作,每次存储器访问操作的目标是前缀树中某结点所在的存储器,各目标结点依序构成一条从根结点出发到某叶子结点结束的查找路径。这样,当数据包到达路由缓冲区时,系统为数据包创建一个路由信息查找请求,该路由信息查找请求服从调度单元的安排以访问存储器中的目标路由表前缀树结点,路由信息查找请求从前缀树的根结点出发遍历前缀树,直到到达某个叶子结点结束。在此过程中,其需要访问多次存储器以寻找存储在该查找路径各结点中的最长匹配前缀。显而易见,目标前缀结点所在存储器不同的多个路由查找请求可以被并行地执行,然而,由于前缀树的各结点被随机分布到所有存储器中,多个路由查找请求可能同时访问相同存储器,导致存储器访问冲突。为此,本发明通过调度单元来协调路由查找请求之间的存储器访问操作,以避免访问冲突的发生。此处涉及的调度问题可以转化为一个双向图匹配问题,该问题已在输入队列交换机领域中被深入研究过16-17,我们定义各排队数据包和存储器分别表示双向图中的一个顶点,如果一个数据包顶点和一个存储器顶点之间存在一条连接弧,这就意味着这个数据包有访问该存储器的请求。调度的目标是寻找一个弧的最大集合,该集合满足如下条件连接到任意顶点(数据包顶点或者存储器顶点)的弧的数量最大为1,即任意顶点的度为0或I。调度单元必须使用某种冲突处理机制(例如先来先服务)以解决目标存储器相同的多个查找请求之间的访问冲突问题。在一个基于前缀树的路由设计方案中,一个路由信息查找请求通常由多个查找步骤组成,每个时隙执行一个查找步骤,每个查找步骤访问当前目标前缀结点所在的存储器。因此,我们可以将一个包含t个查找步骤的路由信息查找请求表示为一个形如R(S1,S2,...,Si,...,st)的元组,此处SiGIm1,m2,...,mM}表示该请求在查找步骤i所需访问的存储器的编号。例如,ROn1,m2,m5,m4,m3)代表一个存储器序列[m”m2,m5,m4,m3]。假设当前时隙为1,则查找请求对该序列中的存储器按从左到右的顺序分别在第I、第2、第3、第4和第5时隙执行访问操作,根据该双向图匹配模型,我们给出如下的并行调度策略的算法框架步骤I:每个数据包发送一个访问请求给目标前缀树结点所在的存储器。步骤2:每个存储器从向其发送请求的多个数据包中任意选择一个授予其访问许可。步骤3:每个被授予访问许可的数据包对各目标存储器执行访问操作。通过以上3步迭代调度算法,系统(路由体系结构)能够在一个时隙内同时执行多个数据包的存储器访问操作,这就构成了一个流水路由系统。图5和图6给出了该并行调度策略算法的一个运行实例。其中,我们在算法框架的步骤2采取先来先服务的调度策略,即先到达的数据包具有较高的访问优先级。假设可供使用的存储器数量为M=4,队列初始为空(即N=OX在表2(a)中,数据包P1-P8分别在时隙0-7的起始时刻到达路由器,系统分别为其创建查找请求R1-R815—旦建立一个查找请求,该查找请求将在每个调度实例中参与争夺目标存储器,直至其完成路由信息查找请求。例如,在时隙0,凡请求访问存储器mi。因为此刻没有其他查找请求参与调度,故R1被授予访问许可,从而时隙0的最大匹配集为KR1,mi)}。在时隙1,民参与调度并请求访问Hi1,而R1请求访问m2。故而,该时隙的最大匹配集为((R11Iii2),(R2j1H1)I0在时隙2,R1和R2同时请求访问m3,这引起了一个存储器访问冲突。根据FCFS原理,由于R1对应的P1具有更高的访问优先级,故而R1胜出。从而,该时隙的最大匹配集为(R3,mi)}。对时隙3-12进一步使用该调度算法,我们可以得到表2(b)中的结果。以上所述仅为本发明的较佳实施方式,本发明并不局限于上述实施方式,在实施过程中可能存在局部微小的结构改动,如果对本发明的各种改动或变型不脱离本发明的精神和范围,且属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变型。权利要求1.一种多存储器流水路由体系结构,它包含ー个用于缓存数据包的路由缓冲区,ー个用于控制数据包和存储器间的读写访问的调度单元,以及ー组用于存储路由表前缀树结点的存储器。2.根据权利要求I所述多存储器流水路由体系结构,其特征在于,所述路由表前缀树结点通过随机存储方式实现到存储器组的映射。3.根据权利要求2所述多存储器流水路由体系结构,其特征在于,所述数据包的排队策略为1)系统时间被分割为固定大小的时隙;2)每个到达路由缓冲区的数据包长度固定,每个时隙到达的数据包数量最多为1,数据包的到达时刻为时隙的开始;3)在各时隙的末尾,调度单元从排队数据包中选取ー个无冲突的数据包集合,所有当选的数据包并行地访问存储器组以查找存储在各存储器中的路由信息,如果某个当选的数据包完成了其路由信息查找任务,那么它将立刻离开路由缓冲区;4)各存储器在一个时隙内只能被访问一次。4.根据权利要求3所述多存储器流水路由体系结构,其特征在于,每个到达的数据包生成一个路由信息查找请求,该路由信息查找请求包含一次或多次存储器访问操作,姆次存储器访问操作的目标是前缀树中某结点所在的存储器,各目标结点依序构成一条从根结点出发到某叶子结点结束的查找路径。5.根据权利要求2所述多存储器流水路由体系结构,其特征在于,所述调度単元的调度策略为步骤I:每个数据包发送一个访问请求给目标前缀树结点所在的存储器;步骤2:每个存储器从向其发送请求的多个数据包中任意选择ー个授予其访问许可;步骤3:每个被授予访问许可的数据包对各目标存储器执行访问操作。6.根据权利要求5所述多存储器流水路由体系结构,其特征在于,所述步骤2采取先来先服务的调度策略,先到达的数据包具有较高的访问优先级。全文摘要本发明公开了一种多存储器流水路由体系结构,它包含缓存数据包的路由缓冲区,控制数据包和存储器间的读写访问的调度单元,一组存储路由表前缀树结点的存储器,它采用随机存储方式实现路由表前缀树结点到存储器的映射,每个到达的数据包生成一个路由信息查找请求,该请求包含一次或多次存储器访问操作,每次存储器访问操作的目标是前缀树中某结点所在的存储器,各目标结点依序构成一条从根结点出发到某叶子结点结束的查找路径,其调度策略为1、每个数据包发送一个访问请求给目标前缀树结点所在的存储器;2、每个存储器从向其发送请求的多个数据包中任意选择一个授予其访问许可;3、每个被授予访问许可的数据包对各目标存储器执行访问操作。文档编号H04L12/56GK102739551SQ20121024821公开日2012年10月17日申请日期2012年7月17日优先权日2012年7月17日发明者农革,吴裔申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1