一种反压信息的生成方法、系统和装置的制作方法

文档序号:7918772阅读:167来源:国知局

专利名称::一种反压信息的生成方法、系统和装置的制作方法
技术领域
:本发明涉及通信
技术领域
,尤其涉及一种反压信息的生成方法、系统和装置。
背景技术
:在一个交换系统中,如图l所示,TM(TrafficManagement,流量管理器)通常都会连接多个SF(SwitchFabric,交换网)。这样对于上行TM(以下简称TMi)发送的具有不同序列号但目的地址相同的包,就可能通过与不同输出平面连接的交换网到达目的地址,目的地址即下行TM(以下简称TMe)。为叙述方便,以下假设所有TM发送和接收包的优先级和单多播都是相同的;同时TMi在通过某一个输出平面发送包时不支持包交织,就是说某一个输出平面只有发送完当前包之后才能发送下一个包。TMi在发送包时,把要发送的包先切成固定长度的信元,然后再把信元依次发送给交换网,标志包起始的包头信元称为SOP(StartOfPacket,包起始),标志包结束的包尾信元称为EOP(EndOfPacket,包结束),包中间的信元称为MOP(MiddleOfPacket,包中间)。TMe会收到不同TMi发送来的信元,并且这些来自不同TMi的信元由于传输过程中的延时交织在一起。TMe中的RA(Re-Assembly,包重组模块)把收到的信元重组成包,根据收到的信元属于SOP、EOP或MOP,可以判断出一个包的开始和结束,根据收到的信元中携带的SB(SourceBlade,源板号)即上行TMi的编号,可以判断出当前收到的信元属于哪一个包。由于包通过各个交换网的延时不同,并且各个包的包长也存在着一定的差异,而TMe在收到EOP之后才确认收完一个包。因此,就会造成上行按顺序发送的包,到达下行时变为乱序。因此需要对下行收到的乱序包进行重排序(Reorder,简称ROD)。重排序就是把收到的包的描述符按照输入平面置入相应的IQ(I叩utQueue,输入队列),然后从所有IQ的队头中选择一个携带SOP的包出队,这里的输入平面指TMe输入端口连接的交换网号。当TMe中的RA模块收到一个包的SOP时,就用这个包的描述符入队,但此时因为这个包的EOP还没有收到,所以ROD功能把这个入队的包标记为invalid,invalid的包只是先占用队头,但不能出队;而只有在收到这个包的EOP,才能把这个包置为valid,标志收到了一个完整的包。这时如果符合条件,这个包才能出队。每个IQ采用链表来管理,所有IQ的链表共享一片memory緩存,称为IXM(LinkListMemory,链接列表緩存)。为了使排序简化,TMi在把包切成信元并发送时为每个信元打上一个GTS(GlobalTimeStamp,全局时标),这样同一时刻不同TMi发送的信元就都带有相同的全局时标,全局时标是一个循环的计数器,每个发送周期都会加l,而且系统中所有TM和交换网都使用统一的全局时标。这样下行重排序时就不必把收到的包先按发送SB区分开,然后再单独对每一个SB发送的包进行重排序。在信元携带全局时标的系统中,TMe把来自同一输入平面但从不同TMi发送的包都送入相同的IQ,因此TMe中需要维护的IQ数目即为输入平面数。以图2所示的TMe为例,在交换网系统中包括4个输入平面时,每个TMe中维护的IQ数目为4。对重排序ROD功能而言,IQ中的包描迷符参与排序的域只是全局时标,其他的域都是排序完成出队后其他的处理流程要用到的。当某些原因造成出队很慢,而后面的包又不停的入队到各个IQ中时,这样就会造成緩存链表的LLM资源耗尽而不得不丢包。为了避免上述情况的发生,就需要适时的产生反压(backpressure)通知交换网暂停或减緩属于某些IQ或全部IQ的包的发送,必要时也要通知RA模块某些IQ或全部IQ的包不能入队而要直接丟掉。现有技术中提供了一种直接根据IQ队列的长度和LLM的占用情况产生反压的方法。在QM(QueueManagement,队列管理)中维护所有IQ的队列长度,管理和统计LLM的空闲地址。对某一IQ而言,入队时该队列长度加1,出队时该队列长度减1。每个IQ有一个配置队列反压阈值的寄存器称为IQ一BP一Threshold,当这个IQ的队列长度超过这个阈值时,该队列就产生反压称为IQ—BP,这个IQ一BP然后被传到交换网,交换网会响应反压而暂緩这个IQ的信元的发送。同时,LLM也有配置反压阈值的寄存器称为LLM—BPJThreshold,当LLM被占用的地址数超过这个阈值时,LLM就产生反压称为LLM_Xoff,LLM—Xoff然后被映射到所有的IQ上。此时,所有的IQ都产生IQ_BP。LLM还有配置丟弃阈值的寄存器称为LLM—Drop—Threshold,通常为达到最大的利用率,都是当LLM中没有空闲地址时,才产生丟弃反压称为LLM_Stop,LLM_Stop也会4巴所有的IQ_BP置起,同时这个LLM_Stop也会送到RA模块,ROD功能通知RA要把新收到的包丟弃掉而不要再入IQ队列。发明人在实现本发明的过程中,发现现有技术中的实现方式存在以下问题直接根据每个IQ的队列长度产生的反压在一定的程度上可以均衡各个IQ的队列长度,根据LLM占用情况产生的反压可以保证LLM不会被溢出。但是,当某个IQ队头的包携带的全局时标是所有IQ中最小的,但是这个包的EOP由于包过长或通过交换网时的延迟过大而迟迟未到时,这个最小时标的包就被标记为invalid,这就造成所有IQ都不能出队。而后面的包又不停的入队到各个IQ中,这时可能多个IQ都产生了IQ_BP。如果队头包的时标最小的那个IQ也产生了IQ_BP,那么交换网就不会再发送属于那个IQ队列中的信元到TMe。整个排序系统在没有收到当前所有IQ中时标最小的包的EOP时,就不会有一个包被调度出队,如果没有包被调度出队,那么反压就不会撤销,这样就产生了死循环而导致整个系统死锁。
发明内容本发明的实施例提供一种反压信息的生成方法、系统和装置,用于提高多平面交换网系统中输入队列和链接列表緩存的使用效率。为达到上述目的,本发明的实施例提供一种反压信息的生成方法,包括根据输入队列的状态位以及长度,生成反压信息;发送所述反压信息,其中如果特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阈值,则生成关于所述特定输入队列的反压信息;如果链接列表緩存LLM的长度超过预设的反压阈值,则获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息;如果链接列表緩存LLM中的地址已满,则获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息。本发明的实施例还提供一种反压信息的生成装置,包括具体的所述反压信息生成单元,用于在特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阔值时,生成关于所述特定输入队列的反压信息;所述反压信息生成单元,用于链接列表緩存LLM的长度超过预设的反压阈值时,获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息;所述反压信息生成单元,用于链接列表緩存LLM中的地址已满时,获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息。本发明的实施例还提供一种反压信息的生成系统,包括排序功能模块,用于根据输入队列的状态位以及长度,生成反压信息并发送;重组功能模块和交换网,用于接收所述排序功能模块发送的反压信息并响应;具体的如果特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阈值,则所述排序功能模块生成关于所述特定输入队列的反压信息并发送;如果链接列表緩存LLM的长度超过预设的反压阈值,则所述排序功能冲莫块获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息并发送;如果链接列表缓存LLM中的地址已满,则所述排序功能模块获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息并发送。与现有技术相比,本发明的实施例具有以下优点通过根据输入队列中的状态以及长度,判断是否需要发送反压信息,从而避免了多平面交换网系统中包重排序过程中的死锁,提高了设备中链接列表緩存的使用效率。图1是现有技术中多平面交换网系统的示意图;图2是现有技术中多平面交换网系统的TMe的结构示意图;图3是本发明的实施例中反压信息生成方法的流程图;图4是本发明的实施例中反压信息生成系统的结构示意图;图5是本发明的实施例中反压信息生成装置的结构示意图。具体实施例方式本发明的实施例中提供一种反压信息生成方法,应用于多平面交换网系统,该方法如图3所示,包括步骤s301、根据输入队列的状态位以及长度,生成反压信息。具体的,为每一个输入队列设置一个状态位,用于表示每一个输入队列的输入队列头的状态。当输入队列内容为空时,或输入队列头的包为无效包Invalid、且该包为当前所有输入队列中具有最小时标的包时,将该输入队列的状态位置位。当不满足上述将输入队列的状态位置位的条件时,该输入队列的状态位为未置位。具体的反压信息生成方法包括(1)当特定输入队列的状态位为未置位,且所述特定输入队列的长度超过预设的反压阈值时,生成关于所述特定输入队列的反压信息。(2)当链接列表緩存LLM的长度超过预设的反压阈值时,获取状态位为未置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息。(3)当链接列表緩存LLM中的地址已满时,获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息。步骤s302、发送反压信息。另外,上述步骤s302之后还包括交换网和重组功能模块RA对该反压信息进4于响应。在接收到上述方法(1)中生成的反压信息时,重组功能模块RA继续接收所有交换网发送的包,停止向反压信息中涉及的输入队列中置入新的包。在接收到上述方法(2)中生成的反压信息时,重组功能模块RA继续接收所有交换网发送的包,停止向反压信息中涉及的输入队列中置入新的包。在接收到上述方法(3)中生成的反压信息时,重组功能模块RA丢弃所有已接收的包,停止向反压信息中涉及的输入队列中置入新的包,并在接收到具有最小时标的包的包尾信元EOP时,将EOP放置到状态位被置位的输入队列。以下结合一个具体的应用场景,描述本发明实施例的具体实施方式。具体的,排序功能模块ROD产生的反压要先输出给重组功能模块RA,然后RA再把这些反压信息传送给交换网SF,由交换网响应包重排序功能模块ROD产生的反压,同时RA也要响应ROD产生的丟弃指令。以下定义排序功能模块ROD和重组功能模块RA之间反压信号,以TMe有16个输入平面即排序功能模块ROD中维护16个IQ队列为例,则ROD一IQ—XOFF和ROD—IQ一STATE的位宽均为15,每一位对应一个IQ队列。以第n个IQ队列为例,(Kn<15,贝寸ROD一IQ一STATE[n]表示第n个IQ队列的状态位,值为1时表示置位,值为0时表示未置位;ROD—IQ一XOFF[n]表示第n个IQ队列的反压信息,值为1时表示该IQ队列的长度超过预设的反压阈值,值为0时表示未超过预设的反压阈值。当IQ数目变化时,只有RODJ(^XOFF[15:0]和ROD—IQ_STATE[15:0]的位宽需要做相应的改动。另外,ROD_XOFF表示LLM被占用的地址是否超过设置的LLM的反压阈值,超过时则ROD—XOFF的值变为1,并映射到ROD—IQ—XOFF[15:0];否则ROD—XOFF的值为0。ROD—STOP表示LLM被占用的地址是否超过设置的LLM的丢弃阈值,超过时则ROD_STOP的值变为1,并映射到ROD_IQ_XOFF[15:0];否则ROD—STOP的值为0。RODSTOP和ROD—XOFF的位宽可以一直是单bit。<table>tableseeoriginaldocumentpage11</column></row><table>基于上述定义的反压信号,ROD根据输入队列IQ中的内容以及长度,发送反压信息的方法具体包括以下几个方面(1)对于ROD—IQ—XOFF[15:0],为预防性反压,这个反压#1透传到交换网并由交换网响应,使LLM发生反压的机会变小,RA需要接收所有的包。当某一IQ队列为空;或者该IQ队列头的包为invalid,并且该包为当前所有IQ中最小时标的包;那么该IQ队列的ROD_IQ_STATE为1;否则该IQ队列的ROD—IQ—STATE为0。上述invalid的含义为在IQ队中已接收到SOP,但还在等待EOP。(2)对于ROD—XOFF,需要根据ROD_IQ—STATE[15:0]产生ROD—IQ—XOFF[15:0〗,除ROD—IQ—STATE为1的IQ夕卜,其余IQ的ROD_IQ—XOFF置起,因此ROD_IQ—XOFF[n]=ROD—XOFF&(~ROD—IQ一STATE[n]);当ROD—XOFF置起时,RA也要接收所有的包。(3)对于ROD—STOP,表示ROD的LLM已满,此时的ROD—IQ—XOFF[15:0]中除包含最小时标的IQ不进行反压外,其余所有IQ的ROD—IQ—XOFF都置起以对IQ进行反压。此时RA要在重组前丟弃所有新输入的包,这样做的目的就是要等待当前所有IQ中最小时标包的EOP,但此时已经入队的其他包的EOP也是可以接收的。只有等到当前所有IQ中最小时标包的EOP后,整个排序系统才能产生调度出队,并释放LLM,从而将ROD—STOP撤销。通过使用本发明的实施例提供的方法,通过根据输入队列中的内容以及长度,判断是否需要发送反压信息,从而避免了多平面交换网系统中包重排序过程中的死锁,提高了设备中链接列表緩存的使用效率。另外,通过采用逐级产生反压的机制,最大可能的减少了LLM的溢出,既防止了丟包又使LLM达到最大的利用率,同时避免了因不正确的产生反压导致的重排序系统的死锁。本发明的实施例还提供一种反压信息的生成系统,如图4所示,包括排序功能模块10,用于根据输入队列的状态位以及长度,生成反压信息并发送给重组功能^^莫块20和交换网30;具体的如果特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阈值,则所述排序功能模块10生成关于所述特定输入队列的反压信息并发送;如果链接列表緩存LLM的长度超过预设的反压阈值,则所述排序功能模块10获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息并发送;如果链接列表缓存LLM中的地址已满,则所述排序功能模块10获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息并发送。重组功能模块20和交换网30,用于接收所述排序功能模块发送的反压信息并响应。具体的,如图5所示,排序功能模块10包括反压信息生成单元11,用于根据输入队列的状态位以及长度,生成反压信息;反压信息发送单元12,用于发送反压信息生成单元11生成的反压信息。置位单元13,用于当特定输入队列内容为空时,或特定输入队列头的包为无效包Invalid、且所述包为当前所有输入队列中具有最小时标的包时,将输入队列的状态位置位;否则输入队列的状态位未被置位。上述反压信息生成单元11包括第一反压信息生成子单元111,用于当特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阈值时,生成关于所述特定输入队列的反压信息;或第二反压信息生成子单元112,用于当LLM的长度超过预设的反压阈值时,获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息;或第三反压信息生成子单元113,用于当LLM中的地址已满时,获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信台通过使用本发明的实施例提供的系统和装置,根据输入队列的状态以及长度,判断是否需要发送反压信息,从而避免了多平面交换网系统中包重排序过程中的死锁,提高了设备中链接列表緩存的使用效率。另外,通过采用逐级产生反压的机制,最大可能的减少了LLM的溢出,既防止了丢包又使LLM达到最大的利用率,同时避免了因不正确的产生反压导致的重排序系统的死锁。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。权利要求1、一种反压信息的生成方法,其特征在于,包括根据输入队列的状态位以及长度,生成反压信息;发送所述反压信息,其中如果特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阈值,则生成关于所述特定输入队列的反压信息;如果链接列表缓存LLM的长度超过预设的反压阈值,则获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息;如果链接列表缓存LLM中的地址已满,则获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息。2、如权利要求1所述反压信息的生成方法,其特征在于,还包括接收到所述反压信息的重组功能和交换网响应所述反压信息。3、如权利要求2所述的方法,其特征在于,所述重组功能和交换网响应所述反压信息包括所述特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阈值,则生成关于所述特定输入队列的反压信息时,所述重组功能继续接收所有交换网发送的包,停止向所述特定输入队列中置入包。4、如权利要求2所述的方法,其特征在于,所述重组功能和交换网响应所述反压信息包括所述链接列表緩存LLM的长度超过预设的反压阈值,则获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息时,所述重组功能继续接收所有交换网发送的包,停止向所述获取到的所有输入队列中置入包。5、如权利要求2所述的方法,其特征在于,所述重组功能和交换网响应所述反压信息包括所述链接列表缓存LLM中的地址已满,则获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息时,所述重组功能丢弃所有已接收的包,停止向所述获取到的所有输入队列中置入包,并在接收到包尾信元EOP时,将所述EOP放置到相应的输入队列。6、如权利要求l、3、4或5所述的方法,其特征在于,所述输入队列的状态位未被置位具体包括所述输入队列内容为空时,或所述输入队列头的包为无效包Invalid且所述包为当前所有输入队列中具有最小时标的包时,将所述输入队列的状态位置位;否则所述输入队列的状态位未^C置位。7、一种反压信息的生成装置,其特征在于,包括反压信息生成单元,用于根据输入队列的状态位以及长度,生成反压信自反压信息发送单元,用于发送所述反压信息生成单元生成的反压信息;具体的所述反压信息生成单元,用于在特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阈值时,生成关于所述特定输入队列的反压信息;所述反压信息生成单元,用于链接列表緩存LLM的长度超过预设的反压阈值时,获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息;所述反压信息生成单元,用于链接列表緩存LLM中的地址已满时,获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息。8、如权利要求7所述反压信息的生成装置,其特征在于,还包括置位单元,用于当所述特定输入队列内容为空时,或所述特定输入队列头的包为无效包Invalid、且所述包为当前所有输入队列中具有最小时标的包时,将所述特定输入队列的状态位置位;否则所迷特定输入队列的状态位未被置位。9、一种反压信息的生成系统,其特征在于,包括排序功能模块,用于根据输入队列的状态位以及长度,生成反压信息并发送;重组功能模块和交换网,用于接收所述排序功能模块发送的反压信息并响应;具体的如果特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阈值,则所述排序功能模块生成关于所述特定输入队列的反压信息并发送;如果链接列表緩存LLM的长度超过预设的反压阈值,则所述排序功能模块获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息并发送;如果链接列表緩存LLM中的地址已满,则所述排序功能模块获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息并发送。10、如权利要求9所述的生成系统,其特征在于,所述排序功能模块包括反压信息生成单元,用于根据输入队列的状态位以及长度,生成反压信台反压信息发送单元,用于发送所述反压信息生成单元生成的反压信息;具体的所述反压信息生成单元,用于在特定输入队列的状态位未被置位,且所述特定输入队列的长度超过预设的反压阈值时,生成关于所述特定输入队列的反压信息;所述反压信息生成单元,用于链接列表緩存LLM的长度超过预设的反压阈值时,获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息;所述反压信息生成单元,用于链接列表緩存LLM中的地址已满时,获取状态位未被置位的所有输入队列,生成关于所述获取到的所有输入队列的反压信息。全文摘要本发明的实施例公开了一种反压信息的生成方法、系统和装置。该方法包括根据输入队列的状态位以及长度,生成反压信息;发送所述反压信息。本发明的实施例中,通过根据输入队列中的内容以及长度,判断是否需要发送反压信息,从而避免了多平面交换网系统中包重排序过程中的死锁,提高了设备中链接列表缓存的使用效率。文档编号H04L12/56GK101340385SQ200810147239公开日2009年1月7日申请日期2008年8月22日优先权日2008年8月22日发明者丁德宏,卞云峰,晖吕,罗柳柱,勤郑申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1