CN104821920B - 基于时分复用方式调度端口流量的方法及调度器、寄存器 - Google Patents
基于时分复用方式调度端口流量的方法及调度器、寄存器 Download PDFInfo
- Publication number
- CN104821920B CN104821920B CN201510166066.2A CN201510166066A CN104821920B CN 104821920 B CN104821920 B CN 104821920B CN 201510166066 A CN201510166066 A CN 201510166066A CN 104821920 B CN104821920 B CN 104821920B
- Authority
- CN
- China
- Prior art keywords
- port
- scheduling
- redundant
- register
- new command
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于时分复用方式调度端口流量的方法及调度器、寄存器,用以解决现有技术中存在的在对端口进行流量控制时,实现难度大、资源浪费以及复杂度大的问题。该方法包括:当调度到一个时隙时,确定所述时隙被绑定到的端口;确定是否接收到为所述端口预设置的冗余字节寄存器发出的调度反压信号;在确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出,并向所述冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于时分复用方式调度端口流量的方法及调度器、寄存器。
背景技术
基于多个固定速率端口,可以采用时分复用(Time Division Multiplex andMutiplexer,简称TDM)方式调度各个端口的传输流量,具体为将固定的调度时隙固定的分配给每一个独立端口,以保证每一个独立端口收到的流量能够满足端口输出的要求,不会出现端口流量断流的情况。
对于定长信元,单个端口的分配流量=分配的时隙/总时隙*系统频率*信元长度。为了保证单个端口的流量不断流,因此单个端口的分配流量就必须大于端口的实际流量。如果分配的流量大于端口的实际流量,就需要配置一定存储空间去缓存分配过剩的流量,同时通过存储空间的空满情况去反压TDM调度,停止对这个端口进行流量调度,以保证缓存空间不会被写溢出。分配的存储空间的大小,主要由反压响应时间和流量的超配值(流量的超配值=端口的分配流量–端口的输出流量)决定的,且与两者成正比关系。反压的响应时间主要与系统有关,一般确定后不再修改。为了减少缓存空间,就需要减少流量的超配值。对于定长信元,流量超配值可以通过调整的分配时隙数和总时隙的比例,使之接近于一个很小的值。
对于变长信元的调度时,如果信元的长度的范围为:[len_min,len_max];采用定长信元的TDM调度的流量计算方式,可以得到分配给该端口的理论最小流量speed_min和最大流量speed_max,其中speed_max/speed_min=len_max/len_min。
为端口分配流量时,首先需要保证端口不断流,因此要求分配给该端口的时隙,能够保证speed_min是大于或者等于该端口的输出流量。但是,当调度到的信元都是最长信元时,调度给端口的流量不是speed_min,而是speed_max,此时端口的超配置值就会很大。例如,当len_min=64比特(Byte,简称B),len_max=128B时,如果分配给端口流量是100G,那么speed_min>=100G,根据前面的推论,speed_max=speed_min*128/64,此时端口流量的超配置为(speed_max–100G),在极限情况下,这个超配值等于100G。如果反压的响应的时间过长,端口输出侧需要大量的缓存空间。
在上面介绍的场景下,过大的流量过冲,需要非常大的空间去缓存溢出的流量,对于输出端口侧是一个很大的资源浪费。为了减少资源的浪费,一般通过流量整形(shaper)的方法,在TDM调度时去控制变长信元对应的TDM调度的带宽,让其满足端口的最小的带宽,也不会出现较大的流量的过冲。
现有shaper的方法,首先需要为各个端口进行预配置,配置主要包括shaper的填充周期,填充字节和最大桶深;填充周期和填充字节用于控制shaper的整形流量,最大桶深用于控制shaper最大的突发流量;其次需要配置一个寄存器,该寄存器用于缓存每次调度时发送的字节数。
具体的,shaper的方法主要是通过周期性填桶操作来控制每个端口的流量。
周期性填桶操作,即每N个周期填充M个字节,N对应于为端口预配置的填充周期,M对应于为该端口预配置的填充字节。每次填充操作即在寄存器taken_buf存储的字节数的基础上加上填充字节M;这里需要用逻辑单元去实现周期性填桶的处理。其中,该寄存器taken_buf用于缓存针对该端口每次调度时发送的字节数;填充周期和填充字节用于控制shaper的整形流量,最大桶深用于控制shaper最大的突发流量。
因此现有的shaper的方法,需要的逻辑资源相对较多,实现方法也比较复杂,并且根据端口数目的增加,浪费的程度也会加剧。并且现有的shaper方式在使用时,由于端口流量要求的多样性,使得shaper在配置时,需要根据不同的流量进行不同的配置,因此增加了复杂度。
发明内容
本发明实施例提供一种基于时分复用方式调度端口流量的方法及调度器、寄存器,用以解决现有技术中存在的在对端口进行流量控制时,实现难度大、资源浪费以及复杂度大的问题。
第一方面,本发明实施例提供了一种基于时分复用方式调度端口流量的方法,该方法包括:
当调度到一个时隙时,确定所述时隙被绑定到的端口;
确定是否接收到为所述端口预设置的冗余字节寄存器发出的调度反压信号;
在确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出,并向所述冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令。
结合第一方面,在第一方面的第一种可能的实现方式中,还包括:
在确定未接收到所述调度反压信号时,对所述端口进行信元调度输出,并向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度后得到的字节数加上本次调度输出的信元的长度值。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
第二方面,本发明实施例提供了一种基于时分复用方式调度端口流量的方法,包括:
当调度到一个时隙时,确定所述时隙被绑定到的端口;
向为所述端口预设置的冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令;
确定是否接收到为所述冗余字节寄存器发出的调度反压信号;
在确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出。
结合第二方面,在第二方面的第一种可能的实现方式中,还包括:
在确定未接收到所述调度反压信号时,对所述端口进行信元调度输出;
并向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数加上调度输出的信元的长度值。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
第三方面,本发明实施例提供了一种基于时分复用方式调度端口流量的方法,包括:
冗余字节寄存器根据调度器发送的用于指示冗余字节寄存器更新当前存储的字节数的更新指令,更新自身当前存储的字节数;
所述冗余字节寄存器在确定更新后存储的字节数大于反压门限时,向所述调度器发送调度反压信号。
结合第三方面,在第三方面的第一种可能的实现方式中,所述更新指令,包括:
调度器在调度到所述冗余字节寄存器对应的端口时,不对所述端口进行信元调度输出时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器在调度到所述冗余字节寄存器对应的端口时,对所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数减去预定的信元长度值后得到的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值。
结合第三方面,在第三方面的第二种可能的实现方式中,所述更新指令,包括:
调度器在调度到所述冗余字节寄存器对应的端口时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器对所述冗余字节寄存器对应所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值。
结合第三方面和第三方面的第一种至第二种可能的实现方式中的任意一种,在第三方面的第三种可能的实现方式中,所述方法还包括:
所述冗余字节寄存器在确定更新后存储的字节数为负数时,将更新后存储的字节数更新为零。
结合第三方面和第三方面的第一种至第三种可能的实现方式中的任意一种,在第三方面的第四种可能的实现方式中,所述反压门限是根据用于反映针对所述端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的。
第四方面,本发明实施例提供了一种调度器,包括:
第一确定单元,用于在调度到一个时隙时,确定所述时隙被绑定到的端口;
第二确定单元,用于确定是否接收到为所述第一确定单元确定的端口预设置的冗余字节寄存器发出的调度反压信号;
调度单元,用于在所述第二确定单元确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出;
发送单元,用于向所述冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令。
结合第四方面,在第四方面的第一种可能的实现方式中,所述调度单元还用于:
在所述第二确定单元确定未接收到所述调度反压信号时,对所述端口进行信元调度输出;
所述发送单元,还用于:
在所述调度单元对所述端口进行信元调度输出后,向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度后得到的字节数加上本次调度输出的信元的长度值。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
第五方面,本发明实施例提供了一种调度器,包括:
第一确定单元,用于在调度到一个时隙时,确定所述时隙被绑定到的端口;
发送单元,用于向为所述端口预设置的冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令;
第二确定单元,确定是否接收到为所述冗余字节寄存器发出的调度反压信号;
调度单元,用于在所述第二确定单元确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出。
结合第五方面,在第五方面的第一种可能的实现方式中,所述调度单元还用于:
在所述第二确定单元确定未接收到所述调度反压信号时,对所述端口进行信元调度输出;
所述发送单元,还用于在所述调度单元对应所述端口进行调度后,向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数加上调度输出的信元的长度值。
结合第五方面或第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
第六方面,本发明实施例提供了一种寄存器,包括:
更新单元,用于根据调度器发送的用于指示冗余字节寄存器更新当前存储的字节数的更新指令,更新自身当前存储的字节数;
确定单元,用于确定所述更新单元更新后存储的字节数是否大于反压门限;
发送单元,用于在所述确定单元确定更新后存储的字节数大于反压门限时,向所述调度器发送调度反压信号。
结合第六方面,在第六方面的第一种可能的实现方式中,所述发送单元发送的更新指令,包括:
调度器在调度到所述冗余字节寄存器对应的端口时,不对所述端口进行信元调度输出时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器在调度到所述冗余字节寄存器对应的端口时,对所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数减去预定的信元长度值后得到的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值。
结合第六方面,在第六方面的第二种可能的实现方式中,所述发送单元发送的更新指令,包括:
调度器在调度到所述冗余字节寄存器对应的端口时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器对所述冗余字节寄存器对应所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值。
结合第六方面和第六方面的第一种至第二种可能的实现方式中的任意一种,在第六方面的第三种可能的实现方式中,所述更新单元还用于:
在所述确定单元确定更新后存储的字节数为负数时,将更新后存储的字节数更新为零。
结合第六方面和第六方面的第一种至第三种可能的实现方式中的任意一种,在第六方面的第四种可能的实现方式中,所述反压门限是根据用于反映针对所述端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的。
本发明实施例提供的方案中,冗余字节数即时的反映了端口调度的实际带宽与预分配带宽之间的过冲,冗余字节数越大,表示过冲越大,反之,冗余字节数越小,表示过冲越小。为了保证冗余字节数不会过大,即使得端口调度的实际带宽与预分配带宽之间的过冲不会过大,则设置反压门限,当冗余字节数大于反压门限时,反压TDM调度,停止对该端口的信元的调度处理,从而保证了冗余字节数被限制在反压门限值,保证了针对该端口调度时,过冲不会过大,基本与预期的带宽保持一致。并且利用本发明实施例提供的方案,仅需要设置寄存器,实现简单,并减少了的硬件资源的使用。
附图说明
图1为本发明实施例提供的一种基于时分复用方式调度端口流量的方法流程图;
图2为本发明实施例提供的另一种基于时分复用方式调度端口流量的方法流程图;
图3为本发明实施例提供的又一种基于时分复用方式调度端口流量的方法流程图;
图4为本发明实施例提供的时隙分配示意图;
图5为本发明实施例提供的基于时分复用方式调度端口流量的系统;
图6为本发明实施例提供的一种调度器结构示意图;
图7为本发明实施例提供的另一种调度器结构示意图;
图8为本发明实施例提供的一种寄存器结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种基于时分复用方式调度端口流量的方法及调度器、寄存器,用以解决现有技术中存在的在对端口进行流量控制时,实现难度大、资源浪费以及复杂度大的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本发明实施例提供了一种基于时分复用方式调度端口流量的方法,如图1所示,该方法可以由调度器去执行,该方法包括:
步骤101,当调度到一个时隙时,确定所述时隙被绑定到的端口。
步骤102,确定是否接收到为所述端口预设置的冗余字节寄存器发出的调度反压信号。
其中,所述冗余字节寄存器是当前调度的时隙对应的端口所对应的,即每个端口分别对应一个冗余字节寄存器,用于记录单个端口的调度的冗余字节数。且每个冗余字节寄存器的初始值均为0。在每个时隙对该端口的信元进行调度时,冗余字节数变化一次。
其中,调度反压信号是所述端口对应的冗余字节寄存器在确定自身存储的字节数大于预设的反压门限时发出的。
所述反压门限是根据用于反映针对所述端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的。
具体的:反压门限=反压的响应时间*最小信元长度值。
步骤103,在确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出,并向所述冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令。
其中,预定的信元长度值为所述端口能够支持的最小信元长度值。
具体的,每个端口分别对应一个队列,队列用于存储信元。则针对端口的信元的调度输出处理,即是针对端口对应的队列中的信元进行调度输出处理。
本发明实施例提供的方案中,冗余字节寄存器存储的字节数即时的反映了端口调度的实际带宽与预分配带宽之间的过冲,冗余字节寄存器存储的字节数越大,表示过冲越大,反之,冗余字节寄存器存储的字节数越小,表示过冲越小。为了保证冗余字节寄存器存储的字节数不会过大,即使得端口调度的实际带宽与预分配带宽之间的过冲不会过大,则设置反压门限,当冗余字节寄存器存储的字节数大于反压门限时,反压TDM调度,停止对该端口的信元的调度输出处理,从而保证了冗余字节数被限制在反压门限值,保证了针对该端口调度时,过冲不会过大,基本与预期的带宽保持一致。并且利用本发明实施例提供的方案,仅需要设置寄存器,实现简单,并减少了的硬件资源的使用。
可选地,该方法还包括:
在确定未接收到所述调度反压信号时,对所述端口进行信元调度输出,并将所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度后得到的字节数加上本次调度输出的信元的长度值。
本发明实施例还提供了一种时分复用方式调度端口流量的方法,如图2所示,包括:
步骤201,当调度到一个时隙时,确定所述时隙被绑定到的端口。
步骤202,向所述冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令。
其中,预定的信元长度值为所述端口能够支持的最小信元长度值。
步骤203,确定是否接收到为所述端口预设置的冗余字节寄存器发出的调度反压信号。
步骤204,在确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出。
本发明实施例提供的方案中,冗余字节寄存器存储的字节数即时的反映了端口调度的实际带宽与预分配带宽之间的过冲,冗余字节寄存器存储的字节数越大,表示过冲越大,反之,冗余字节寄存器存储的字节数越小,表示过冲越小。为了保证冗余字节寄存器存储的字节数不会过大,即使得端口调度的实际带宽与预分配带宽之间的过冲不会过大,则设置反压门限,当冗余字节寄存器存储的字节数大于反压门限时,反压TDM调度,停止对该端口的信元的调度输出处理,从而保证了冗余字节数被限制在反压门限值,保证了针对该端口调度时,过冲不会过大,基本与预期的带宽保持一致。并且利用本发明实施例提供的方案,仅需要设置寄存器,实现简单,并减少了的硬件资源的使用。
可选地,在确定未接收到所述调度反压信号时,对所述端口进行信元调度输出;
并向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数加上调度输出的信元的长度值。
本发明实施例提供了一种基于时分复用方式调度端口流量的方法,如图3所示,该方法包括:
步骤301,冗余字节寄存器根据调度器发送的用于指示冗余字节寄存器更新当前存储的字节数的更新指令,更新自身当前存储的字节数。
步骤302,所述冗余字节寄存器在确定更新后存储的字节数大于反压门限时,向所述调度器发送调度反压信号。
本发明实施例提供的方案中,冗余字节寄存器存储的字节数即时的反映了端口调度的实际带宽与预分配带宽之间的过冲,冗余字节寄存器存储的字节数越大,表示过冲越大,反之,冗余字节寄存器存储的字节数越小,表示过冲越小。为了保证冗余字节寄存器存储的字节数不会过大,即使得端口调度的实际带宽与预分配带宽之间的过冲不会过大,则设置反压门限,当冗余字节寄存器存储的字节数大于反压门限时,反压TDM调度,停止对该端口的信元的调度输出处理,从而保证了冗余字节数被限制在反压门限值,保证了针对该端口调度时,过冲不会过大,基本与预期的带宽保持一致。并且利用本发明实施例提供的方案,仅需要设置寄存器,实现简单,并减少了的硬件资源的使用。
冗余字节寄存器更新自身当前存储的字节数,具体通过以下方式:
第一种实现方式:
当冗余字节寄存器接收到调度器在调度到所述冗余字节寄存器对应的端口时,不对所述端口进行信元调度输出时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值,则更新自身当前存储的字节数。
第二种实现方式:
当冗余字节寄存器接收到调度器在调度到所述冗余字节寄存器对应的端口时,对所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数减去预定的信元长度值后得到的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值,则更新自身当前存储的字节数。
第三种实现方式:
冗余字节寄存器接收到调度器在调度到所述冗余字节寄存器对应的端口时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值,则更新自身当前存储的字节数。
第四种实现方式:
冗余字节寄存器接收到调度器对所述冗余字节寄存器对应所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值,则更新自身当前存储的字节数。
其中,当所述冗余字节寄存器确定更新后存储的字节数为负数时,将更新后存储的字节数更新为零。
基于此可知,在调度器调度到某个时隙时,冗余字节寄存器存储的字节数=端口调度输出的总字节数-端口调度的总时隙数*最小信元长度值。
其中,端口调度的总时隙数为调度到当前时隙时调度所述端口对应的时隙所调度的总时隙数。
具体的,在输入流量小于预设带宽时会出现负数,由于负数的出现,会造成后面带宽突发,因此需要直接归0,以保证整体带宽。
例如,假设一个调度周期包括12个时隙,在每个调度周期中,为该端口分配4个时隙,如图4所示,1表示为该端口分配的第一时隙,2表示为该端口分配的第二时隙,3表示为该端口分配的第三时隙,4表示为该端口分配的第四时隙。。则在调度到第一时隙时,冗余字节寄存器中存储的冗余字节数为0,则不会触发发送调度反压信号。则调度器从该端口对应的队列中调度第一信元输出,向该端口对应的冗余字节存储器发送更新指示。则当前端口调度输出的总字节数,为调度输出的第一信元长度值。因此,冗余字节存储器更新后存储的字节数1=调度输出的第一信元长度值-1*最小信元长度值。
冗余字节存储器确定当前存储的字节数是否大于反压门限,若小于反压门限,则不会触发发送调度反压信号,则调度到第二时隙时,则从该端口对应的队列中调度第二信元输出,并向该端口对应的冗余字节寄存器器发送更新指示。则当前端口调度输出的总字节数,为调度输出的第一信元和第二信元的总长度值。因此,冗余字节存储器更新后存储的字节数2=调度输出的第一信元长度值+第二信元长度值-2*最小信元长度值。冗余字节存储器若确定当前存储的字节数大于反压门限,则触发发送调度反压信号给调度器。则调度器调度到第二时隙时,则不对该端口对应的队列中调度第二信元输出,并向该端口对应的冗余字节寄存器发送更新指示。则冗余字节寄存器将自身存储的字节数进行更新,更新后存储的字节数2=调度输出的第一信元长度值-2*最小信元长度值。以此类推。
下面结合具体实例对本发明实施例作具体说明。
基于时分复用方式调度端口流量的系统,如图5所示,该系统包括:冗余字节寄存器501、调度器502以及存储器503。
其中存储器503,用于存储需要调度输出的端口的信元。其中,各个信元可以以队列的格式进行存储。冗余字节寄存器501是为每个调度端口分配的寄存器,一个端口对应一个寄存器,用于记录单个端口TDM调度的冗余字节数。且每个冗余字节寄存器501的初始值均为0。
假设变长信元长度的范围:最小信元长度为64B,最大信元长度为128B。因此以最小信元长度为基准为每个端口分配TDM调度时隙。假设一个周期有36个时隙,为每个端口分配的TDM调度时隙为6个。
冗余字节数=端口调度输出的总字节数-端口调度的总时隙数*最小信元长度。
为了保证冗余字节数不会过大,即使得端口调度的实际带宽与预分配带宽之间的过冲不会过大,则设置反压门限,例如256B。
以其中一个端口为例进行说明,假设该端口的队列存储的信元为7个。每个信元的长度值如表1所示。
表1
序号 | 信元长度值 |
1 | 128B |
2 | 128B |
3 | 128B |
4 | 64B |
5 | 64B |
6 | 128B |
7 | 64B |
则在第一周期调度器502调度到第一时隙时,冗余字节寄存器501存储的冗余字节数为0,则不会触发发送调度反压信号。则调度器502从该端口对应的队列中调度信元1输出处理。即当前端口调度输出的总字节数,为调度输出的信元1的长度值。然后调度器502向冗余字节寄存器501发送第二更新指示,然后冗余字节寄存器501将自身存储的字节数进行更新,更新后存储的字节数1=调度输出的第一信元长度值-1*最小信元长度=128B-64B=64B,冗余字节寄存器501确定更新后存储的字节数小于反压门限,则不会向调度器502发送调度反压信号。
在调度到第二时隙时,冗余字节寄存器501中存储的字节数为字节数1=64B。调度器502没有接收到冗余字节寄存器501发送的调度反压信号,则从该端口对应的队列中调度信元2输出处理。即当前端口调度输出的总字节数,为调度输出的信元1和信元2的总长度值。然后调度器502向冗余字节寄存器501发送第二更新指示,然后冗余字节寄存器501将自身存储的字节数进行更新,更新后存储的字节数2=调度输出的第一信元长度值+第二信元长度值-2*最小信元长度。即字节数2=字节数1+第二信元长度值-最小信元长度=64B+128B-64B=128B,冗余字节寄存器501确定更新后存储的字节数小于反压门限,则不会向调度器502发送调度反压信号。
以此类推,在调度到完第6时隙时,冗余字节寄存器501中存储的冗余字节数为冗余字节数6=128B+128B+128B+64B+64B+128B-6*64B=256B。则触发发出调度反压信号,因此,则在下一个周期调度到第一个时隙时,则调度器502不对该端口的信元进行调度输出处理。并向冗余字节寄存器501发送第一更新指示,则冗余寄存器中存储的字节数7=256B-64B=192B,即会继续进行冗余字节寄存器的调度递减运算,经过多次空调度后,冗余计数器的数值会下降到反压门限以下,此时就解除反压,继续输出数据。
本发明还提供了一种调度器,如图6所示,该调度器包括:
第一确定单元601,用于在调度到一个时隙时,确定所述时隙被绑定到的端口;
第二确定单元602,用于确定是否接收到为所述第一确定单元601确定的端口预设置的冗余字节寄存器发出的调度反压信号;
调度单元603,用于在所述第二确定单元602确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出;
发送单元604,用于向所述冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令。
可选地,所述调度单元603,还用于:在所述第二确定单元602确定未接收到所述调度反压信号时,对所述端口进行信元调度输出。
所述发送单元604,还用于在所述调度单元603对所述端口进行信元调度输出后,向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度后得到的字节数加上本次调度输出的信元的长度值。
其中,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
本发明还提供了一种调度器,如图7所示,该调度器包括:
第一确定单元701,用于在调度到一个时隙时,确定所述时隙被绑定到的端口;
发送单元702,用于向为所述端口预设置的冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令;
第二确定单元703,确定是否接收到为所述冗余字节寄存器发出的调度反压信号;
调度单元704,用于在所述第二确定单元703确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出。
可选地,所述调度单元704还用于:在所述第二确定单元703确定未接收到所述调度反压信号时,对所述端口进行信元调度输出;
所述发送单元702,还用于在所述调度单元704对应所述端口进行调度后,向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数加上调度输出的信元的长度值。
其中,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
本发明还提供了一种寄存器,如图8所示,该寄存器包括:
更新单元801,用于根据调度器发送的用于指示冗余字节寄存器更新当前存储的字节数的更新指令,更新自身当前存储的字节数;
确定单元802,用于确定所述更新单元801更新后存储的字节数是否大于反压门限;
发送单元803,用于在所述确定单元802确定更新后存储的字节数大于反压门限时,向所述调度器发送调度反压信号。
其中,所述反压门限是根据用于反映针对所述端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的。
其中,所述发送单元803发送的更新指令,包括:
调度器在调度到所述冗余字节寄存器对应的端口时,不对所述端口进行信元调度输出时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器在调度到所述冗余字节寄存器对应的端口时,对所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数减去预定的信元长度值后得到的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值;或
调度器在调度到所述冗余字节寄存器对应的端口时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器对所述冗余字节寄存器对应所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值。
可选地,所述更新单元801还用于:在所述确定单元802确定更新后存储的字节数为负数时,将更新后存储的字节数更新为零。
本发明实施例提供的方案中,冗余字节寄存器存储的字节数即时的反映了端口调度的实际带宽与预分配带宽之间的过冲,冗余字节寄存器存储的字节数越大,表示过冲越大,反之,冗余字节寄存器存储的字节数越小,表示过冲越小。为了保证冗余字节寄存器存储的字节数不会过大,即使得端口调度的实际带宽与预分配带宽之间的过冲不会过大,则设置反压门限,当冗余字节寄存器存储的字节数大于反压门限时,反压TDM调度,停止对该端口的信元的调度输出处理,从而保证了冗余字节数被限制在反压门限值,保证了针对该端口调度时,过冲不会过大,基本与预期的带宽保持一致。并且利用本发明实施例提供的方案,仅需要设置寄存器,实现简单,并减少了的硬件资源的使用。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (20)
1.一种基于时分复用方式调度端口流量的方法,其特征在于,包括:
当调度到一个时隙时,确定所述时隙被绑定到的端口;
确定是否接收到为所述端口预设置的冗余字节寄存器发出的调度反压信号;
其中,所述冗余字节寄存器用于记录所述端口的冗余字节数;所述调度反压信号是所述端口对应的冗余字节寄存器在确定自身存储的字节数大于预设的反压门限时发出的;所述反压门限是根据用于反映针对所述端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的;
在确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出,并向所述冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令。
2.如权利要求1所述的方法,其特征在于,还包括:
在确定未接收到所述调度反压信号时,对所述端口进行信元调度输出,并向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度后得到的字节数加上本次调度输出的信元的长度值。
3.如权利要求1或2所述的方法,其特征在于,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
4.一种基于时分复用方式调度端口流量的方法,其特征在于,包括:
当调度到一个时隙时,确定所述时隙被绑定到的端口;
向为所述端口预设置的冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令,所述冗余字节寄存器用于记录所述端口的冗余字节数;
确定是否接收到为所述冗余字节寄存器发出的调度反压信号;
其中,所述调度反压信号是所述端口对应的冗余字节寄存器在确定自身存储的字节数大于预设的反压门限时发出的,所述反压门限是根据用于反映针对所述端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的;
在确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出。
5.如权利要求4所述的方法,其特征在于,还包括:
在确定未接收到所述调度反压信号时,对所述端口进行信元调度输出;
并向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数加上调度输出的信元的长度值。
6.如权利要求4或5所述的方法,其特征在于,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
7.一种基于时分复用方式调度端口流量的方法,其特征在于,包括:
冗余字节寄存器根据调度器发送的用于指示冗余字节寄存器更新当前存储的字节数的更新指令,更新自身当前存储的字节数;
所述冗余字节寄存器在确定更新后存储的字节数大于反压门限时,向所述调度器发送调度反压信号,其中,所述反压门限是根据用于反映针对所述冗余字节寄存器所对应的端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的。
8.如权利要求7所述的方法,其特征在于,所述更新指令,包括:
调度器在调度到所述冗余字节寄存器对应的端口时,不对所述端口进行信元调度输出时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器在调度到所述冗余字节寄存器对应的端口时,对所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数减去预定的信元长度值后得到的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值。
9.如权利要求7所述的方法,其特征在于,所述更新指令,包括:
调度器在调度到所述冗余字节寄存器对应的端口时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器对所述冗余字节寄存器对应所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值。
10.如权利要求7~9任一项所述的方法,其特征在于,所述方法还包括:
所述冗余字节寄存器在确定更新后存储的字节数为负数时,将更新后存储的字节数更新为零。
11.一种调度器,其特征在于,包括:
第一确定单元,用于在调度到一个时隙时,确定所述时隙被绑定到的端口;
第二确定单元,用于确定是否接收到为所述第一确定单元确定的端口预设置的冗余字节寄存器发出的调度反压信号;
其中,所述冗余字节寄存器用于记录所述端口的冗余字节数;所述调度反压信号是所述端口对应的冗余字节寄存器在确定自身存储的字节数大于预设的反压门限时发出的;所述反压门限是根据用于反映针对所述端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的;
调度单元,用于在所述第二确定单元确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出;
发送单元,用于向所述冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令。
12.如权利要求11所述的调度器,其特征在于,所述调度单元,还用于:
在所述第二确定单元确定未接收到所述调度反压信号时,对所述端口进行信元调度输出;
所述发送单元,还用于:
在所述调度单元对所述端口进行信元调度输出后,向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度后得到的字节数加上本次调度输出的信元的长度值。
13.如权利要求11或12所述的调度器,其特征在于,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
14.一种调度器,其特征在于,包括:
第一确定单元,用于在调度到一个时隙时,确定所述时隙被绑定到的端口;
发送单元,用于向为所述端口预设置的冗余字节寄存器发送用于指示所述冗余字节寄存器将当前存储的字节数减去预定的信元长度的第一更新指令,所述冗余字节寄存器用于记录所述端口的冗余字节数;
第二确定单元,确定是否接收到为所述冗余字节寄存器发出的调度反压信号;
其中,所述调度反压信号是所述端口对应的冗余字节寄存器在确定自身存储的字节数大于预设的反压门限时发出的,所述反压门限是根据用于反映针对所述端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的;
调度单元,用于在所述第二确定单元确定接收到所述调度反压信号时,在当前调度的时隙不对所述端口进行信元调度输出。
15.如权利要求14所述的调度器,其特征在于,所述调度单元还用于:
在所述第二确定单元确定未接收到所述调度反压信号时,对所述端口进行信元调度输出;
所述发送单元,还用于在所述调度单元对应所述端口进行调度后,向所述冗余字节寄存器发送第二更新指令,所述第二更新指令用于指示所述冗余字节寄存器将当前存储的字节数加上调度输出的信元的长度值。
16.如权利要求14或15所述的调度器,其特征在于,所述预定的信元长度值为所述端口能够支持的最小信元长度值。
17.一种寄存器,其特征在于,包括:
更新单元,用于根据调度器发送的用于指示冗余字节寄存器更新当前存储的字节数的更新指令,更新自身当前存储的字节数;
确定单元,用于确定所述更新单元更新后存储的字节数是否大于反压门限;
发送单元,用于在所述确定单元确定更新后存储的字节数大于反压门限时,向所述调度器发送调度反压信号,其中,所述反压门限是根据用于反映针对所述冗余字节寄存器所对应的端口进行一次调度的反压的响应时间和所述端口能够支持的最小信元长度值确定的。
18.如权利要求17所述的寄存器,其特征在于,所述发送单元发送的更新指令,包括:
调度器在调度到所述冗余字节寄存器对应的端口时,不对所述端口进行信元调度输出时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器在调度到所述冗余字节寄存器对应的端口时,对所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数减去预定的信元长度值后得到的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值。
19.如权利要求17所述的寄存器,其特征在于,所述发送单元发送的更新指令,包括:
调度器在调度到所述冗余字节寄存器对应的端口时发出的第一更新指令,所述第一更新指令用于指示冗余字节寄存器将自身当前存储的字节数减去预定的信元长度值;或
调度器对所述冗余字节寄存器对应所述端口进行信元调度输出时发出的第二更新指令,所述第二更新指令用于指示冗余字节寄存器将自身存储的字节数加上所述调度器本次在调度到所述端口时调度输出的信元的长度值。
20.如权利要求17~19任一项所述的寄存器,其特征在于,所述更新单元还用于:
在所述确定单元确定更新后存储的字节数为负数时,将更新后存储的字节数更新为零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510166066.2A CN104821920B (zh) | 2015-04-09 | 2015-04-09 | 基于时分复用方式调度端口流量的方法及调度器、寄存器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510166066.2A CN104821920B (zh) | 2015-04-09 | 2015-04-09 | 基于时分复用方式调度端口流量的方法及调度器、寄存器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104821920A CN104821920A (zh) | 2015-08-05 |
CN104821920B true CN104821920B (zh) | 2018-03-16 |
Family
ID=53732088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510166066.2A Active CN104821920B (zh) | 2015-04-09 | 2015-04-09 | 基于时分复用方式调度端口流量的方法及调度器、寄存器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104821920B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770090B (zh) * | 2017-10-20 | 2020-05-01 | 深圳市楠菲微电子有限公司 | 用于控制流水线中寄存器的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929471A (zh) * | 2005-09-05 | 2007-03-14 | 中兴通讯股份有限公司 | 一种调度和仲裁的装置 |
EP2566118A1 (en) * | 2011-09-01 | 2013-03-06 | Alcatel Lucent | Network element for switching time division multiplex signals |
-
2015
- 2015-04-09 CN CN201510166066.2A patent/CN104821920B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929471A (zh) * | 2005-09-05 | 2007-03-14 | 中兴通讯股份有限公司 | 一种调度和仲裁的装置 |
EP2566118A1 (en) * | 2011-09-01 | 2013-03-06 | Alcatel Lucent | Network element for switching time division multiplex signals |
Also Published As
Publication number | Publication date |
---|---|
CN104821920A (zh) | 2015-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108282415A (zh) | 一种调度方法及设备 | |
US5640389A (en) | Traffic shaper and packet communication apparatus | |
CN102171580A (zh) | 在被管理网络上的layer-2处的包汇聚和分割 | |
US6470016B1 (en) | Servicing output queues dynamically according to bandwidth allocation in a frame environment | |
CN104717152B (zh) | 一种实现接口缓存动态分配的方法和装置 | |
CN101146091B (zh) | 多通道数据输出方法及系统 | |
EP0724794A1 (en) | Error detection and correction apparatus for an asynchronous transfer mode (atm) network device | |
CN103326953A (zh) | 一种基于令牌桶的流量限制方法和装置 | |
CN116016371A (zh) | 一种发送报文的方法、设备和系统 | |
CN110417670A (zh) | 用于高带宽交换的流量管理 | |
JPH10341237A (ja) | Atm通信装置 | |
CN102970250A (zh) | 分布式路由器系统中的带宽分配方法和装置、网络设备 | |
CN101409680B (zh) | 一种基于时分复用的片上网络信息传输方法及系统 | |
CN105656807A (zh) | 一种网络芯片多通道数据传输方法及传输装置 | |
CN104821920B (zh) | 基于时分复用方式调度端口流量的方法及调度器、寄存器 | |
US9063841B1 (en) | External memory management in a network device | |
CN101141407B (zh) | 一种分配带宽的方法、设备和系统 | |
CN103441879A (zh) | 一种网络通道切换方法及装置 | |
WO2009151847A1 (en) | Network data transport multiplexer bus with global and local optimization of capacity allocation | |
CN104618261B (zh) | 航空电子系统网络内的重整形调度方法 | |
CN108462649A (zh) | 降低onu中拥塞状态下高优先级数据传输时延的方法和装置 | |
CN109995667A (zh) | 传输报文的方法和发送设备 | |
CN108541361A (zh) | 用于多信道网络中的仲裁和自适应功率循环的方法 | |
KR102384685B1 (ko) | 비균일 트래픽을 고려한 중앙 집중형 스케줄링 장치 및 방법 | |
CN109905331A (zh) | 队列调度方法及装置、通信设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |