一种调度纵横式交换矩阵中变长数据包队列的方法

文档序号:7621676阅读:96来源:国知局
专利名称:一种调度纵横式交换矩阵中变长数据包队列的方法
技术领域
本发明涉及数据通信技术领域,特别涉及一种调度纵横式交换矩阵(crossbar)中变长数据包队列的方法。
背景技术
Crossbar是一种交换结构,由连接N个输入端口(Input)和N个输出端口(Output)的2N条总线纵横交叉连接构成,又称为交叉连接矩阵或交换式点阵。
如图1所示,图1为4×4的crossbar内部结构示意图。连接Input1、2、3、4的4条总线与连接Output1、2、3、4的4条总线纵横交叉连接,Input所处水平线与Output所处垂直线的交叉节点(crosspoint)处有一个控制开关,用于控制crosspoint接通Input与Output之间的连接。
Crossbar最初主要应用在异步传输模式(ATM)网络中,采用的是定长交换技术。在定长交换技术中,数据包被切割成统一长度的ATM信元。在利用crossbar传输定长的ATM信元时,由调度器控制crosspoint的通断,保证在一个时隙内从一个输入端口输入的数据包能够通过crosspoint从一个输出端口输出。
随着交换技术的发展,crossbar交换出现了变长交换技术,即长度不同的数据包不经过切割直接通过crossbar进行交换。目前对于变长交换技术的研究主要可以分为两大类交叉节点不带缓存的crossbar(unbuffered crossbar)和交叉节点带缓存的crossbar(buffered crossbar)。
对于unbuffered crossbar,数据包仅能够在输入端口进行排队,而不能够在crosspoint进行排队,当来自多个输入端口的数据包竞争同一个输出端口时,这些数据包在crosspoint经常会出现冲突。对于buffered crossbar,每个crosspoint都有一个缓存(buffer),数据包不仅能够在输入端口进行排队,而且能够在crosspoint进行排队,所以当来自多个输入端口的数据包竞争同一个输出端口时,buffer可以用来存储那些没有竞争到输出端口的数据包,因此bufferedcrossbar也称为CICQ(combined input and crosspoint queue)结构。
如图2所示,图2为CICQ的结构示意图。CICQ结构由输入端调度器IS(input scheduler)、输出端调度器OS(output scheduler)、交叉节点缓存(crosspoint buffer)和流控模块(flow control)四部分构成。
IS用于调度到达输入端口的数据包队列,使数据包队列中的数据包能够及时稳定地通过crosspoint buffer传输出去。OS用于调度缓存在crosspoint buffer中的数据包队列,使缓存在crosspoint buffer中数据包队列中的数据包能够及时稳定地通过输出端口传输出去。crosspoint buffer用于缓存没有竞争到输出端口的数据包,避免数据包在输出端口出现冲突。flow control用于记录每个crosspoint buffer输入数据包和输出数据包的总长度,计算crosspoint buffer的剩余空间,并将计算出的剩余空间信息输出给IS,这样IS就可以根据此信息调度输入端口的变长数据包,不至于数据包由于溢出而被丢弃。
数据包在crossbar的输入端口一般有单播数据包和组播数据包两种类型,单播数据包被存储在虚拟输出队列(VOQ)中,组播数据包则根据其携带的组播输出端口信息被复制到各个VOQ中。数据包在crossbar的crosspoint buffer中一般只有单播数据包一种类型,被存放在虚拟输入队列(VIQ)中。
在某一时刻,若有一单播数据包到达输入端口i(1≤i≤N),此单播数据包的目的端口确定为j(1≤j≤N),则该单播数据包将被放入输入端口i的第j个缓冲队列Q(i,j)中,Q(i,j)被称为VOQ。
位于输入端口i(1≤i≤N)和输出端口j(1≤j≤N)之间的crosspoint buffer队列Q(i,j)被称为VIQ。由于每个输出端口对应有N个crosspoint buffer,所以,可以将每个输出端口看作有N个VIQ,只不过这N个VIQ不是位于输出端口,而是分别位于N个crosspoint buffer中。
现有技术中,IS对输入端单播数据包队列的调度和OS对crosspoint buffer中缓存的单播数据包队列的调度采用的都是基于轮循(RR,Round Robin)的调度算法。该调度算法对单播数据包队列各行的数据包进行无区别的循环调度服务。即当有一个单播数据包队列到达输入端口需要进行调度,或者缓存在crosspoint的单播数据包队列需要进行调度时,IS或OS先将该单播数据包队列第一行中的第一个数据包传输出去,再将第二行中的第一个数据包传输出去,……,直至将最后一行中的第一个数据包传输出去,再轮循返回第一行传输第二个数据包,如此反复,直至将该单播数据包队列中所有的数据包全部传输出去。
在IS和OS采用基于RR的调度算法对单播数据包队列进行调度时,如果单播数据包队列各行之间数据包的长度不同,IS和OS每次调度的数据包都是变长的,则长度大的数据包将比长度小的数据包接受更多的服务,也将占用更多的时间,这样将使各行之间产生调度不公平的现象。同时这种调度算法不能提供时延保证,增大了整个系统进行数据传输的平均时延,并且由此也导致了各个端口的负载极为不均衡。

发明内容
有鉴于此,本发明的主要目的在于提供一种调度crossbar中变长数据包队列的方法,以提高调度的公平性,减小整个系统进行数据传输的平均时延,均衡各个端口的负载。
为达到上述目的,本发明提供了一种调度crossbar中变长数据包队列的方法,包括以下步骤A、判断调度发生的位置,如果调度发生在纵横式交换矩阵crossbar的输入端口,则执行步骤B;如果调度发生在crossbar的交叉节点缓存,则执行步骤C;B、输入端调度器IS判断到达crossbar输入端口数据包队列的类型,如果数据包队列为单播数据包队列,则采用基于差额轮循的调度算法对到达crossbar输入端口的单播数据包队列进行调度;如果数据包队列为组播数据包队列,则采用扇出分割的交换方式对到达crossbar输入端口的组播数据包队列进行调度;C、输出端调度器OS采用基于差额轮循的调度算法对crossbar交叉节点缓存的单播数据包队列进行调度。
上述方案中,步骤B中所述的IS判断到达crossbar输入端口数据包队列的类型之后进一步包括IS判断单播数据包队列和组播数据包队列的优先级别,按照优先级别由高到低的顺序依次调度单播数据包队列和组播数据包队列。
上述方案中,步骤B中所述的IS判断到达crossbar输入端口数据包队列的类型之后进一步包括IS采用轮循的方式调度数据包队列,判断上一次调度数据包队列的类型,如果上一次调度的数据包队列为单播数据包队列,则本次调度组播数据包队列;如果上一次调度的数据包队列为组播数据包队列,则本次调度单播数据包队列。
上述方案中,步骤B中所述的采用基于差额轮循的调度算法对到达crossbar输入端口的单播数据包队列进行调度包括B1、在IS上配置量子值,在IS上为单播数据包队列的每行数据包配置差额计数器,并将差额计数器初值配置为所述量子值;B2、IS依次选择单播数据包队列每行数据包中总长度值小于或等于差额计数器值且包含有最多个无间隔的数据包的数据包组合,发送选择的数据包组合给单播数据包接收端口;B3、IS将单播数据包队列每行数据包的差额计数器值更新为差额计数器余额值与所述量子值的和,重复执行步骤B2,直至将所有的单播数据包都发送给单播数据包接收端口为止。
上述方案中,所述步骤B2中的一轮调度未对单播数据包队列任意一行中的单播数据包进行选择和发送,所述步骤B3中的IS保持该行差额计数器值为上一轮调度该行单播数据包后的差额计数器余额值,对差额计数器值不进行更新。
上述方案中,步骤B中所述的采用扇出分割的交换方式对到达crossbar输入端口的组播数据包队列进行调度包括B1′、IS将组播数据包队列中的第一个组播数据包发送给所有的组播数据包接收端口,如果有组播数据包接收端口未接收到该组播数据包,则将该组播数据包存放在组播数据包队列的头部,在下一次发送时发送该组播数据包;B2′、在所有的组播数据包接收端口都接收到该组播数据包后,IS将该组播数据包从组播数据包队列头部移出;B3′、IS继续将组播数据包队列中的下一个组播数据包发送给所有的组播数据包接收端口,直至组播数据包接收端口接收到所有的组播数据包为止。
上述方案中,所述的步骤C包括C1、在OS上配置量子值,在OS上为单播数据包队列的每行数据包配置差额计数器,并将差额计数器初值配置为所述量子值;C2、OS依次选择单播数据包队列每行数据包中总长度值小于或等于差额计数器值且包含有最多个无间隔的数据包的数据包组合,发送选择的数据包组合给单播数据包接收端口;C3、OS将单播数据包队列每行数据包的差额计数器值更新为差额计数器余额值与所述量子值的和,重复执行步骤C2,直至将所有的单播数据包都发送给单播数据包接收端口为止。
上述方案中,所述步骤C2中的一轮调度未对单播数据包队列任意一行中的单播数据包进行选择和发送,所述步骤C3中的OS保持该行差额计数器值为上一轮调度该行单播数据包后的差额计数器余额值,对差额计数器值不进行更新。
上述方案中,所述的差额计数器余额值为差额计数器值与发送的数据包组合总长度的差值。
上述方案中,所述的量子值为每一轮调度获得服务的平均字节数,数据传输平均时延大的量子值高于数据传输平均时延小的量子值。
因此,本发明提供的这种调度crossbar中变长数据包队列的方法,通过在IS和OS上为每个单播数据包队列配置量子值和为单播数据包队列每行数据包配置差额计数器,使IS或OS可以对单播数据包队列采用基于差额轮循(DRR)的调度算法进行调度;同时在本发明中IS对组播数据包队列采用扇出分割交换方式进行调度。
利用本发明,由于对单播数据包队列采用了基于DRR的调度算法进行调度,轮循发送单播数据包队列每行数据包中总长度值小于或等于差额计数器值且包含有最多个无间隔的数据包的数据包组合,使单播数据包队列各行都可以获得平等的调度机会,所以大大提高了调度的公平性,进而也减小了整个系统进行数据传输的平均时延,均衡了各个端口的负载。
另外,由于本发明采用了扇出分割交换方式对组播数据包队列进行调度,同时发送组播数据包队列中的第一个组播数据包给所有的组播数据包接收端口。当有组播数据包接收端口未接收到该组播数据包时,将该组播数据包存放在组播数据包队列的头部,在下一次发送时发送该组播数据包;在所有的组播数据包接收端口都接收到该组播数据包后,从组播数据包队列头部移出该组播数据包,从而保证了所有的组播数据包接收端口都能够接收到该组播数据包。


图1为4×4的crossbar内部结构示意图;图2为CICQ的结构示意图;图3为本发明调度crossbar中变长数据包队列总体技术方案的方法流程图;图4为依照本发明一个实施例调度crossbar中变长数据包队列的方法流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例,并参照附图,对本发明进一步详细说明。
本发明的核心内容是通过在IS和OS上为每个单播数据包队列配置量子值和为单播数据包队列每行数据包配置差额计数器,使IS或OS可以对单播数据包队列采用基于DRR的调度算法进行调度;同时在本发明中IS对组播数据包队列采用扇出分割交换方式进行调度。
如图3所示,图3为本发明调度crossbar中变长数据包队列总体技术方案的方法流程图,该方法包括以下步骤步骤301判断调度发生的位置,如果调度发生在crossbar的输入端口,则执行步骤302;否则,如果调度发生在crossbar的crosspoint buffer,则执行步骤303;
步骤302IS判断到达crossbar输入端口数据包队列的类型,如果数据包队列为单播数据包队列,则采用基于DRR的调度算法对到达crossbar输入端口的单播数据包队列进行调度;如果数据包队列为组播数据包队列,则采用扇出分割的交换方式对到达crossbar输入端口的组播数据包队列进行调度;步骤303OS采用基于DRR的调度算法对crossbar交叉节点缓存的单播数据包队列进行调度。
上述步骤302和步骤303中所述的对单播数据包队列采用基于DRR的调度算法,其实现原理如下在调度器上配置量子值,在调度器上为单播数据包队列的每行数据包配置差额计数器,并将差额计数器初值配置为所述量子值;调度器依次选择单播数据包队列每行数据包中总长度值小于或等于差额计数器值且包含有最多个无间隔的数据包的数据包组合,发送选择的数据包组合给单播数据包接收端口;调度器将单播数据包队列每行数据包的差额计数器值更新为差额计数器余额值与所述量子值的和,重复执行选择和发送数据包组合给单播数据包接收端口,直至将所有的单播数据包都发送给单播数据包接收端口为止。
上述量子值为每一轮调度获得服务的平均字节数,量子值设置的越大,每一轮获得服务的平均字节数就越多,每一轮调度所经历的时间就越长,整个系统进行数据传输的平均时延也就越大。所以,为减小整个系统进行数据传输的平均时延,可以适当降低量子值的配置值。
上述差额计数器用于控制每一轮调度获得服务的实际字节数,差额计数器的初值为所述量子值。
上述调度器将单播数据包队列每行数据包的差额计数器值更新为差额计数器余额值与所述量子值的和,是调度器在每次发送一个数据包组合以后,将差额计数器值减去发送数据包组合的总长度值得到差额计数器余额值,并将得到的差额计数器余额值加上配置的量子值得到差额计数器的更新值。
假设差额计数器的初值为C0,第n次轮循调度后差额计数器的更新值为Cn,第n-1次轮循调度后差额计数器的值为Cn-1,第n次轮循调度的数据包组合的总长度值为Ln,量子值为Q,则Cn=(Cn-1-Ln)+Q。
上述步骤302中所述的对组播数据包队列采用扇出分割的交换方式,其实现原理如下调度器将组播数据包队列中的第一个组播数据包发送给所有的组播数据包接收端口,如果有组播数据包接收端口未接收到该组播数据包,则将该组播数据包存放在组播数据包队列的头部,在下一次发送时发送该组播数据包;在所有的组播数据包接收端口都接收到该组播数据包后,调度器将该组播数据包从组播数据包队列头部移出;调度器继续将组播数据包队列中的下一个组播数据包发送给所有的组播数据包接收端口,直至组播数据包接收端口接收到所有的组播数据包为止。
为了能够更加清楚地说明本发明提供的这种调度crossbar中数据包队列的方法,以下结合具体的实施例,并参照附图对此进行详细说明。
如图4所示,图4为依照本发明一个实施例调度crossbar中变长数据包队列的方法流程图。在本实施例中,调度在crossbar的输入端口进行,预先在IS上配置量子值,在IS上为单播数据包队列的每行数据包配置差额计数器,并将差额计数器初值配置为所述量子值。该方法包括以下步骤步骤401当数据包队列到达crossbar的输入端口时,IS判断到达数据包队列的类型,如果到达数据包队列为VOQ,则执行步骤402;如果到达数据包队列为组播数据包队列,则执行步骤403。
步骤402IS采用基于DRR的调度算法对VOQ进行调度。
假设预先在IS为VOQ配置的量子值为2000Byte,差额计数器的初始值将被配置为2000Byte;假设该VOQ第一行中的数据包长度依次为L11=200Byte,L12=800Byte,L13=400Byte,L14=500Byte,L15=300Byte,……;第二行中的数据包长度依次为L21=300Byte,L22=1800Byte,L23=100Byte,L24=700Byte,L25=900Byte,……;第n行中的数据包长度依次为Ln1=2300Byte,Ln2=500Byte,Ln3=100Byte,Ln4=600Byte,……。
由于差额计数器的初始值为2000Byte,即第一轮调度时每次调度数据包组合的总长度最多为2000Byte。所以,对于该VOQ第一行中的数据包,第一轮调度时只能调度前4个数据包,即L11=200Byte,L12=800Byte,L13=400Byte,L14=500Byte,总长度为1900Byte,差额计数器的余额为2000-1900=100Byte。
对于该VOQ第二行中的数据包,第一轮调度时只能调度一个数据包,即L21=300Byte,总长度为300Byte,差额计数器的余额为2000-300=1700Byte。
对于该VOQ第n行中的数据包,第一轮调度时由于Ln1=2300>2000Byte,所以一个数据包都不能调度,差额计数器的余额为2000-0=2000Byte。
在第二轮调度时,对于该VOQ第一行中的数据包,差额计数器的值更新为2000+100=2100Byte,此时调度该行数据包组合的总长度最多为2100Byte;对于该VOQ第二行中的数据包,差额计数器的值更新为2000+1700=3700Byte,此时调度该行数据包组合的总长度最多为3700Byte;对于该VOQ第n行中的数据包,差额计数器的值更新为2000+2000=4000Byte,此时调度该行数据包组合的总长度最多为4000Byte。按照上述方式依次更新VOQ中每行数据包的差额计数器值,并根据更新后的差额计数器值进行第二轮调度。
第二轮调度结束以后,继续按照上述方式更新每行数据包的差额计数器值,并根据更新后的差额计数器值进行第三轮调度、……、第X轮调度,直至将VOQ中所有的数据包全部发送给单播数据包接收端口为止。
在调度的过程中,如果单播数据包队列某一行中的单播数据包全部被调出,该行中已没有单播数据包,调度器未对该行中的单播数据包进行选择和发送,则保持该行差额计数器值为上一轮调度该行单播数据包后的差额计数器余额值,对差额计数器值不进行更新。差额计数器的余额值为差额计数器值与发送的数据包组合总长度的差值。
步骤403IS采用扇出分割方式对组播数据包队列进行调度。
假设组播数据包队列中的组播数据包为L1=800Byte,L2=2000Byte,L3=900Byte,L4=700Byte,……,组播数据包L1位于组播数据包队列的头部。
在IS采用扇出分割方式对组播数据包队列进行调度时,IS将组播数据包L1发送给所有的组播数据包接收端口,如果与某一个组播数据包接收端口相对应的crosspoint buffer已满,无法接纳组播数据包L1,则IS将组播数据包L1存放在组播数据包队列的头部,在下一次发送时继续发送组播数据包L1,直至所有的组播数据包接收端口都接收到组播数据包L1后,从组播数据包队列的头部移出组播数据包L1。然后IS按照上述方式依次将组播数据包L2、L3、L4、……发送给所有的组播数据包接收端口。
在本发明所举的这个实施例中,调度是在crossbar输入端口进行的。由于在crossbar的输入端口可能存在单播数据包队列和组播数据包队列两种类型的数据包队列,如果两种类型的数据包队列同时到达crossbar的输入端口,输入端口的IS可以按照一定的顺序对数据包队列先后进行调度。
一般情况下,IS可以根据单播数据包队列和组播数据包队列的优先级别,按照优先级别由高到低的顺序依次调度数据包队列。另外,输入端口的IS可以采用轮循的方式,先判断上一次发送数据包队列的类型,如果上一次发送数据包队列为单播数据包队列,则本次发送组播数据包队列;如果上一次发送数据包队列为组播数据包队列,则本次发送单播数据包队列。
另外,当IS根据单播数据包队列和组播数据包队列的优先级别进行调度时,如果组播数据包队列的优先级别高于单播数据包队列,可以适当降低DRR调度的量子值,减小整个系统进行数据传输的平均时延。
在本发明所举的这个实施例中,调度是在crossbar的输入端口由IS进行的。在实际应用中,调度也在crossbar的crosspoint buffer由OS进行。此时需要预先在OS上配置量子值,在OS上为单播数据包队列的每行数据包配置差额计数器,并将差额计数器初值配置为所述量子值。由于在crossbar的crosspoint buffer只存储有单播数据包队列,所以OS不必判断数据包队列的类型,直接对单播数据包队列采用基于DRR的调度算法进行调度即可。OS对crosspoint buffer中缓存的单播数据包队列进行调度与IS对VOQ进行调度所采用的技术方案是一致的,具体的调度过程这里就不再赘述。
从上面的实施例可以看出,本发明提供的这种调度crossbar中变长数据包队列的方法,通过在IS和OS上为每个单播数据包队列配置量子值和为单播数据包队列每行数据包配置差额计数器,使IS或OS可以对单播数据包队列采用基于DRR的调度算法进行调度;同时在本发明中IS对组播数据包队列采用扇出分割交换方式进行调度。
利用本发明,由于对单播数据包队列采用了基于DRR的调度算法进行调度,轮循发送单播数据包队列每行数据包中总长度值小于或等于差额计数器值且包含有最多个无间隔的数据包的数据包组合,使单播数据包队列各行都可以获得平等的调度机会,所以大大提高了调度的公平性,进而也减小了整个系统进行数据传输的平均时延,均衡了各个端口的负载。
另外,由于本发明采用了扇出分割交换方式对组播数据包队列进行调度,同时发送组播数据包队列中的第一个组播数据包给所有的组播数据包接收端口。当有组播数据包接收端口未接收到该组播数据包时,将该组播数据包存放在组播数据包队列的头部,在下一次发送时发送该组播数据包;在所有的组播数据包接收端口都接收到该组播数据包后,从组播数据包队列头部移出该组播数据包,从而保证了所有的组播数据包接收端口都能够接收到该组播数据包。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种调度纵横式交换矩阵中变长数据包队列的方法,其特征在于,包括以下步骤A、判断调度发生的位置,如果调度发生在纵横式交换矩阵crossbar的输入端口,则执行步骤B;如果调度发生在crossbar的交叉节点缓存,则执行步骤C;B、输入端调度器IS判断到达crossbar输入端口数据包队列的类型,如果数据包队列为单播数据包队列,则采用基于差额轮循的调度算法对到达crossbar输入端口的单播数据包队列进行调度;如果数据包队列为组播数据包队列,则采用扇出分割的交换方式对到达crossbar输入端口的组播数据包队列进行调度;C、输出端调度器OS采用基于差额轮循的调度算法对crossbar交叉节点缓存的单播数据包队列进行调度。
2.根据权利要求1所述的方法,其特征在于,步骤B中所述的IS判断到达crossbar输入端口数据包队列的类型之后进一步包括IS判断单播数据包队列和组播数据包队列的优先级别,按照优先级别由高到低的顺序依次调度单播数据包队列和组播数据包队列。
3.根据权利要求1所述的方法,其特征在于,步骤B中所述的IS判断到达crossbar输入端口数据包队列的类型之后进一步包括IS采用轮循的方式调度数据包队列,判断上一次调度数据包队列的类型,如果上一次调度的数据包队列为单播数据包队列,则本次调度组播数据包队列;如果上一次调度的数据包队列为组播数据包队列,则本次调度单播数据包队列。
4.根据权利要求1所述的方法,其特征在于,步骤B中所述的采用基于差额轮循的调度算法对到达crossbar输入端口的单播数据包队列进行调度包括B1、在IS上配置量子值,在IS上为单播数据包队列的每行数据包配置差额计数器,并将差额计数器初值配置为所述量子值;B2、IS依次选择单播数据包队列每行数据包中总长度值小于或等于差额计数器值且包含有最多个无间隔的数据包的数据包组合,发送选择的数据包组合给单播数据包接收端口;B3、IS将单播数据包队列每行数据包的差额计数器值更新为差额计数器余额值与所述量子值的和,重复执行步骤B2,直至将所有的单播数据包都发送给单播数据包接收端口为止。
5.根据权利要求4所述的方法,其特征在于,所述步骤B2中的一轮调度未对单播数据包队列任意一行中的单播数据包进行选择和发送,所述步骤B3中的IS保持该行差额计数器值为上一轮调度该行单播数据包后的差额计数器余额值,对差额计数器值不进行更新。
6.根据权利要求1所述的方法,其特征在于,步骤B中所述的采用扇出分割的交换方式对到达crossbar输入端口的组播数据包队列进行调度包括B1′、IS将组播数据包队列中的第一个组播数据包发送给所有的组播数据包接收端口,如果有组播数据包接收端口未接收到该组播数据包,则将该组播数据包存放在组播数据包队列的头部,在下一次发送时发送该组播数据包;B2′、在所有的组播数据包接收端口都接收到该组播数据包后,IS将该组播数据包从组播数据包队列头部移出;B3′、IS继续将组播数据包队列中的下一个组播数据包发送给所有的组播数据包接收端口,直至组播数据包接收端口接收到所有的组播数据包为止。
7.根据权利要求1所述的方法,其特征在于,所述的步骤C包括C1、在OS上配置量子值,在OS上为单播数据包队列的每行数据包配置差额计数器,并将差额计数器初值配置为所述量子值;C2、OS依次选择单播数据包队列每行数据包中总长度值小于或等于差额计数器值且包含有最多个无间隔的数据包的数据包组合,发送选择的数据包组合给单播数据包接收端口;C3、OS将单播数据包队列每行数据包的差额计数器值更新为差额计数器余额值与所述量子值的和,重复执行步骤C2,直至将所有的单播数据包都发送给单播数据包接收端口为止。
8.根据权利要求7所述的方法,其特征在于,所述步骤C2中的一轮调度未对单播数据包队列任意一行中的单播数据包进行选择和发送,所述步骤C3中的OS保持该行差额计数器值为上一轮调度该行单播数据包后的差额计数器余额值,对差额计数器值不进行更新。
9.根据权利要求4、5、7或8所述的方法,其特征在于,所述的差额计数器余额值为差额计数器值与发送的数据包组合总长度的差值。
10.根据权利要求4或7所述的方法,其特征在于,所述的量子值为每一轮调度获得服务的平均字节数,数据传输平均时延大的量子值高于数据传输平均时延小的量子值。
全文摘要
本发明公开了一种调度纵横式交换矩阵中变长数据包队列的方法,包括以下步骤A.判断调度发生的位置,如果调度发生在crossbar的输入端口,则执行步骤B;如果调度发生在crossbar的交叉节点缓存,则执行步骤C;B.IS判断到达crossbar输入端口数据包队列的类型,如果数据包队列为单播数据包队列,则采用基于差额轮循的调度算法进行调度;如果数据包队列为组播数据包队列,则采用扇出分割的交换方式进行调度;C.OS采用基于差额轮循的调度算法对crossbar交叉节点缓存的单播数据包队列进行调度。利用本发明,大大提高了调度的公平性,减小了整个系统进行数据传输的平均时延,均衡了各个端口的负载。
文档编号H04L12/56GK1859279SQ20051008913
公开日2006年11月8日 申请日期2005年8月2日 优先权日2005年8月2日
发明者涂晓东, 兰立志, 田永刚, 王凯 申请人:华为技术有限公司, 电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1