一种单播和多播集成调度装置、交换系统及方法

文档序号:7704343阅读:160来源:国知局
专利名称:一种单播和多播集成调度装置、交换系统及方法
技术领域
本发明涉及通信领域,尤其涉及一种单播和多播集成调度装置、交换系统及方法。
背景技术
CICQ (Combined Input and Crosspoint Queued Switch Fabric,^^ 换结构)由于隔离了输入端口和输出端口之间的带宽冲突,采用分布式与并行调度策略, 其交换性能优于Buffer-less Crossbar结构,在高速交换方面显示出了巨大的应用潜力。调度方法是高速交换的关键技术,负责解决多个输入端口和输出端口间的匹配, 使数据传输不会出现冲突。CICQ架构中单播调度方法主要有三种,但涉及多播调度的方法 较少,单多播集成调度的方法更少。单、多播集成调度方法有以下几种1)单播优先调度,如果没有单播信元则选择 多播信元进行调度;2)多播优先调度,如果没有多播信元则选择单播信元进行调度;3)单 多播调度按照时隙的奇偶性进行,如奇数时间槽单播优先调度,偶数时间槽多播优先调度。 方法1)和2)不能保证多播和单播信元的时延和抖动,方法3)调度时隙固定,导致吞吐率不高。从公开发表的论文、专利来看,缓冲交叉开关交换结构中如何简单有效实现单、多 播集成调度还没有很好的解决方法,因此导致系统吞吐率不高等问题。

发明内容
本发明实施例的目的在于提供一种单播和多播集成调度装置、交换系统及方法, 以提高系统吞吐率。为解决上述问题,本发明实施例提供了一种单播和多播集成调度装置,包括流量 监测模块和输入端口调度器,其中所述流量监测模块,用于定期监测输入端口中单播队列和多播队列的流量比例信 息,并将所述单播队列和多播队列的流量比例信息发送给所述输入端口调度器;所述输入端口调度器,用于获取输入端口流量中单播队列和多播队列的流量比例 信息,根据所述输入端口流量中单播队列和多播队列的流量比例信息确定单播队列和多播 队列的时间槽比例;并获取交叉点缓存的状态信息和信元调度请求信息;根据所述单播队 列和多播队列的时间槽比例、交叉点缓存的状态信息和信元调度请求信息进行单播信元或 多播信元调度。本发明实施例还提供了一种单播和多播集成调度交换系统,包括所述单播和多播 集成调度装置和交换芯片,所述交换芯片包括缓冲交叉开关交换结构和输出端口调度器; 其中所述输出端口调度器,用于将所述缓冲交叉开关结构的交叉点缓存中的单播信元 或者多播信元调度出所述缓冲交叉开关交换结构。本发明实施例还提供了一种单播和多播集成调度方法,基于缓冲交叉开关交换结构,该方法包括所述输入端口调度器获取输入端口流量中单播队列和多播队列的流量比例信息, 根据所述输入端口流量中单播队列和多播队列的流量比例信息确定单播队列和多播队列 的时间槽比例;并获取交叉点缓存的状态信息和信元调度请求信息;所述输入端口调度器根据所述单播队列和多播队列的时间槽比例、交叉点缓存的 状态信息和信元调度请求信息将单播信元或多播信元调度入交叉点缓存。本发明实施例提供的方法、装置和系统根据单播队列和多播队列的流量比例信 息,动态地调整单播和多播调度时间槽的比例,使得单播队列和多播队列得到较为公平的 服务,提高了系统的吞吐率。


图1是本发明实施例中一种单播和多播集成调度装置的应用的交换系统示意图;图2是本发明实施例中一种输入端口调度器的内部结构示意图;图3是本发明实施例中一种输出端口调度器的内部结构示意图;图4是本发明实施例中一种单播和多播集成调度装置内部运行意图;图5是本发明实施例中一种单播和多播集成调度方法的流程示意图;图6是本发明实施例中的单播调度方法的流程示意图;图7是本发明实施例中的多播调度方法的流程示意图;图8是本发明实施例中的输出端口调度方法的流程示意具体实施例方式以下结合附图对本发明的一个实施例进行详细描述。本发明提供一种单播和多播集成调度装置和交换系统,具体应用于如图1所示。 该交换系统包括线卡101和交换芯片102。线卡101与交换芯片102相连。该线卡101与 η个输入端口 UQ对应,每个输入端口 UQ对应一个线卡。每个线卡分别包括输入端口缓存 103和集成调度装置104。或者,可以由集成调度装置104和交换芯片102组成交换系统。 集成调度装置104包括流量监测模块107和输入端口调度器108。如图2所示,输入端口调 度器108包括单播轮询转轮以及多播轮询转轮。单播轮询转轮用于实现单播轮询调度,单 播轮询转轮包括流转轮和信元转轮,流转轮用于实现单播的流调度,信元转轮用于实现单 播的信元调度;多播轮询转轮用于实现多播轮询调度。交换芯片102包括CICQ结构105和输出端口调度器106。CICQ结构105的每个 交叉点包括交叉点缓存ΧΡ。该输出端口调度器106与η个输出端口对应,每个输出端口对 应一个输出端口调度器。如图3所示,每个输出端口调度器包括流转轮和信元转轮,流转轮 用于实现流调度,信元转轮用于信元调度。如图4所示,在输入端口缓存103中建立对应各输出端口的单播队列(UQ)和多播 队列(MQ),所述单播队列采用VOQ (Virtual Output Queued)技术入队。已建立的单播队 列和多播队列的所有队头信元向集成调度装置104中的输入端口调度器108发送信元调度 请求信息;集成调度装置104将输入端口缓存103中的单播队列和/或多播队列(MQ)的 信元调度进交换芯片102上的CICQ结构105内的交叉点缓存XP中;CICQ结构105上的交叉点缓存XP接收到集成调度装置104调度出的单播信元和/或多播信元,并将交叉点缓存 XP是否阻塞的状态信息反馈给集成调度装置104上的输入端口调度器108 ;集成调度装置 104上的流量监测模块107用于定期监测输入端口流量信息中单播队列和多播队列的流量 比例信息,并将监测到的输入端口流量信息中单播队列和多播队列的流量比例信息发送给 输入端口调度器108 ;输入端口调度器108则接收流量监测模块107发送的单播队列和多 播队列的流量比例信息,以确定单播队列和多播队列时间槽的比例;并接收所述交叉点缓 存状态信息和所述信元调度请求信息,并根据所述单播队列和多播队列的时间槽比例进行 单播信元或多播信元的调度。即将单播队列或者多播队列信元调度至交叉点缓存XP中,并 缓存等待的多播或者单播信元调度请求;输出端口调度器106用于将交叉点缓存XP中的单 播信元或者多播信元调度出交换芯片102。本发明实施例还提供一种单播和多播集成调度方法,该方法的一种应用场景如图 1所示。如图5所示,该方法包括步骤401 建立单播队列和多播队列。步骤402 定期监测输入端口流量中单播队列和多播队列的流量比例信息,并将 所述单播队列和多播队列的流量比例信息发送给输入端口调度器;该监测具体可以由线卡 中的流量监测模块来实现,也可以由其他设备或模块来实现。步骤403 输入端口调度器根据所述步骤402监测的输入端口流量中单播队列和 多播队列流量比例信息,确定单播队列和多播队列的时间槽比例。步骤404 将交换芯片中交叉点缓存的状态信息(交叉点缓存是否阻塞)发给输 入端口调度器;该交叉缓存点的缓存状态信息可以由流控或数据信元发给输入端口调度
ο步骤405 所述步骤401的单播队列和多播队列的所有队头信元向输入端口调度 器发送信元调度请求信息。步骤406 输入端口调度器接收所述步骤404发送的交叉点缓存状态信息和所述 步骤405发送的信元调度请求信息,并根据所述步骤403决定的时间槽比例进行单播信元 或多播信元的调度。优选地,可以同时缓存等待的多播队列或单播队列的调度请求。步骤407 交叉点缓存接收单播信元或者多播信元。步骤408 输出端口调度器将交叉点缓存中的单播信元或者多播信元调度出交换
-H-· I I心片。所述步骤402、404、405无先后执行顺序,只要在步骤406之前完成即可。所述步骤401中建立多播队列包括当多播信元进入k个多播队列时(k为大于 等于1的自然数)时,根据k和多播信元的扇出数(全文用fanout表示)将该多播信元 分段,将扇出数小于k的多播信元作为第一段(fanout < k),将扇出数大于或等于k且小 于2k的多播信元作为第二段(k彡fanout < 2k),以此类推。从输入端口 i (i为大于等于 1的自然数)进入的多播信元,如果属于第一段则进入MQiim队列,其中m= fanout mod k, 即m为扇出数除以k后的余数(取模运算);属于第η段的多播信元则入MQi, ρ队列,其中 P= (fanout+n-l)mod k(n为大于等于1的自然数),即ρ为对扇出数加η减1后的取模运 算值。这种入队方式能保证相同的多播信元入同一队列,防止乱序的发生;不同的多播信元 也可能入同一队列,保证了入队的队头信元的多样性。
所述步骤403具体可以为,输入端口调度器接收步骤402中流量监测模块发送的 单播队列和多播队列的流量比例信息,据此确定单播队列和多播队列的时间槽比例。所述步骤406中,当调度时间槽为单播优先调度时,所述单播优先调度如图6所 示,具体包括输入端口调度器从单播流转轮指针所指位置开始查找非空单播队列。如果流转轮 指针所指位置的单播队列为空,流转轮指针移至下一单播队列。如果流转轮指针遍历所有 队列后仍未找到非空单播队列,则可插入多播调度。若找到非空单播队列,而且此时交叉 点缓存没有被阻塞,则流转轮指针保持指向,将队头信元置位Ibit(置1),将流交换标志发 往相应的交叉点,实现流调度;如果此时交叉点缓存被阻塞,流转轮指针保持不变,使用信 元转轮指针按照轮询方式寻找下一个非空的单播队列。如果找到下一个非空单播队列,则 将该单播队头信元复位Ibit (置0),将流交换标志发往相应的交叉点,并将信元转轮指针 指向下一位置;如果没找到,信元转轮指针保持指向。在单播时间槽内,如果没有一个非空 VOQ队列被流转轮和信元转轮选中,则可插入多播调度。所述步骤406中,当调度时间槽为多播优先调度时,所述多播优先调度如图7所 示,具体包括输入端口调度器从多播转轮指针所指位置开始查找多播队列的队头信元,并计算 权重W。权重W为等待时间参数值减去扇出参数值。即{w|w = A*age-B*fanout},其中A 为信元等待时间影响因子,B为信元扇出数影响因子,age为信元等待时间,fanout为多播 信元的扇出数,等待时间参数值为等待时间影响因子A和信元等待时间age的乘积,扇出参 数值等于信元扇出数影响因子B和多播信元的扇出数fanout的乘积。如果各队列的队头信元权重w相同,则根据多播转轮指针所指位置对相应的信元 进行调度服务,并根据交叉点缓存的状态和该信元是否完成多播拆分的状态决定多播转轮 指针指向该队列位置或下一队列的位置,具体包括若交叉点缓存没有被阻塞,则根据多播 转轮指针所指位置调度相应的信元,进行多播信元拆分转发。若队头信元完成多播拆分,则 多播转轮指针指向该队列的下一位置,此时若多播转轮已经完全遍历队列,则插入单播调 度,若未完全遍历队列,则对多播转轮指针此时所指位置的相应信元进行调度服务;若队头 信元未完成多播拆分,则多播转轮指针保持指向。若交叉点缓存被阻塞,则多播转轮指针指向该队列的下一位置,此时若多播转轮 已经完全遍历队列,则插入单播调度,若未完全遍历队列,则对多播转轮指针此时所指位置 的相应信元进行调度服务。如果各队列的队头信元权重w不相同,则对权重w最大的队列进行调度服务,并根 据交叉点的状态和该信元多播是否完成多播拆分的状态决定多播转轮指针指向该队列位 置或该队列的下一位置,具体包括若交叉点缓存没有被阻塞,则调度服务该权重最大的信 元,进行多播信元拆分转发。当队头信元完成多播拆分,多播转轮指针指向该队列的下一位 置,此时若多播转轮已经遍历队列一遍,则插入单播调度,若未遍历队列一遍,则对剩余队 列进行权重计算比较,若权重不相同,则对权重最大的队列进行调度服务,若权重相同,则 对多播转轮指针此时所指位置的相应信元进行调度服务;若队头信元未完成多播拆分,则 保持不变。若交叉点缓存被阻塞,将多播转轮指针指向该队列下一位置,此时若多播转轮已经遍历队列一遍,则插入单播调度,若未遍历队列一遍,则对剩余队列进行权重计算比较, 若权重不相同,则对权重最大的队列进行调度服务,若权重相同,则对多播转轮指针此时所 指位置的相应信元进行调度服务。如果在多播时间槽内,多播调度没有成功,则进行单播调度,此时单播从信元转轮 所指位置进行轮询调度。所述步骤408的调度方法具体包括如图8所示,输入端口调度器先从流转轮指针所指位置开始查找待调度信元,如 果流转轮指针所指位置信元流标志为1,则调度该信元出输出端口,同时保持流转轮指针不 变;如果流转轮指针所指位置信元流标志为0,则查找下一个流标志为1的信元并调度,流 转轮指针移到相应位置。如果流转轮没有找到流标志位为1的信元,使用信元转轮进行轮 询调度,并将信元转轮指针移到下一位置。通过上述实施例的介绍,可知本发明实施例采用了简单可行的单播和多播入队方 法,各线卡动态调整单播队列和多播队列的时间槽比例,增加了系统吞吐率。单、多播集成 调度装置采用简单的轮询调度,硬件实现简单,具有较好的可扩展性;可实现流调度,增大 突发流量下系统的吞吐率。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应 涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
一种单播和多播集成调度装置,其特征在于包括流量监测模块和输入端口调度器,其中所述流量监测模块,用于定期监测输入端口中单播队列和多播队列的流量比例信息,并将所述流量比例信息发送给所述输入端口调度器;所述输入端口调度器,用于获取所述流量比例信息,根据所述流量比例信息确定单播队列和多播队列的时间槽比例;并获取交叉点缓存的状态信息和信元调度请求信息;根据所述单播队列和多播队列的时间槽比例、交叉点缓存的状态信息和信元调度请求信息进行单播信元或多播信元调度。
2.根据权利要求1所述的装置,其特征在于所述输入端口调度器包括单播轮询转轮 和多播轮询转轮,其中所述单播轮询转轮,用于单播轮询调度;所述多播轮询转轮,用于多播轮询调度。
3.根据权利要求2所述的装置,其特征在于所述单播轮询转轮包括流转轮和信元转 轮,其中所述流转轮,用于单播的流调度;所述信元转轮,用于单播的信元调度。
4.一种单播和多播集成调度交换系统,其特征在于包括单播和多播集成调度装置和 交换芯片,所述交换芯片包括缓冲交叉开关交换结构和输出端口调度器;其中所述单播和多播集成调度装置用于定期监测输入端口中单播队列和多播队列的流量 比例信息,根据所述流量比例信息确定单播队列和多播队列的时间槽比例;并获取交叉点 缓存的状态信息和信元调度请求信息;根据所述单播队列和多播队列的时间槽比例、所述 交叉点缓存的状态信息和信元调度请求信息进行单播信元或多播信元调度所述输出端口调度器,用于将所述交叉点缓存中的单播信元或者多播信元调度出所述 缓冲交叉开关交换结构。
5.一种单播和多播集成调度方法,其特征在于包括输入端口调度器获取输入端口流量中单播队列和多播队列的流量比例信息,根据所述 流量比例信息确定单播队列和多播队列的时间槽比例;并获取交叉点缓存的状态信息和信 元调度请求信息;所述输入端口调度器根据所述单播队列和多播队列的时间槽比例、交叉点缓存的状态 信息和信元调度请求信息将单播信元或多播信元调度入交叉点缓存。
6.根据权利要求5所述的方法,其特征在于还包括所述输出端口调度器将所述输入 端口调度器调度入交叉点缓存中的单播信元或者多播信元调度出缓冲交叉开关交换结构。
7.根据权利要求5所述的方法,其特征在于还包括建立多播队列,具体包括当多播信元进入k个多播队列MQ时,根据k和多播信元的扇出数fanout将该多播信 元分段,将扇出数小于k的多播信元作为第一段,将扇出数大于或等于k且小于2k的多播 信元作为第二段,以此类推;从输入端口 i进入的多播信元,如果属于第一段则进入MQiim队 列,其中m=fanou t mod k ;属于第η段的多播信元则入MQiip队列,其中ρ = (fanout+n-1) mod k,其中,k、i、n为大于等于1的自然数。
8.根据权利要求5所述的方法,其特征在于所述获取输入端口流量中单播队列和多2播队列的流量比例信息,具体包括定期监测输入端口流量中单播队列和多播队列的流量比例信息,并将所述单播队列和 多播队列的流量比例信息发送给输入端口调度器。
9.根据权利要求5所述的方法,其特征在于当调度时间槽为单播优先调度时,所述单 播优先调度具体包括所述输入端口调度器从流转轮指针所指位置开始查找非空单播队列;如果流转轮指针所指位置的单播队列为空,流转轮指针移至下一单播队列,如果流转 轮指针遍历所有队列后仍未找到非空单播队列,则可插入多播调度;若找到非空单播队列,而且此时所述交叉点缓存没有被阻塞,则流转轮指针保持指向, 将队头信元置位,将流交换标志发往相应的交叉点,实现流调度;如果此时交叉点缓存被阻 塞,流转轮指针保持不变,使用信元转轮指针按照轮询方式寻找下一个非空的单播队列,如 果找到下一个非空单播队列,则将该单播队头信元复位,将流交换标志发往相应的交叉点, 并将信元转轮指针指向下一位置;如果没找到,信元转轮指针保持指向;在单播时间槽内,如果没有一个非空单播队列被流转轮和信元转轮选中,则可插入多 播调度。
10.根据权利要求5所述的方法,其特征在于当所述时间槽为多播优先调度时,所述 多播优先调度具体包括所述输入端口调度器从多播转轮指针所指位置开始查找多播队列的队头信元,并计算 权重w ;权重w为等待时间参数值减去扇出参数值;如果各队列的队头信元权重W相同,则根据多播转轮指针所指位置对相应的信元进行 调度服务;如果各队列的队头信元权重不相同,则对权重最大的队列进行调度服务;如果在多播时间槽内,没有多播调度成功,则进行单播调度,此时单播从信元转轮所指 位置进行轮询调度。
11.根据权利要求6所述的方法,其特征在于所述输出端口调度器将所述交叉点缓存 中的单播信元或者多播信元调度出所述缓冲交叉开关交换结构具体包括所述输入端口调度器先从流转轮指针所指位置开始查找待调度信元,如果流转轮指针 所指位置信元流标志为1,则调度该信元出输出端口,同时保持流转轮指针不变;如果流转 轮指针所指位置信元流标志为0,则查找下一个流标志为1的信元并调度,流转轮指针移到 相应位置;如果流转轮没有找到流标志位为1的信元,使用信元转轮进行轮询调度,并将信 元转轮指针移到下一位置。
12.根据权利要求5所述的方法,其特征在于所述获取交叉点缓存的状态信息,具体 包括由流控或数据信元处获取该交叉缓存点的缓存状态信息。
13.根据权利要求5所述的方法,其特征在于所述获取信元调度请求信息,包括在输入端口缓存中建立单播队列和多播队列,接收单播队列和多播队列的所有队头信 元发送的信元调度请求信息。
全文摘要
本发明提供一种单播和多播集成调度装置,包括流量监测模块和输入端口调度器;一种单播和多播集成调度交换系统,包括所述集成调度装置和交换芯片。本发明还提供一种单播和多播集成调度方法,包括获取输入端口流量中单播队列和多播队列的流量比例信息,根据所述输入端口流量中单播队列和多播队列流量比例信息确定单播队列和多播队列的时间槽比例;并获取交叉点缓存的状态信息和信元调度请求信息;根据所述单播队列和多播队列的时间槽比例、交叉点缓存的状态信息和信元调度请求信息进行单播信元或多播信元调度。通过本发明实施例,可以较大地提高系统吞吐率。
文档编号H04L12/18GK101902390SQ20091010775
公开日2010年12月1日 申请日期2009年5月27日 优先权日2009年5月27日
发明者孙团会, 宋健, 曹爱娟, 李德丰, 苏皓 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1