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

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

Info

Publication number
CN1859279A
CN1859279A CNA2005100891327A CN200510089132A CN1859279A CN 1859279 A CN1859279 A CN 1859279A CN A2005100891327 A CNA2005100891327 A CN A2005100891327A CN 200510089132 A CN200510089132 A CN 200510089132A CN 1859279 A CN1859279 A CN 1859279A
Authority
CN
China
Prior art keywords
packet
formation
unicast
scheduling
crossbar
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.)
Granted
Application number
CNA2005100891327A
Other languages
English (en)
Other versions
CN100421420C (zh
Inventor
涂晓东
兰立志
田永刚
王凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
University of Electronic Science and Technology of China
Original Assignee
Huawei Technologies Co Ltd
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, University of Electronic Science and Technology of China filed Critical Huawei Technologies Co Ltd
Priority to CNB2005100891327A priority Critical patent/CN100421420C/zh
Publication of CN1859279A publication Critical patent/CN1859279A/zh
Application granted granted Critical
Publication of CN100421420C publication Critical patent/CN100421420C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种调度纵横式交换矩阵中变长数据包队列的方法,包括以下步骤:A.判断调度发生的位置,如果调度发生在crossbar的输入端口,则执行步骤B;如果调度发生在crossbar的交叉节点缓存,则执行步骤C;B.IS判断到达crossbar输入端口数据包队列的类型,如果数据包队列为单播数据包队列,则采用基于差额轮循的调度算法进行调度;如果数据包队列为组播数据包队列,则采用扇出分割的交换方式进行调度;C.OS采用基于差额轮循的调度算法对crossbar交叉节点缓存的单播数据包队列进行调度。利用本发明,大大提高了调度的公平性,减小了整个系统进行数据传输的平均时延,均衡了各个端口的负载。

Description

一种调度纵横式交换矩阵中变长数据包队列的方法
技术领域
本发明涉及数据通信技术领域,特别涉及一种调度纵横式交换矩阵(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;
步骤302:IS判断到达crossbar输入端口数据包队列的类型,如果数据包队列为单播数据包队列,则采用基于DRR的调度算法对到达crossbar输入端口的单播数据包队列进行调度;如果数据包队列为组播数据包队列,则采用扇出分割的交换方式对到达crossbar输入端口的组播数据包队列进行调度;
步骤303:OS采用基于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。
步骤402:IS采用基于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中所有的数据包全部发送给单播数据包接收端口为止。
在调度的过程中,如果单播数据包队列某一行中的单播数据包全部被调出,该行中已没有单播数据包,调度器未对该行中的单播数据包进行选择和发送,则保持该行差额计数器值为上一轮调度该行单播数据包后的差额计数器余额值,对差额计数器值不进行更新。差额计数器的余额值为差额计数器值与发送的数据包组合总长度的差值。
步骤403:IS采用扇出分割方式对组播数据包队列进行调度。
假设组播数据包队列中的组播数据包为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的调度算法进行调度,轮循发送单播数据包队列每行数据包中总长度值小于或等于差额计数器值且包含有最多个无间隔的数据包的数据包组合,使单播数据包队列各行都可以获得平等的调度机会,所以大大提高了调度的公平性,进而也减小了整个系统进行数据传输的平均时延,均衡了各个端口的负载。
另外,由于本发明采用了扇出分割交换方式对组播数据包队列进行调度,同时发送组播数据包队列中的第一个组播数据包给所有的组播数据包接收端口。当有组播数据包接收端口未接收到该组播数据包时,将该组播数据包存放在组播数据包队列的头部,在下一次发送时发送该组播数据包;在所有的组播数据包接收端口都接收到该组播数据包后,从组播数据包队列头部移出该组播数据包,从而保证了所有的组播数据包接收端口都能够接收到该组播数据包。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

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所述的方法,其特征在于,所述的量子值为每一轮调度获得服务的平均字节数,数据传输平均时延大的量子值高于数据传输平均时延小的量子值。
CNB2005100891327A 2005-08-02 2005-08-02 一种调度纵横式交换矩阵中变长数据包队列的方法 Expired - Fee Related CN100421420C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100891327A CN100421420C (zh) 2005-08-02 2005-08-02 一种调度纵横式交换矩阵中变长数据包队列的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100891327A CN100421420C (zh) 2005-08-02 2005-08-02 一种调度纵横式交换矩阵中变长数据包队列的方法

Publications (2)

Publication Number Publication Date
CN1859279A true CN1859279A (zh) 2006-11-08
CN100421420C CN100421420C (zh) 2008-09-24

Family

ID=37298143

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100891327A Expired - Fee Related CN100421420C (zh) 2005-08-02 2005-08-02 一种调度纵横式交换矩阵中变长数据包队列的方法

Country Status (1)

Country Link
CN (1) CN100421420C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010115360A1 (zh) * 2009-04-07 2010-10-14 华为技术有限公司 一种数据交换方法和设备
CN101478483B (zh) * 2009-01-08 2011-09-07 中国人民解放军信息工程大学 交换设备内实现分组调度的方法及交换设备
CN101902390B (zh) * 2009-05-27 2013-04-17 华为技术有限公司 一种单播和多播集成调度装置、交换系统及方法
CN103384225A (zh) * 2013-03-15 2013-11-06 北京安拓思科技有限责任公司 基于输入交叉点缓存快速分组交换网络的流量控制方法
CN103581054A (zh) * 2013-10-30 2014-02-12 清华大学 用于变长包交换的交换系统
CN103873383A (zh) * 2012-12-12 2014-06-18 中国移动通信集团上海有限公司 一种队列调度方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158402B (zh) 2011-03-16 2013-10-02 华为技术有限公司 一种纵横式交换矩阵缓存信元的方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477169B1 (en) * 1999-05-14 2002-11-05 Nortel Networks Limited Multicast and unicast scheduling for a network device
US20020131412A1 (en) * 2001-01-12 2002-09-19 Dipak Shah Switch fabric with efficient spatial multicast
CN1146192C (zh) * 2002-04-17 2004-04-14 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置
CN100490383C (zh) * 2003-09-29 2009-05-20 中国人民解放军理工大学通信工程学院 一种支持多优先级的高速Crossbar调度方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478483B (zh) * 2009-01-08 2011-09-07 中国人民解放军信息工程大学 交换设备内实现分组调度的方法及交换设备
WO2010115360A1 (zh) * 2009-04-07 2010-10-14 华为技术有限公司 一种数据交换方法和设备
CN101527686B (zh) * 2009-04-07 2011-08-24 华为技术有限公司 一种数据交换方法和设备
US8761172B2 (en) 2009-04-07 2014-06-24 Huawei Technologies Co., Ltd. Data switching method and device
CN101902390B (zh) * 2009-05-27 2013-04-17 华为技术有限公司 一种单播和多播集成调度装置、交换系统及方法
CN103873383A (zh) * 2012-12-12 2014-06-18 中国移动通信集团上海有限公司 一种队列调度方法和装置
CN103384225A (zh) * 2013-03-15 2013-11-06 北京安拓思科技有限责任公司 基于输入交叉点缓存快速分组交换网络的流量控制方法
CN103384225B (zh) * 2013-03-15 2016-04-27 北京安拓思科技有限责任公司 基于输入交叉点缓存快速分组交换网络的流量控制方法
CN103581054A (zh) * 2013-10-30 2014-02-12 清华大学 用于变长包交换的交换系统

Also Published As

Publication number Publication date
CN100421420C (zh) 2008-09-24

Similar Documents

Publication Publication Date Title
CN1201532C (zh) 具有中心调度程序的atm交换机及其调度方法
US7680126B2 (en) Two-dimensional pipelined scheduling technique
CN1859279A (zh) 一种调度纵横式交换矩阵中变长数据包队列的方法
CN1819523A (zh) 并行交换开关设计方法
CN1859263A (zh) 信元重排序方法、使用该方法的信元处理方法及装置
CN101478483A (zh) 交换设备内实现分组调度的方法及交换设备
CN1056968A (zh) 数据单元交换机
CN1866927A (zh) 实现信息交换的系统及方法和调度算法
CN101695051A (zh) 一种用于缓冲Crossbar的队列长度均衡调度方法
CN1359241A (zh) 用于分组交换机和无源光网络的分布式调度器
CN109639596A (zh) 一种用于车载can-canfd混合网络的网关调度方法
CN1848803A (zh) 一种基于三级交换网的下行队列快速反压传送装置及方法
CN1332554A (zh) 异步传输模式交换机中的信元处理方法和设备
CN1968186A (zh) 一种调度报文发送的装置及方法
CN1604537A (zh) 一种支持多优先级的高速Crossbar调度策略
CN1645839A (zh) 基于并行缓存结构的通信网络交换系统及其控制方法
CN104333516A (zh) 用于组合输入交叉点缓存交换结构的旋转轮训调度方法
CN1694435A (zh) 帧到信元的通信量调度
CN1112001C (zh) 对异步传输模式的atm信元进行多路复用的装置及方法
CN1933441A (zh) 一种支持均匀交换的路由器交换结构及服务质量保证方法
CN106453134B (zh) 一种基于虚拟队列长度协调单组播竞争的cicq结构交换机分组调度方法
CN103685078A (zh) 基于光纤延时线的全光共享缓存路由器及其工作方法
CN1728682A (zh) 基于变长包的交换系统及交换方法
CN1221109C (zh) 具有多级缓冲器的负载平衡式交换装置及方法
CN110430146A (zh) 基于CrossBar交换的信元重组方法及交换结构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080924

Termination date: 20150802

EXPY Termination of patent right or utility model