基于时间调度的系统与方法

文档序号:7606410阅读:276来源:国知局

专利名称::基于时间调度的系统与方法交叉引用本申请从2003年5月29日申请的名称为“基于时间调度的方法”的美国临时专利申请号60/474,008要求优先权,其全部内容在此并入作为参考。
背景技术
:通信系统频繁处理可以在单个物理信道上传输的不同类型信息(例如,数据,话音,视频等)。每种类型的信息可以具有不同的传输要求,例如缓冲、等待时间和等待时间变化。为了满足这些不同要求,系统可以使用调度器来在允许信息进入网络中时不一样地处理每种类型的信息。然而,当前的调度器在其能力方面还受到限制。因此,需要用于在通信网络中提供改进的调度的系统和方法。图1为调度方法的典型流程图。图1b示意了可以在其中使用调度器的典型通信系统的一个实施例。图2示意了用于允许数据进入图1系统中的典型数据流图。图3为具有慢速端和快速端模块的调度器的一个实施例,该调度器可以用于控制图2的数据流进入到一个或更多个上行链路。图4示意了一个预先定义的时间段和在该时间段内由图3的调度器的慢速端模块执行的各种任务。图5为可以由图3的调度器的慢速模块为每个队列执行的典型方法的流程图。图6a为可以用来在执行图5的方法期间为队列计算约定输入速率的典型方法的流程图。图6b为可以用来在执行图5的方法期间为队列计算峰值输入速率的典型方法的流程图。图7为图3的调度器的快速端模块的一个更加详细的实施例图。图8为用于加载与图7的快速端模块相关的提名表(nominationtable)的典型方法的流程图。图9a和9b为可以通过使用图8的提名表而在图7的快速端模块内部执行的提名过程的典型方法的流程图。具体实施例方式本公开一般涉及通信系统,尤其涉及提供通信网络中的基于时间调度的系统和方法。然而应当理解的是,以下公开提供了许多不同的实施例或实例。以下描述了组件和排列的特定实例以简化本公开。当然,这些只是实例,并且并非出于限制的目的。另外,本公开可以在不同实例中重复参考数字和/或字母。这种重复的目的在于简化和阐明,而其本身并不指定各种实施例和/或所讨论的配置之间的关系。参考图1a,该图示意了用于在通信网络中调度业务的典型方法10。正如以后将更加详细描述的那样,方法10可以为一个或更多队列中的每一个计算和分配一个或更多权标。这些权标于是被用于调节来自每个队列的信息的出列。在步骤12中,方法10可以在预先定义的时间周期内为多个活动队列中的每一个分配一个或多个权标。每个权标授权某个数量的数据从该队列中出列。后面将描述,该预定时间周期提供调度的改进控制。在步骤14中,方法10在启动新一轮分配之前一直等待该预定时间周期的结束。至少一个队列可以基于分配给该队列的至少一个权标被顺序地或者同时地提名。队列的提名授权该数量的数据(由该权标授权)从队列中出列。在步骤18,该提名被发送到存储器系统以将该数据出列,并将该数据发送到网络上行链路。现在参考图1b,其示意了典型系统100的一个实施例。系统100包括通过同步光纤网(SONTE)104连接到第二网络实体106的第一网络实体102。出于阐明的目的,术语SONET贯穿本公开使用以引用SONET和/或同步数字系列(SDH)。因此,应当理解,对SONET的引用可以由对SDH的引用代替,虽然可能需要一些小的修改,这是本领域的技术人员已知的。虽然本公开中的网络实体可以是任何网络可访问组件,设备,或系统(硬件和/或软件),网络实体102可以是配置来执行PPP处理的SONET上的以太网实体。在本实例中,网络实体106位于NOC108中,NOC108也包含通过数据通信网络(DCN)110连接到网络实体106的EMS/NMS112。用户114a和116a可以通过网络实体102访问网络104,而用户114b和116b可以通过网络实体106访问网络104。应当理解,其他用户、网络实体、网络和/或子网可以连接到图1的各个单元。因此,图1仅是出于举例的目的,并且已简化以更好地示意本公开。另外应当理解的是,可以使用其他的网络和/或协议,例如以太网或令牌环。另外参考图2,在诸如图1系统100的通信系统中,各种类型的信息(例如数据,话音,视频等)可以在单个物理信道上传输。然而,每种类型的信息可能具有不同的传输要求,包括诸如缓冲、等待时间和等待时间变化的要求。为了满足这些不同要求,该系统可以在允许信息进入到通信网络时不同地处理每种类型的信息。因此,允许从多个源接收的信息进入到单个信道可以使用满足处理各种类型信息要求的电路和/或软件。完成该操作的过程被称为“调度”,并且执行该调度的硬件和/或软件被称为调度器。一般而言,业务被发送到来自多个用户端口1-M的网络单元(NE)。来自这些端口的业务被归类,然后放置到列队系统中,其中来自这些端口的不同业务可以进入到1-N个不同的队列。该列队系统和端口通常为正交空间。存在一个映射函数(称为“分类”),确定来自用户端口的业务怎样路由到各个队列。一旦业务被放置到N个队列中的多个队列中,就会被转发到一个或更多网络上行链路。例如,来自多个队列的业务可以被发送到特定的STS-1同步净荷包络(SPE)中,该包络可以是包含在STS-12中的1-P个逻辑上行链路中的一个。应当理解,这个过程可以应用于许多不同的技术类型,例如SONET,SDH,以太网,令牌环等。如前所述,列队系统和逻辑上行链路为正交空间,并且存在确定来自给定队列的业务将去往哪个上行链路的映射函数。调度器确定上行带宽是怎样划分为竞争的客户端(队列)中的小的时间增量。由调度器执行的方法可以确定每个队列中的业务会经历多大的延迟,延迟变化,业务突发大小等。该方法可以基于不同的排序技术,例如每(per)PDU(协议数据单元)(例如单元,帧或分组)技术。现在参考图3,其示意了调度器300的一个实施例。调度器300包括配置随机访问存储器(RAM)302、慢速端模块304、权标库RAM306和快速端模块308。在本实例中,调度器300正在与队列(例如,存储器系统)310通信。正如以下将更详细描述的,调度器300被设计成发送指令到存储器系统,指导该存储器系统从特定队列中将PDU出列。当PDU从给定队列中去除时,就被发送到所选的上行链路逻辑信道,可能是在被放置到较小保持区域(例如先入先出(FIFO)队列)中之后,使得上行链路数据的速率匹配来自存储器系统的出列数据。应当理解的是,图3的调度器300仅为调度器的一种可能实施方式。例如,该调度器可以通过使用数字电路RTL(寄存器转换层)描述执行,它可以由逻辑合成器合成并在VLSI芯片中实现,或者作为场可编程门阵列(FPGA)。调度器可以包括各种存储器(例如,寄存器)和多个在软件和/或硬件中实现的函数。因此,以下描述不局限于所描述的特定结构。调度器300可以控制的出列PDU的示例性参数包括每个队列的约定输入速率(CIR),受上行链路可用性影响的每个队列的峰值输入速率(PIR),VoIP队列的等待时间(例如,调度器可以试图将等待时间保持在如此低水平,使得等待时间变化不重要),用于队列的数据业务的突发性,和在给定按照配置可以充满的情况下维持上行链路满所需要的速率。CIR为在给定非空队列的情况下,允许业务进入到网络的最小速率,而PIR为在给定非空队列的情况下,允许业务进入到网络的最大速率。为了说明起见,过量带宽(例如,PIR和CIR之间的差值)被标为PIR*。应当理解,对术语CIR和PIR的引用也可以引用代表这些速率的CIR和PIR权标。使用以上信息,调度器可以对从哪个队列中出列业务做出延迟的或者实时的判断,并且接着将这些出列指示发送到列队系统。出列的业务可以是单元,分组或固定或大小变化的帧形式的PDU数据。在本实例中,调度器300包括两个主要部分慢速端模块304和快速端模块308。慢速端模块304使用毫秒时基执行,它保证了对时间敏感的计算正确地执行。快速端模块308比慢速端时间模块执行速度更快,并且搜索具有准备好出列的数据的队列和可用带宽以用于出列。这两个模块由权标库RAM306(例如,双端口RAM)隔开,RAM306用于保存在调度器300的慢速端模块304与快速端模块308之间传递和反方向传递的信息。出于举例的目的,可以使用一种模拟设备,其中调度器300有点充当类似银行或票据交换所,以授权从不同队列出列PDU。实际上,慢速端模块304以正确的速率在银行中填充各种帐户,而快速端模块308尽可能快地从该帐户中收回所有可用资金。快速端模块308又告诉慢速端模块304它从每个帐户中收回了多少金额,从而慢速端模块304可以保证它继续维持适当数额的货币进入不同帐户。另外,快速端模块308试图解决业务成形,阻塞控制和上行链路与队列之间的出列公正性的问题。调度器300可以被设计成使用慢速端模块和快速端模块,因为对于作为一个整体的调度器来说可能具有两个竞争要求。首先,为了以高度的绝对时间精确度和分辨率执行,调度器应该具有控制良好的执行速率。第二,调度器也应该试图使用大小可能变化的PDU而获取被填充到最高可能程度的上行链路,并且这个目标与第一个目标不一致。慢速端模块304被用于给快速端模块308分配CIR和PIR*“权标”。在本实例中有512个队列,而慢速端模块304基于每队列从配置RAM302获取以下的配置输入CIR,PIR*,有效,VoIP,主,从和成对QID。如前所述,CIR为给定非空队列的情况下允许业务进入到网络的最小速率,而PIR*为给定非空队列的情况下允许业务进入到网络的最大速率。“有效”指示调度器要在准备运送业务时执行对该队列的计算。“VoIP”指示调度器这个队列中包含对延迟和延迟变化敏感的信息。“主”代表二进制队列对的领导者(将在后面更详细描述),而“从”代表二进制队列对的跟随者。“成对QID”仅对主有效,并且包括与主成对的从QID的指针。慢速端模块304也可以接收上行链路数据率(例如,正在被调度进入的信道容量)作为基于每上行链路(例如,12逻辑上行链路)的配置输入。上行链路数据率影响由慢速端模块304计算的CIR。慢速端模块304也可以从列队系统310获取以下实时信息入列到存储器系统的字节数,入列业务的队列号,从存储器系统出列的字节数,和从中出列业务的队列号。现在参考图4,时间段400示意了预先定义的时间周期可以怎样细分并且由图3的慢速端模块304使用。出于举例的目的,使用了毫秒时基,但是应当理解,也可以使用其它的时基。慢速端模块304将时间划分为精确已知的单位(例如,一毫秒),并且基于该定义的时基执行其计算。这样就在网络运营商要求时考虑到了对调度参数的微调。例如,在本实施例中,每个队列的计算每秒钟精确执行1000次,从而给调度器1.00000毫秒的时基。慢速端模块304的精度可以是用来运行相关电路的时钟的函数(例如,使用百万分之二十(ppm)时钟源将保证20ppm的调度精度)。如果计算是基于每比特执行的话,慢速端模块304可以以1kbps的带宽分辨率运行。如果计算是基于每八位字节执行的话,慢速端模块304可以以8.0kbps的带宽分辨率运行。时间段400被划分为周期A,B和C。周期A包括用于N个队列的按队列计算所使用的时间周期。周期B包括用于P个上行链路按上行链路计算所使用的时间周期。这些计算都将在后面详细描述。周期C被保留作为“停滞时间”以确保使用的时间段400等于一毫秒(例如,在“停滞时间”内,慢速端模块可以除了等待什么都不做,以尽可能接近地定位到1.00000毫秒边界),并且可以在需要的时候由周期A或B使用。应当理解,在一些实施例中,如果整个周期都被周期A和/或B占用,周期C可以等于零。在停滞时间到期之后,慢速端模块304可以在一个新的毫秒边界上开始其下一轮计算。在本实例中,在调度器300中发生的计算在随后的计算(例如1.0毫秒)间隔之间是自校正的。因此,长期累积的调度错误等于0。这个结果可以通过安排在一个调度间隔中使用的带宽为下一个调度间隔所知而实现。例如,如果队列在一个间隔内发送1000个八位字节的太多业务到上行链路,1000个可用八位字节就可以从随后的间隔中减去。应当理解,还可以执行许多不同的计算。例如,在时间段400的周期B内,用于上行链路的可用总计带宽可以计算成等于上行链路带宽减去上行链路所要求的CIR。由于调度器300可以计算基于每帧使用的上行链路实际开销带宽,每个用户接收他所请求数量的上行链路。这可能提供根据要求的封装带宽将每个用户从其他用户中分离开的优势,该封装带宽在上行链路要求使用某种类型的封装技术的情况下使用(例如,SONET上的PPP,SONET上的以太网)。因此,一个用户不会消费多于其上行带宽的合理份额的带宽。现在参考图5,方法500可以在预先定义的时间周期内(例如,图4的周期A)使用预先定义的时基(例如,图4的一毫秒时基)为每个QID执行,以确保对时间敏感的计算可以正确执行。方法500在步骤502中通过将QID提升到N开始。在步骤504中,可以做出关于N是否大于最大QID的判断。如果N大,那么在当前时间段内不再要处理队列,而且该方法继续到步骤505,在此执行SPE计算(这可能与时间段400的周期B相对应)。在步骤506中,方法500进入等待状态(例如,时间段400的周期C),这发生在步骤507中将QID设置为零并且返回到步骤504之前。如果N不大于QID(这个分支可以对应于时间段400的周期A),那么该方法继续到步骤508,在此为当前队列(QIDN)获取配置信息和权标库信息。获取的配置信息可以包含CIR,PIR*,有效,VoIP,主,从,成对QID,和上行数据率。获取的权标库信息可以包含在最后的预定时间间隔(例如,毫秒)内从存储器系统中出列的字节数,还有前面的PIR和CIR。在步骤510中,要做出关于获取的信息是否包含有效QID的判断。如前所述,QID有效意味着调度器要在这个队列准备运送业务时执行该队列的计算。如果QID无效,方法500返回到步骤502,在此QID被提升。如果QID有效,方法继续到步骤512,在此要使用例如,前面所述的诸如主,从,和/或成对QID的配置信息而做出该队列为主/从的判断。如果判断该队列为主的话,那么该方法就继续到514步,并且使用例如获取的CIR和上行数据率配置信息为主队列执行CIR计算。获取的CIR配置信息提供一个用于调节可以分配的CIR权标的数量的最高限度。另外,未使用的CIR带宽可以在步骤514中传递给从队列。对未使用带宽的这种分配由于一对队列之间可以存在主/从关系而可以发生,该主/从关系使得来自给定队列的未使用输出带宽可以授权给与之相关的另外一个队列(例如,二进制队列)。这样一个二进制队列使得队列可以一起配对,以使使用单个配置命令的两个服务的同时配置并行。这样的同时配置使得网络运营商可以对这两种服务与用户协商,配置并管理单个服务级协议(SLA)。例如,二进制队列可以用来允许VoIP和数据连接得以共同协商,数据连接实时自动接收未使用的VoIP带宽。在这样的情况下,VoIP业务可以使用某个CIR提供,并且数据业务可以使用某个PIR提供。因此,VoIP队列未使用的CIR可以作为CIR传输到数据队列。另外参考图6a,一种典型的方法600示意了用于CIR的计算,并且如果可用的话,将未使用CIR分配到从队列的过程。在步骤602中,用于当前QID的CIR可以计算为CIRtb,n=CIRtb,n-1+CIRprov-CIRused,n-1在此,“tb,n”为该时间周期内当前QID的权标库条目编索引,“prov”指示所配置的CIR,而“used,n-1”指示在宝贵的时间周期内使用的CIR权标。如果CIR计算是用于主队列,方法600可以继续到步骤604并且使用以下语句计算是否有要分配给从队列的未使用的CIR如果(主队列&&有效&&(Ctb,n>=maxCIRtb))则传输(Ctb,n-maxCIRtb)到从队列在步骤606中,方法600可以将用于QIDN计算的CIR权标限制到QIDN所允许的最大权标如果(CIRtb,n>=maxCIRtb)则CIRtb,n=maxCIRtb再次特别参考图5,在步骤516中,可以获取从信息(例如,使用成对QID),并且可以为从队列执行CIR和PIR*计算。CIR计算可以如前所述执行,典型的PIR*计算可以如图6b中更详细描述的那样执行。另外参考图6b,典型方法610示意了一种用于PIR*计算的过程。在步骤612中,方法610可以如下计算所需要的CIR权标数量CIRneeded=用于连接的Q大小+CIRused,n-1另外,方法610可以使用以下语句将所需要的CIR权标数量限制到提供的CIR权标的数量如果(CIRneeded>CIRprov)则CIRneeded=CIRprov在步骤614中,用于上行链路所需的CIR权标数量可以如下计算CIRneeded,uplink=用于上行链路中所有连接的CIRneeded总和在步骤616中,PIR权标的总授予数通过如下计算PIR*grants,uplink总和=带宽uplink-CIRnedded,uplink在步骤618中,方法610可以如下计算所希望的PIR权标数量PIR*desired=当前用于连接的Q大小-CIRprov另外,方法610可以使用以下语句将所希望的PIR权标数量限制到提供的PIR权标数量如果(PIR*desired>PIR*prov)则PIR*desired=PIR*prov在步骤620中,用于上行链路的所希望的PIR权标量可以如下计算PIR*desired,uplink总和=在给定上行链路中用于所有连接的PIR*desired总和在步骤622中,来自步骤616和620的计算用于如下计算要增加的PIR*权标PIR*add=(PIR*disired/PIR*grants,uplink总和)*PIR*grants,uplink总和在步骤624中,用于以N索引的权标库的PIR如下计算PIR*tb,n=PIR*tb,n-1+PIR*add-PIR*nsed,n-1在步骤626中,方法610可以使用以下语句将给定QIDN的PIR*权标数量限制到权标库中PIR*权标的最大数量如果(PIR*tb,n>maxPIR*tb)则PIR*tb,n=maxPIR*tb再次特别参考图5,在步骤518中,计算的CIRtb,n和PIR*th,n值(例如,权标)可以写入到用于QIDN和从QID的权标库。返回到步骤512,如果QIDN不是主/从,该方法进入到步骤520和522,在此分别为QIDN执行CIR和PIR*计算。该计算可以如前面参考图6a和6b执行。在步骤524中,计算的CIR和PIR*值可以写入到用于QIDN的权标库,而且该方法可以返回到步骤502。现在参考图7,其示意了图3的快速端模块308更详细的实例。该快速端模块用于基于通过权标库RAM306从慢速端模块304接收到的CIR和PIR*“权标”来控制从队列出列信息。在本实例中,快速端模块包括RAM判优器700,出列累积器702,提名判断模块704,随机地址产生器706,提名表加载器708,和提名表RAM710。RAM判优器700有助于权标库RAM306与快速端模块308的交互。出列累积器702使用RAM判优器700来存储在权标库RAM306中通过毫秒窗口出列的字节的连续总和。应当理解,诸如提名表加载器708的一些组件可以通过其他组件(例如,提名判断模块704)的要求按照该要求“监听”而获取来自权标库302的信息。如前所述,这种信息可以由慢速端模块304在其计算过程中使用。快速端模块308使用了一种处理在对存储器系统的出列指示的提名中接近公正性。为了完成这些,快速端模块308使用提名表(在提名表RAM710中存储),它包含所有配置的队列ID,并且具有许多与实际配置的PIR成比例的提名表条目。因此,可以在队列之间基于其预期带宽而创建不同的加权。由随机地址产生器706提供的随机分布函数可以用来读取提名表RAM710。这允许队列提名沿前述的毫秒窗口分布,并且可以在上行链路上产生业务成形效应。该随机分布函数也可以读取提名表很多次,提供高于队列的和/或上行链路的带宽,但与之成比例的提名率。这就补偿了在反压(backpressuring)情况下存储器系统的提名损失。另外参考图8,典型方法800示意了可以由图7的提名表加载器708使用以在提名表RAM710中加载提名表的处理。提名表的加载可以线性存储队列ID,并在时基窗口的开始存储。这有助于具有最小实现需要的提名表的生命再配置而不影响数据率。应当理解,可以支持对多个上行链路的任何数量的队列,而且在上行链路提名路径之间或者在队列之间没有或很少有冲突。在步骤802中,用于提名表的索引(ntable_index)和QID都被设置为零。在步骤804中,要对关于该方法是否是在时基窗口的开始(例如,图4的一毫秒时间段400的开始)做出判断。如果不是,该方法返回到步骤802。如果是,该方法继续到步骤806,在此获取用于QID的提名表条目的数量。在步骤808中,QID和提名表条目的上行链路信道号被存储在提名表中,而在步骤810中,QID递增。在步骤812中,要做出关于最后的队列是否已经被服务的判断。如果没有,方法800返回到步骤806。如果有,该方法继续到步骤814,在此要做出关于ntable_index是否位于提名表条目结尾的判断。如果是,方法800返回到步骤802。如果不是,该方法继续到步骤816,在此在返回到步骤802之前清除提名表中剩余的条目。尽管在图8中没有显示,应当注意,提名表中的所有条目可以在复位时被权标为无效。调度器300的快速端模块308使用毫秒窗口来执行作为参考。另外并且作为拥塞控制机构,它可以将时基窗口分解为子窗口以估算业务,从而完成其权标库资金的连接可以通过在窗口中提名较早而被阻塞。这可以阻止可能影响从到达存储器系统出列提名的其他队列的不必要提名。这在最小对最大PDU尺寸的情况下可能有所帮助。另外,可以增加按SPE的力函数,以允许在1毫秒窗口中落后的连接追赶上连续的窗口。此外,在子窗口内使用的更快的反应“滞后”函数可以用来阻止连接落后。该函数可以估算队列是否位于其带宽的前一个子窗口份额之后并且当前没有被推动。如果该队列满足这些要求,他就被选做为“滞后”队列。调度器300在快速端模块308没有做出任何其他提名时提名这个QID。这些特征可以使调度器300在产生出列提名中更为有效,可以通过将力逻辑设置为最后的手段而减少突发性,而且可以使得调度器支持任何帧尺寸业务而不需要突发尺寸配置。另外,可以支持对多个上行链路的任何数量的队列,而且在上行链路提名路径之间或队列之间没有冲突。现在参考图9a和9b,典型方法900示意了可以在图7的快速端模块308中用于队列提名的一种处理。在以下实例中,每个子窗口(sub_win_bw)都是权标库总CIR(TbankCIR)的一部分。该部分依赖于当前的子窗口。另外,给每个超时计数器的最大限制可以依赖于活动上行链路的数目(例如,SPE)而改变。在步骤902中,通过使用随机函数(例如,从图7的随机地址产生器706)从提名表中读取条目(例如NTEntry)。在步骤904中,要做出关于NTEntry是否有效的判断。如果NTEntry无效(那么就没有QID),方法900继续到步骤906,在此要做出关于该队列是否按SPE推动的判断(例如,使用循环来选择SPE)。如果该队列没有按SPE推动,在步骤908要做出关于滞后函数是否能用于所选SPE的判断(在此所选SPE由循环方法选择)。如果不是,该方法返回到步骤902。如果是,该方法继续到步骤910,在此current_{QID_SPE}被设置等于lag_{QID,SPE}。返回到步骤906,如果force_round_robinSPE启用,方法900移动到步骤912,在此current_{QID,SPE}被设置为等于force_{QID,SPE}。应当注意,步骤910和912都继续到步骤918,步骤918将在后面进行更详细的描述。返回到步骤904,如果NTEntry有效,从提名表接收的QID和SPE就在步骤913中被存储。在步骤914中,要做出关于SPE是否被推动的判断。如果是,方法900移动到步骤912,在此current_{QID,SPE}如前所述被设置为等于force_{QID,SPE}。如果不是,该方法移动到步骤916,在此current_{QID,SPE}被设置为等于normal_{QID,SPE}。该方法从步骤910,912和916的任何一步继续到步骤918。在步骤918中,从权标库中获取当前QID的PIR,dq_count和推动指示符(例如,指示当前QID需要被推动)。在步骤920中,要做出关于当前QIDPIR是否大于所允许的最小出列值的判断。如果不是,该方法900返回到步骤902。如果是,在步骤922中,要为当前子窗口计算要出列的CIR的量。在步骤924中,可以做出关于当前SPE是否被推动的判断。如果正在被推动,该方法继续到步骤926,在此如果force_sub_window_bw(例如,指示要在当前子窗口中被推动的CIR权标的最小量)小于或等于dq_count或计时器超时的话力函数就禁用。在步骤928中,要做出关于force_sub_window_bw是否大于dq_count的判断。如果不是,方法900返回到步骤902。如果是,方法900继续到步骤930,在此发送提名到存储器系统用于current_{QID,SPE}。返回到步骤924,如果当前SPE没有被推动,方法900就移动到步骤932。在步骤932中,如果推动指示符被设置并且force_sub_window_bw大于dq_count,力函数就能用于QID而且超时计数器启动。否则,如果滞后函数禁用并且QID落后,滞后函数就能用于QID并且超时计数器启动。在步骤934中,如果滞后函数能用并且QID已经追赶上或者超时计数器已经到期,滞后函数就禁用,并且超时计数器被停止并且清零。在步骤936中,要做出关于是否具有来自所选SPE的背压的判断。如果没有,该方法继续到步骤930,在此发送提名到存储器系统用于current_{QID,SPE}。如果有背压,该方法移动到步骤938。在步骤938中,如果QID没有满足其用于当前子窗口的CIR份额,那么该方法继续到步骤930,在此提名被发送到存储器系统用于current_{QID,SPE}。否则,如果具有背压(或没有CIR)但是还具有过度带宽的话,那么要做出关于dq_count是否小于SPE的FIFO的几乎所有级别的判断。这有助于定义一个或更多可以负责填充FIFO的队列,并且使得继续从不负责的队列中出列。如果不是,该方法返回到步骤902。如果是,该方法继续到步骤930。因此,如上所述,调度器300可以确保每个队列在给定该队列包含要出列PDU的情况下至少接收所配置CIR带宽,也可以确保每个连接在给定该队列包含要出列的PDU的情况下最多接收所配置PIR带宽。在一些实例中,调度器可以确保上行带宽在给定所配置参数内部具有足够配置业务以保证上行链路填充的情况下被完全填充。在还有其他的实例中,调度器可以确保备用带宽(就是,超过CIR的PIR带宽)在所有时间基于比例被均分。虽然前面的叙述展示并描述了一个或更多的实施例,本领域技术人员应当理解,在此可以在不偏离本公开的原理和范围的情况下做出各种形式和细节上的修改。例如,所述方法的各个步骤可以以不同的顺序执行或者连续执行,组合执行,进一步分解,以可选步骤替代,或全部去除。另外,在该方法中示意或者在本公开的其他地方描述的各个函数可以组合以提供其他的和/或可选的函数。另外,可以遵循各种网络和/或协议对这些方法和/或调度器做出各种修改。因此,权利要求书应当以与本公开相一致的广泛方式进行解释。权利要求1.一种用于在通信网络中调度业务的方法,所述方法包括在预先定义的时间周期内为多个活动队列中的每一个分配至少一个权标,其中每个权标授权要从所述队列中出列的数据量;在开始新一轮分配之前,一直等待,直到所述预先定义的时间周期结束;基于分配给所述队列的至少一个权标提名所述队列中的至少一个,其中所述提名授权从所述队列中出列所述数据量;和发送所述提名到存储器系统,以使所述数据出列并发送所述数据到网络上行链路。2.根据权利要求1的方法,其中提名所述队列中的至少一个包括基于所述多个权标将多个条目加载到提名表中,其中所述加载按照队列线性发生;和通过生成随机地址并检索位于所述随机地址的条目,从所述提名表中选择所述条目中的至少一个。3.根据权利要求2的方法,其中所述选择在所述预先定义的时间周期内发生预定次数的重复,而且所述预定次数与总上行带宽成比例。4.根据权利要求1的方法,还包括为每个队列计算第一和第二权标,其中所述第一权标基于用于定义允许业务进入到所述网络的最小速率的第一按队列速率,第二权标基于用于在给定非空队列的情况下定义允许业务进入到所述网络的最大速率的按队列速率。5.根据权利要求5的方法,还包括在为队列计算第一和第二权标之前确定所述队列是否为活动的。6.根据权利要求5的方法,其中所述确定基于与所述队列相关的识别符,其中所述识别符识别所述队列是否正运送要出列的业务。7.根据权利要求1的方法,还包括在为队列计算至少一个权标之前为这个队列检索配置信息。8.根据权利要求1的方法,还包括在为队列计算所述至少一个权标之前从所述存储器系统检索队列信息。9.根据权利要求8的方法,其中所述队列信息包括入列到所述存储器系统中的字节数、数据被入列到其中的队列的队列号、从所述存储器系统出列的字节数以及数据从中出列的队列的队列号。10.根据权利要求1的方法,还包括将来自一个队列的未使用带宽分配给相关队列。11.根据权利要求10的方法,其中基于最小速率计算所述未使用带宽,其中在给定非空队列的情况下,允许业务以所述最小速率进入到所述网络。12.根据权利要求1的方法,还包括计算在每帧基础上使用的上行链路开销带宽。13.根据权利要求1的方法,其中提名以大于填充上行链路的最大可能带宽所需的速率产生。14.一种用于在通信网络中调度上行链路业务的系统,所述系统包括为多个队列中的每个队列计算第一和第二权标的慢速端模块,其中所述第一权标代表在给定非空队列的情况下允许业务进入到所述网络的最小速率,所述第二权标代表在给定非空队列的情况下允许业务进入到所述网络的最大速率;基于所述第一和第二权标,从所述多个队列引导信息出列的快速端模块;以及位于所述慢速端模块和所述快速端模块之间的权标库,其中所述慢速端模块在所述权标库中存储所述第一和第二权标,所述快速端模块将所述第一和第二权标从所述权标库中去除。15.根据权利要求14的系统,其中所述慢速端模块在预先定义的时间周期内计算所述第一和第二权标中的每一个。16.根据权利要求15的系统,其中所述慢速端模块在为所述多个队列的每一个计算新的第一和第二权标之前一直等待,直到所述预先定义的时间周期结束。17.根据权利要求14的系统,其中所述慢速端模块以每比特为基础计算所述第一和第二权标中的每一个。18.根据权利要求14的系统,其中所述慢速端模块以每八位字节为基础计算所述第一和第二权标中的每一个。19.根据权利要求14的系统,其中所述第一和第二队列相关联,并且所述慢速端模块将来自所述第一队列的未使用权标分配给所述第二队列。20.根据权利要求14的系统,其中所述慢速端和快速端模块与列队系统通信。全文摘要本发明公开了一种在通信环境中基于时间的调度的系统与方法。在一个实例中,所述方法包括在预先定义的时间周期内将至少一个权标分配给多个活动队列的每一个。每个权标授权要从所述队列中出列的数据量。所述方法还包括在开始新一轮分配之前一直等到所述预先定义时间结束。所述队列中的至少一个基于分配给所述队列的所述权标而被提名,在此所述提名授权从所述队列中出列所述数据量。所述提名被发送到存储器系统以将所述数据出列并将所述数据发送到网络上行链路。文档编号H04L12/28GK1799212SQ200480014970公开日2006年7月5日申请日期2004年5月28日优先权日2003年5月29日发明者韦恩·R.·安基,罗斯·A.·杰米森,约翰·K.·威克斯,玛伦·B.·罗-蒂尔兹,保罗·A.·伊利尔斯,迈克尔·J.·米泽尤,尼米尔·I.·叶瑟恩申请人:卡维罗网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1