一种交换网中的数据调度方法、设备和系统转让专利

申请号 : CN200910223975.X

文献号 : CN101707556B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙团会李德丰苏皓曹爱娟宋健

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种交换网中的数据调度方法、设备和系统,涉及高速数据网络中的数据调度技术,提供了一种进行单播信元和多播信元的混合调度的解决方案,显著降低了调度算法的复杂度,具有较大的可行性和较高的应用价值。本发明实施例提供的交换网中的数据调度方法包括:根据调度策略计算输入端口中每个信元队列队首信元的权重,所述信元包括单播信元和多播信元;根据所述权重,获取调度所述队首信元时输入端口和输出端口之间的端口匹配;利用所述端口匹配将所述队首信元从输入端口传送至输出端口。本发明适用于对均匀流量数据和非均匀流量数据的调度。

权利要求 :

1.一种交换网中的数据调度方法,其特征在于,所述方法包括:

根据调度策略计算输入端口中每个信元队列队首信元的权重,所述信元包括单播信元和多播信元;

根据所述权重,获取调度所述队首信元时输入端口和输出端口之间的端口匹配;

利用所述端口匹配将所述队首信元从输入端口传送至输出端口;

其中,所述根据所述权重,获取调度所述队首信元时输入端口和输出端口之间的端口匹配结果包括:对未建立端口匹配的输入端口中的每个队首信元,向该队首信元对应的输出端口发送请求消息,该请求消息中携带所述队首信元的权重;

对向未建立端口匹配的输出端口发送请求消息的队首信元,根据该输出端口接收到的所述请求消息选取权重最大的队首信元所对应的输入端口发送授权消息;

对输入端口中接收到所述授权消息的队首信元,选取权重最大的队首信元所对应的所述输出端口发送接受消息,建立端口匹配;

或者,

对未建立端口匹配的输入端口中权重最大的队首信元,向该队首信元对应的输出端口发送请求消息,所述请求消息中携带该队首信元的权重;

对向未建立端口匹配的输出端口发送请求消息的队首信元,根据该输出端口接收到的所述请求消息选取权重最大的队首信元所对应的输入端口发送授权消息,建立端口匹配。

2.根据权利要求1所述的交换网中的数据调度方法,其特征在于,所述调度策略包括:当第一队首信元的等待时间大于第二队首信元的等待时间时,为第一队首信元分配的权重大于为第二队首信元分配的权重;和/或,当第一信元队列的长度大于第二信元队列的长度时,为第一信元队列中的队首信元分配的权重大于为第二信元队列中的队首信元分配的权重;和/或,当第一队首信元对应的扇出数值大于第二队首信元对应的扇出数值时,为第一队首信元分配的权重小于为第二队首信元分配的权重。

3.根据权利要求2所述的交换网中的数据调度方法,其特征在于,所述队首信元的等待时间从该信元进入所属信元队列起计算,或者,所述队首信元的等待时间从该信元作为所属信元队列的队首信元起计算。

4.根据权利要求1所述的交换网中的数据调度方法,其特征在于,所述方法还包括:当存在至少两个权重相同的队首信元且该权重相同的队首信元的权重大于剩余待选队首信元的权重时,至少通过下述的一种方式选取权重最大的队首信元:在所述权重相同的队首信元中,随机确定一个信元作为所选取的权重最大的队首信元;或者,设置轮询指针,所述轮询指针指示轮询端口号;在所述权重相同的队首信元中,当所述队首信元所对应的端口号与轮询端口号的差值最小时,将该队首信元作为所选取的权重最大的队首信元;或者,在所述权重相同的队首信元中,将具有最小端口号或者具有最大端口号的队首信元作为所选取的权重最大的队首信元。

5.一种数据调度设备,其特征在于,所述设备包括:

权重计算单元,用于根据调度策略计算输入端口中每个信元队列队首信元的权重,所述信元包括单播信元和多播信元;

端口匹配单元,用于根据所述权重计算单元计算得到的权重,获取调度所述队首信元时输入端口和输出端口之间的端口匹配;

传送单元,用于利用所述端口匹配单元获取到的端口匹配,将所述队首信元从输入端口传送至输出端口;

其中,所述端口匹配单元包括第一匹配模块或者第二匹配模块,

所述第一匹配模块,用于对未建立端口匹配的输入端口中的每个队首信元,向该队首信元对应的输出端口发送请求消息,该请求消息中携带所述队首信元的权重;对向未建立端口匹配的输出端口发送请求消息的队首信元,根据该输出端口接收到的所述请求消息选取权重最大的队首信元所对应的输入端口发送授权消息;对输入端口中接收到所述授权消息的队首信元,选取权重最大的队首信元所对应的所述输出端口发送接受消息,建立端口匹配;

所述第二匹配模块,用于对未建立端口匹配的输入端口中权重最大的队首信元,向该队首信元对应的输出端口发送请求消息,所述请求消息中携带该队首信元的权重;对向未建立端口匹配的输出端口发送请求消息的队首信元中,根据该输出端口接收到的所述请求消息选取权重最大的队首信元所对应的输入端口发送授权消息,建立端口匹配。

6.根据权利要求5所述的数据调度设备,其特征在于,所述权重计算单元基于如下调度策略计算所述队首信元的权重:当第一队首信元的等待时间大于第二队首信元的等待时间时,为第一队首信元分配的权重大于为第二队首信元分配的权重;和/或,当第一信元队列的长度大于第二信元队列的长度时,为第一信元队列中的队首信元分配的权重大于为第二信元队列中的队首信元分配的权重;和/或,当第一队首信元对应的扇出数值大于第二队首信元对应的扇出数值时,为第一队首信元分配的权重小于为第二队首信元分配的权重。

7.根据权利要求5所述的数据调度设备,其特征在于,所述第一匹配模块或者第二匹配模块还包括平局解决模块,所述平局解决模块,用于当存在至少两个权重相同的队首信元且该权重相同的队首信元的权重大于剩余待选队首信元的权重时,至少通过下述的一种方式选取权重最大的队首信元:在所述权重相同的队首信元中,随机确定一个信元作为所选取的权重最大的队首信元;或者,设置轮询指针,所述轮询指针指示轮询端口号;在所述权重相同的队首信元中,当所述队首信元所对应的端口号与轮询端口号的差值最小时,将该队首信元作为所选取的权重最大的队首信元;或者,在所述权重相同的队首信元中,将具有最小端口号或者具有最大端口号的队首信元作为所选取的权重最大的队首信元。

8.一种交换网系统,其特征在于,所述系统包括如上述权利要求5至7任一项所述的数据调度设备。

说明书 :

一种交换网中的数据调度方法、设备和系统

技术领域

[0001] 本发明涉及高速数据网络中的数据调度技术,尤其涉及一种交换网中的数据调度方法、设备和系统。

背景技术

[0002] 高速大容量的数据交换系统已成为当前研究热点。而交叉交换(Crossbar,简写为XB)机制以其无阻塞的特性且实现简单成为研究交换结构、设计调度算法、分析交换单元性能的首选模型。
[0003] 基于输入输出缓冲交叉开关(Combined Input Output Queued,CIOQ)Crossbar的交换网能够从多个输入端口接收输入数据,然后调度这些数据到不同的输出端口。交换网利用流量管理(TM)将从线卡(LineCard)输入的可变长度的报文切分为固定长度的信元(Cell);同时把时间划分为固定长度的时间槽(Time Slot);每个时间槽,一个输入端口最多只能调度出去一个信元,相应的,一个输出端口最多只能调度进来一个信元。调度算法保证从不同输入端口输入的数据不会同时被调度到相同的输出端口。
[0004] 交换网可以对包括单播(unicast)信元和多播(multicast)信元进行混合调度。例如,现有技术中提出了一种空间多播的调度方法,能够把多播信元调度到交换网之后进行复制,同时将复制后的信元从多个输出端口输出,以实现对单播信元和多播信元的混合调度。
[0005] 在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:现有技术提供的单播信元和多播信元的混合调度方法,复杂度过高,可行性较小。单播信元和多播信元的混合调度仍然是一个开放性的问题,没有很好的解决方案。

发明内容

[0006] 为解决现有技术中存在的问题,本发明的实施例提供一种交换网中的数据调度方法、设备和系统。
[0007] 为达到上述目的,本发明的实施例采用如下技术方案:
[0008] 本发明实施例提供了一种交换网中的数据调度方法,所述方法包括:
[0009] 根据调度策略计算输入端口中每个信元队列的队首信元的权重,所述信元包括单播信元和多播信元;根据所述权重,获取调度所述队首信元时输入端口和输出端口之间的端口匹配;利用所述端口匹配将所述队首信元从输入端口传送至输出端口。
[0010] 本发明实施例还提供了一种数据调度设备,所述设备包括:
[0011] 权重计算单元,用于根据调度策略计算输入端口中每个信元队列队首信元的权重,所述信元包括单播信元和多播信元;
[0012] 端口匹配单元,用于根据所述权重计算单元计算得到的权重,获取调度所述队首信元时输入端口和输出端口之间的端口匹配;
[0013] 传送单元,用于利用所述端口匹配单元获取到的端口匹配,将所述队首信元从输入端口传送至输出端口。
[0014] 本发明实施例还提供了一种交换网系统,该系统包括上述的数据调度设备。
[0015] 本发明实施例提供的技术方案,对单播信元和多播信元都采用了基于权重的调度机制,能够同时进行对单播信元和多播信元的混合调度,实现较高的数据吞吐率,且显著降低了调度算法的复杂度,具有较大的可行性和较高的应用价值。

附图说明

[0016] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017] 图1为本发明实施例一提供的交换网中的数据调度方法流程图;
[0018] 图2为本发明实施例二提供的一种交换网中的数据调度方法流程图;
[0019] 图3为本发明实施例二提供的另一种交换网中的数据调度方法流程图;
[0020] 图4为本发明实施例三提供的一种数据调度设备结构示意图;
[0021] 图5为本发明实施例三提供的另一种数据调度设备结构示意图;
[0022] 图6为本发明实施例三提供的又一种数据调度设备结构示意图。

具体实施方式

[0023] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024] 本发明实施例一提供的交换网中的数据调度方法,如图1所示,所述方法包括:
[0025] 步骤11:根据调度策略计算输入端口中每个信元队列的队首信元的权重,所述信元包括单播信元和多播信元;
[0026] 步骤12:根据所述权重,获取调度所述队首信元时输入端口和输出端口之间的端口匹配;
[0027] 步骤13:利用所述端口匹配将所述队首信元从输入端口传送至输出端口。
[0028] 本发明实施例提供的技术方案,对单播信元和多播信元都采用了基于权重的调度机制,能够同时进行对单播信元和多播信元的混合调度,实现较高的数据吞吐率,且显著降低了调度算法的复杂度,具有较大的可行性和较高的应用价值。
[0029] 下面通过本发明实施例二进一步详细说明本发明的技术方案。
[0030] 本发明实施例二中以基于CIOQ的无缓存(Buffer-less)Crossbar交换网为例进行说明。该交换网包括N个输入端口(Input Port)和N个输出端口(OutputPort),N为正整数,N的取值可根据具体的需要的进行确定,例如,当网络中的数据吞吐量较大时,N的取值也较大。每个输入端口中维护对应于N个输出端口的N个单播信元队列和k个多播信元N队列,k的取值可以为1≤k≤2,其中,N为上述的输入端口数量或者输出端口数量。由N
于通常情况下,多播数据流的数量(2)远远大于多播信元队列的数量k,因此一个多播信元队列中的信元可以属于多个多播数据流,各多播信元按照数据流入队,即属于同一数据流的多播信元入队同一个多播信元队列。
[0031] 在每个时间槽内,完成一次数据调度的流程。输入端口计算每个信元队列队首(Head of Line,HOL)信元的权重,并根据权重通过多次迭代完成输入端口和输出端口之间的最大端口匹配。然后,根据端口匹配的结果配置Crossbar各个交叉点的状态,并将队首信元从输入端口传送到与该输入端口具有匹配关系的输出端口。参见图2,具体包括如下处理:
[0032] 步骤21:输入端口接收需要进行调度的数据流,并将该可变长度的数据流切分为固定长度的信元,维护信元队列并进行缓存,该信元包括单播信元和多播信元。
[0033] 步骤22:根据调度策略计算输入端口中每个信元队列的队首信元的权重。
[0034] 在本发明实施例中,所采用的调度策略至少包括如下三种策略中的一种或其组合:
[0035] 策略一:当第一队首信元的等待时间大于第二队首信元的等待时间时,为第一队首信元分配的权重大于为第二队首信元分配的权重,即信元等待时间越长,信元的权重越大;
[0036] 策略二:当第一信元队列的长度大于第二信元队列的长度时,为第一信元队列中的队首信元分配的权重大于为第二信元队列中的队首信元分配的权重,即信元队列长度越大,队首信元的权重越大;
[0037] 策略三:当第一队首信元对应的扇出数值大于第二队首信元对应的扇出数值时,为第一队首信元分配的权重小于为第二队首信元分配的权重,即信元扇出数越大,信元权重越小。
[0038] 为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。例如,用“第一队首信元”表示任一信元队列的队首信元,用“第二队首信元”表示与“第一队首信元”所属信元队列不同的任一个信元队列中的队首信元。
[0039] 其中,对于上述队首信元的等待时间可以从该信元入队时就开始计算,单位是时间槽数量。这时,需要为信元队列中的每个信元维护一个时间计数器,或者为每个信元添加一个入队时间戳。
[0040] 或者,上述队首信元的等待时间也可以从该信元作为队首信元时开始计算。这时只需要为每个信元队列维护一个时间计数器即可,无需对信元队列中的每一信元都维护一个时间计数器或是为每个信元添加时间戳,这种方案可以进一步简化设计。
[0041] 本发明实施例,对于单播信元和多播信元采用相同的方法计算信元权重。计算权重时,同时考虑信元等待时间,信元队列长度,信元扇出数等参数。这样既可以保证调度公平性,又可以避免数据流饿死,同时还可以自动适应不同比例的单多播混合数据。
[0042] 步骤23:未建立端口匹配的输入端口向其中所有队首信元的输出端口发送请求消息。
[0043] 对每一个信元,包括单播信元或多播信元,在执行交换之前都具有自身相应的作为目的地的输出端口,单播信元具有一个相应的输出端口,多播信元具有多个相应的输出端口。未建立端口匹配的输入端口对该输入端口中的每个队首信元相应的输出端口发送请求(Request)消息,该请求消息中携带所述队首信元的权重或是指示该队首信元权重的信息。
[0044] 本发明实施例采用多次迭代完成输入端口和输出端口之间的端口匹配。已经建立端口匹配的输入端口和输出端口不再参与后续迭代过程中的匹配操作。对于一个新的时间槽,首次迭代时,未建立端口匹配的输入端口包括交换网中所有的输入端口。执行一次匹配操作之后,交换网中的所有输入端口(或输出端口)便被分为未建立端口匹配的输入端口(或输出端口)和已建立端口匹配的输入端口(或输出端口),随着后续迭代过程中的多次匹配操作,已建立端口匹配的输入端口(或输出端口)的数量会不断增多,未建立端口匹配的输入端口(或输出端口)的数量会不断减少。
[0045] 可以在交换网中对所有已建立端口匹配的输入端口和输出端口进行记录,控制已记录的输入端口和输出端口不再参与后续迭代过程中的匹配操作;或者,对每一个输入端口或输出端口,当其已成功建立端口匹配后便自行退出后续迭代过程中的匹配操作;或者,在每一次执行端口匹配操作前,先对输入端口或输出端口是否已建立端口匹配进行判断,当该输入端口或输出端口还未建立端口匹配时,允许该输入端口或输出端口参与本次的端口匹配操作。上述相同描述适用于下文的相关内容。
[0046] 步骤24:未建立端口匹配的输出端口根据请求消息发送授权消息。
[0047] 只有未建立端口匹配的输出端口能够根据上述Request消息进行后续的调度操作,而对于已经建立过端口匹配的输出端口,可以拒绝接收来自输入端口的Request消息,或者,输入端口不再向已经建立过端口匹配的输出端口发送Request消息。
[0048] 未建立端口匹配的每个输出端口根据接收到的所述Request消息向相应的队首信元所对应的输入端口发送授权(Grant)消息,其中,所述相应的队首信元为在向所述输出端口发送Request消息的队首信元中权重最大的队首信元。
[0049] 当上述输入端口在Grant阶段内未收到相应输出端口发送的Grant消息,则不再选取该队首信元作为权重最大的队首信元,输入端口将权重最大的队首信元置为最小值,如将该权重置为0,进行下一次迭代时,从其它的队首信元中选择权重最大的队首信元。
[0050] 本发明实施例采用一种“塔形”的比较器,分层在N个队首信元中选取权重值最大的队首信元。第一层,N/2个比较器分别两两比较权重数据,选出N/2个权重较大的队首信元;第二层,N/4个比较器分别两两比较第一层处理后的比较结果,选择N/4个权重较大的队首信元;以此类推,这样最多经过log2N层的比较,就能选出权重值最大的队首信元。所采用的比较器的总数量为N个。
[0051] 在分层比较的过程中,如果出现平局现象,即存在至少两个具有相同权重的队首信元,而这些队首信元的权重相同又大于其余待选的队首信元,这些队首信元为造成平局的队首信元。则输出端口按照平局处理方案选择最大权重的队首信元,并发送Grant消息至该最大权重的队首信元对应的输入端口。
[0052] 本发明实施例提供的平局处理方案至少包括如下方式:
[0053] 方式一:随机方式
[0054] 在造成平局的队首信元中,随机选取一个队首信元作为权重最大的队首信元。
[0055] 方式二:轮询(Round Robin)方式
[0056] 这种方式下,每个输入/输出端口维护一个轮询指针Pr,记录解除平局的轮询端口号。发生平局时,在所述造成平局的队首信元中,当所述队首信元所对应的端口号与轮询端口号的差值最小时,即所述队首信元的端口号与Pr最接近时,将该队首信元作为所选取的权重最大的队首信元。选出权重最大的队首信元之后,利用下述公式更新Pr的数值:
[0057] Pr=(Pr+1)%N;
[0058] 其中,等式左侧的Pr为更新后的轮询指针,等式右侧的Pr为更新前的轮询指针,N为交换网的输出端口/输入端口的数目。
[0059] 方式三:在造成平局的队首信元中,总是选择端口号最小或者最大的端口所对应的队首信元作为权重最大的队首信元。
[0060] 步骤25:输入端口选取接收到Grant消息的队首信元中权重最大的队首信元所对应的输出端口发送接受(Accept)消息,建立端口匹配。
[0061] 输入端口接收到多个Grant消息之后,选择权重最大的队首信元接受Grant消息,并向该队首信元的相应的输出端口发送Accept消息,在输入端口和输出端口之间就建立匹配关系。其中,选择权重最大的队首信元和发生平局时的处理方法参见上述的相关内容。
[0062] 下一次迭代时,已建立匹配关系的输入端口不再向任何输出端口发送Request消息,已建立匹配关系的输出端口也不再接受任何输入端口的Request消息。
[0063] 步骤26:判断本次迭代是否成功匹配端口,当本次迭代成功建立了部分输入端口和输出端口的匹配关系时,说明端口匹配正在进行中,重复上述的步骤23至步骤25;
[0064] 步骤27:当本次迭代没有成功建立任何输入端口和输出端口的匹配关系时,说明经过前述的迭代已经建立了最大的端口匹配,迭代结束,得到最终的匹配结果。或者,预先设置迭代次数的阈值,当迭代的次数达到该阈值时,得到最终的匹配结果,迭代结束(图中未示出)。
[0065] 对于每个时间槽,通过最大权重建立输入端口输出端口之间的匹配关系之后,利用该端口匹配将所述队首信元从输入端口传送至输出端口。
[0066] 其中,对于单播信元,输入端口调度队首信元之后,就可以把它从缓冲队列中删除。对于多播信元,由于它有多个目的端口,在一个时间槽的调度中,很有可能只和部分目的端口建立了匹配关系。这时,需要采用扇出分割的调度方式。输入端口把多播队列的队首信元复制后发送给交换网以进行该队首信元在相应输出端口的转发,该输出端口为本次调度中已经为该队首信元建立端口匹配关系的目的端口。然后修改多播队列中队首信元的目的端口位图,把已经建立过端口匹配执行了数据发送的目的端口位图从整个多播队列队首信元的目的端口位图中删除。只有多播队列的队首信元所对应的所有目的端口均已发送过数据,才能从信元队列中删除此多播信元。
[0067] 本发明实施例的调度方法不局限于基于CIOQ的Buffer-less Crossbar交换网,适用于对均匀流量数据和非均匀流量数据进行调度的场合。根据需要可对本发明实施例中各个步骤的执行时序进行调整。
[0068] 本发明实施例二还提供了另一种交换网中的数据调度方法,该方法采用了另一种多次迭代的方式,完成了输入端口和输出端口之间的端口匹配。参见图3,具体包括:
[0069] 步骤31:输入端口接收需要进行调度的数据流,并将该可变长度的数据流切分为固定长度的信元,维护信元队列并进行缓存,该信元包括单播信元和多播信元。
[0070] 步骤32:根据调度策略计算输入端口中每个信元队列的队首信元的权重。
[0071] 该调度策略包括信元等待时间越长,信元的权重越大,信元队列长度越大,队首信元的权重越大,信元扇出数越大,信元权重越小。
[0072] 本发明实施例,对于单播信元和多播信元采用相同的方法计算信元权重。计算权重时,同时考虑信元等待时间,信元队列长度,信元扇出数等参数。这样既可以保证调度公平性,又可以避免数据流饿死,同时还可以自动适应不同比例的单多播混合数据。
[0073] 步骤33:未建立端口匹配的输入端口向该输入端口中权重最大的队首信元所对应的输出端口发送Request消息,所述Request消息中携带该队首信元的权重。
[0074] 步骤34:未建立端口匹配的输出端口根据接收到的所述请求消息向相应的队首信元所对应的输入端口发送Grant消息,建立端口匹配,其中,所述队首信元为在向所述输出端口发送请求消息的队首信元中权重最大的队首信元。
[0075] 其中,如果输入端口发送Request消息后,在Grant阶段内未收到输出端口发送的Grant消息,则不再选取该队首信元作为权重最大的队首信元,输入端口将权重最大的队首信元置为最小值,如将该权重置为0,进行下一次迭代时,从其它的队首信元中选择权重最大的队首信元。
[0076] 步骤35:判断本次迭代是否成功匹配端口,当本次迭代成功建立了部分输入端口和输出端口的匹配关系时,说明端口匹配正在进行中,重复上述的步骤33和步骤34;
[0077] 步骤36:当本次迭代没有成功建立任何输入端口和输出端口的匹配关系时,说明经过前述的迭代已经建立了最大的端口匹配,迭代结束,得到最终的匹配结果。或者,预先设置迭代次数的阈值,当迭代的次数达到该阈值时,得到最终的匹配结果,迭代结束。
[0078] 步骤31至步骤36中的具体操作方法可参见步骤21至步骤27的相关内容。
[0079] 本发明实施例提供的技术方案,对单播信元和多播信元都采用了基于权重的调度机制,能够同时进行对单播信元和多播信元的混合调度,实现较高的数据吞吐率,且显著降低了调度算法的复杂度,具有较大的可行性和较高的应用价值。
[0080] 本发明实施例三还提供了一种数据调度设备,如图4所示,所述设备包括:
[0081] 权重计算单元41,用于根据调度策略计算输入端口中每个信元队列队首信元的权重,所述信元包括单播信元和多播信元;
[0082] 端口匹配单元42,用于根据所述权重计算单元41计算得到的权重,获取调度所述队首信元时输入端口和输出端口之间的端口匹配;
[0083] 传送单元43,用于利用所述端口匹配单元42获取到的端口匹配,将所述队首信元从输入端口传送至输出端口。
[0084] 其中,所述权重计算单元42基于如下调度策略计算所述队首信元的权重:
[0085] 当第一队首信元的等待时间大于第二队首信元的等待时间时,为第一队首信元分配的权重大于为第二队首信元分配的权重;和/或,
[0086] 当第一信元队列的长度大于第二信元队列的长度时,为第一信元队列中的队首信元分配的权重大于为第二信元队列中的队首信元分配的权重;和/或,
[0087] 当第一队首信元对应的扇出数值大于第二队首信元对应的扇出数值时,为第一队首信元分配的权重小于为第二队首信元分配的权重。
[0088] 为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,上述描述采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并对不对数量和执行次序进行限定。例如,用“第一队首信元”表示任一信元队列的队首信元,用“第二队首信元”表示与“第一队首信元”所属信元队列不同的任一个信元队列中的队首信元。
[0089] 本发明实施例中,对于单播信元和多播信元采用相同的方法计算信元权重。计算权重时,同时考虑信元等待时间,信元队列长度,信元扇出数等参数。这样既可以保证调度公平性,又可以避免数据流饿死,同时还可以自动适应不同比例的单多播混合数据。
[0090] 进一步的,参见图5,根据本发明实施例提供的一种调度方式,所述端口匹配单元42可以包括第一匹配模块421,
[0091] 所述第一匹配模块421,用于对未建立端口匹配的输入端口中的每个队首信元,向该队首信元对应的输出端口发送请求消息,该请求消息中携带所述队首信元的权重;对向未建立端口匹配的输出端口发送请求消息的队首信元,根据该输出端口接收到的所述请求消息选取权重最大的队首信元所对应的输入端口发送授权消息;对输入端口中接收到所述授权消息的队首信元,选取权重最大的队首信元所对应的所述输出端口发送接受消息,建立端口匹配;
[0092] 进一步的,参见图6,根据本发明实施例提供的另一种调度方式,所述端口匹配单元42可以包括第二匹配模块422,
[0093] 所述第二匹配模块422,用于对未建立端口匹配的输入端口中权重最大的队首信元,向该队首信元对应的输出端口发送请求消息,所述请求消息中携带该队首信元的权重;对向未建立端口匹配的输出端口发送请求消息的队首信元中,根据该输出端口接收到的所述请求消息选取权重最大的队首信元所对应的输入端口发送授权消息,建立端口匹配。
[0094] 进一步的,所述第一匹配模块421或第二匹配模块422还包括平局解决模块423,[0095] 所述平局解决模块423,用于当存在至少两个权重相同的队首信元且该权重相同的队首信元的权重大于剩余待选队首信元的权重时,至少通过下述的一种方式选取权重最大的队首信元:
[0096] 在所述权重相同的队首信元中,随机确定一个信元作为所选取的权重最大的队首信元;或者,
[0097] 设置轮询指针,所述轮询指针指示轮询端口号;在所述权重相同的队首信元中,当所述队首信元所对应的端口号与轮询端口号的差值最小时,将该队首信元作为所选取的权重最大的队首信元;或者,
[0098] 在所述权重相同的队首信元中,将具有最小端口号或者具有最大端口号的队首信元作为所选取的权重最大的队首信元。
[0099] 可以理解本发明实施例中的各功能模块和单元,可以分别单独实现,也可以集成在一个或几个单元中实现,其具体的工作方法参见本发明的方法实施例。
[0100] 本发明实施例提供的技术方案,对单播信元和多播信元都采用了基于权重的调度机制,能够同时进行对单播信元和多播信元的混合调度,实现较高的数据吞吐率,且显著降低了调度算法的复杂度,具有较大的可行性和较高的应用价值。
[0101] 本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0102] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。