CN1339210A - 分组交换系统中的可用比特率业务引擎 - Google Patents
分组交换系统中的可用比特率业务引擎 Download PDFInfo
- Publication number
- CN1339210A CN1339210A CN 00803313 CN00803313A CN1339210A CN 1339210 A CN1339210 A CN 1339210A CN 00803313 CN00803313 CN 00803313 CN 00803313 A CN00803313 A CN 00803313A CN 1339210 A CN1339210 A CN 1339210A
- Authority
- CN
- China
- Prior art keywords
- cell
- selector
- reverse
- queue length
- register
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5629—Admission control
- H04L2012/5631—Resource management and allocation
- H04L2012/5632—Bandwidth allocation
- H04L2012/5635—Backpressure, e.g. for ABR
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Signal Processing (AREA)
Abstract
分组交换系统中的一种ABR(可用比特率)业务引擎。一个正向信元处理单元产生第一个开始信号并从一个正向RM(资源管理)信元提取CCR(当前信元速率)和MCR(最小信元速率)。一个本地瓶颈虚电路数|Q|估计单元在收到第一个开始信号的时候判断(CCR-MCR)是不是小于ER(显式速率),如果(CCR-MCR)小于ER,就认为收到的RM信元对|Q|有贡献,累加贡献程度,并计算|Q|。收到第三个开始信号的时候,一个ER引擎计算ER。收到反向RM信元的时候,一个反向信元处理单元判断ER引擎计算出来的ER是否小于从反向RM信元提取出来的ER和MCR的和,如果计算出来的ER小于ER跟MCR的和,就将计算出来的ER写入反向RM信元。每到第一个周期的时候,一个定时器将第二个开始信号传递给|Q|估计单元,每隔一个周期将第三个开始信号提供给ER引擎。
Description
发明背景
1.发明领域
总的来说本发明涉及分组交换系统。具体地说,本发明涉及分组交换系统中的一种可用比特率(ABR)业务引擎。
2.相关技术
分组交换网被用于异步传输模式(ATM)网络和因特网。一般的通信管理问题之一是ATM这样的分组交换网中的拥挤流控制。
异步传输模式层提供以下4种业务:恒定比特率(CBR)、可变比特率(VBR)、未指定比特率(UBR)和可用比特率(ABR)。在ABR业务中,源根据网络状况的变化改变它的比特率,按照网络能够提供的比特率发送数据。ABR业务被引入ATM网络的目的是支持有保证的带宽业务,因为这些业务不能由可变比特率(VBR)业务有效地支持。欲知详情,请参考S.Sathaye的ATM论坛通信管理规范,第4卷,1996年2月,F.Bonomi和K.W.Fendick的“用于可用比特率ATM业务的基于速率的流控制帧网络”,IEEE网络,第9卷,第二期,第25~39页,1995年,以及R.Jain“ATM网络中的拥挤控制和通信管理:最新进展和调查”,计算机网络和ISDN系统,第28卷,第13期,第1723~1738页,1996。
多数拥挤都是因为突发性的通信造成的,它会导致信源损失和不可预测的信元延迟。由于这些特性,网络被设计成按照网络的负荷状况改变它的数据传输速率。这样就引入了弹性通信量业务的概念,其中数据传输的速率是按照网络的可用带宽来调整的。弹性通信量业务的一个代表性实例就是ATM网络中的ABR业务。
ATM论坛已经选择了一种基于速率的闭环方法为ABR业务进行流控制,因为这种方法非常简单。这种基于速率的闭环控制方法采用来自网络的反馈信息控制数据速率,每个源都可以将信元发送给网络。这些反馈信息通过一个叫做资源管理(RM)信元的特殊的控制信元传递给源。对于基于速率的流控制,关于网络拥挤的信息利用显式正向拥挤说明(EFCI)、相对速率(RR)和显式速率(ER)的机制写入RM信元。在源那里和交换机那里,ABR业务不需要复杂的通信特征化和呼叫允许控制。由于这一简单性,人们预期ABR业务的实现和部署要比其它带宽有保证的业务,比方说CBR或者VBR业务,要容易得多。而实际上具有ABR能力的交换机的实现似乎比最初预期的要困难得多。困难主要在于如何设计简单、可伸缩和稳定的ABR流算法,具体地说就是异步和分布式网络环境中的ER分配算法。
此外,又长又变化多样的闭环往返延迟(RTD)和ABR VC(虚电路)中分布的瓶颈位置使得高性能ER分配算法的设计非常困难。当ABR源的传输速率是在不同时刻网络状态信息的基础之上确定的时候,网络中的ABR队列很难稳定。具体地说,如果只采用一种二进制的反馈机制(或者是EFCI或者是RR标记,或者是这两者),处于稳态的ABR队列会不可避免地出现持久的振荡。欲知详情,请参考E.Hernandez-Valencia等的“ATM ABR业务的速率控制算法”,欧洲通信杂志,第八卷,第一期,第7~20页,1997;F.Bonomi、D.Mitra和J.B.Serry的“高速广域ATM网络中基于反馈的流控制自适应算法”,IEEE J.Select.Areas on Communications,第13卷,第7期,第1267~1283页,1995;以及K.K.Ratmarkrishnan和Jain的“具有无连接网络层的计算机网络中避免拥挤的一种二进制反馈方法”,Proc.ACM SIGCOMM’88,303~313,1988。
上面描述的ABR队列的振荡现象会增大信元损失以及由于缓冲器周期性的上溢出和下溢出造成链路不能得到充分利用的可能性。这样,已经引入了利用ER标记的ABR流控制方案来实现ABR队列的渐近稳定性,从而克服二进制反馈机制的缺点。还有,设计一种渐近稳定的ER分配方法,特别是用一种简单的形式,是非常困难的。这个问题自然是具有延迟的反馈控制问题。
L.Benmohanmed和S.M.Meerkov将基于速率的流控制问题表达为具有延迟的离散时间反馈控制问题,导出了一种ER分配算法,它具有渐近稳定性,并允许对闭环性能进行任意控制。这一信息公开在1993年的IEEE ACM网络杂志,第1卷,第6期,第693~708页的“分组交换网中拥挤的反馈控制:单个拥挤节点的情形”,和国际通信系统杂志,1997年,第十卷,第5期,第227~246页的“分组交换网中的拥挤反馈控制:多个拥挤节点的情形”上。它们的ER分配算法是: 其中r[k]是交换机在离散时刻k计算出来的ER,q[k]是时刻k每一类ABR队列的长度,qT是目标队列长度,αi和βj是控制器增益,τmax是ABR VC的最大RTD,I是大于零的任意常数。
尽管它具有坚实的理论基础,但是以上算法的实际应用却因为它实施起来比较复杂而受到了限制。这一算法的缺点和局限性在以下文献中进行了描述:A.Kolarov和G.Ramamurthy的“为高速ATM网络设计基于速率的闭环流控制的一种控制理论方法”,IEEE INFOCOM论文集’97,第1卷,第293~301页,1997年。文中说在这一ER分配算法中,ER项应当维持在现在和过去,直到时间延迟τmax,在每个离散的时隙中都要进行多次浮点乘法运算。
在那以后,S.Chong提出了一种更加简单的控制理论ER分配算法(“高速广域ATM网络中具有动态队列门限的基于速率的二阶流控制”,1997年预印刷)。A.Elwalid(“高速广域网中基于速率的自适应拥挤控制分析”,IEEE ICC论文集’95,第1948~1953页,1995年)也提出了一种连续时间ER分配算法,它由下式给出:
r(t)=-Ar(t)-B(q(t)-qT),A,B>0 (2),并在所有VC的RTD都相同的时候为闭环系统实现渐近稳定获得了充分必要条件。Chong将这一方法的稳定性分析扩展到了具有任意RTD的一般情形.
与此同时,S.Chong,R.Nagarajan和Y.T.Wang提出了一种更加简单的ER分配算法(“设计具有速率反馈和开环控制的稳定的ABR流控制:一阶控制情形”,性能评估,第34卷,第4期),它能够很容易地实现渐近稳定系统,可以将它表示为:
r(t)=[-K(q(t)-qT)]+,K>0 (3)其中[x]+=max[x,0],表示应该选择x和0中较大的那一个。
在这个算法(2)中,导出了两个另外的稳定条件。它们中间的一个是一般的非均匀RTD的充分条件,另一个是均匀RTD这种特定情形下的充分必要条件。跟算法(1)比较,算法(2)和(3)的共同缺点是,除非按照ABR通信可以使用的带宽的瞬时信息以及远处的瓶颈VC使用的可用带宽所占的比例,正确地选择控制器增益和队列长度门限,否则这个ABR队列长度就会收敛成0,而这是不需要的,因为在这个平衡点上,这条链路不能得到充分利用。
如果VC的传输速率不会受到它们的PCR(峰值信元速率)的限制,远处的瓶颈VC就不能公平地使用这一链路,因为瓶颈现象出现在另外一条链路上。相反,如果采用算法(1),就根本不存在这种不需要的平衡点。
本发明的申请人还提出了一种ABR业务算法,这种算法在第60/157420号临时申请中进行了描述,这个申请的标题是“用于有保障的Max-Min流控制的一种可伸缩、稳定的显式方法”,这个申请于1999年10月2日提交给美国专利和商标局。
以上算法需要硬件至少满足最低的存储容量要求,运算精度应当保证算法能够正常工作。
发明简述
因此,本发明的一个目的是在分组交换系统中提供一种ABR业务引擎,其中ABR业务方法需要的硬件或者存储器最少,并且能够得到精确的运算结果。
本发明的以上目的可以通过在分组交换系统中提供一种ABR(可用比特率)业务引擎来实现。在这种AVR业务引擎中,正向信元处理单元产生第一个开始信号,并且在收到正向RM信元的时候从一个正向RM(资源管理)信元中提取CCR(当前信元速率)和MCR(最小信元速率)。本地瓶颈虚电路数(|Q|)估计单元在收到第一个开始信号的时候判断(CCR-MCR)是否小于ER(显式速率),如果(CCR-MCR)小于ER,就认为收到的RM信元对|Q|有贡献,通过将正向RM信源传输周期除以(第一个周期×CCR)并且将除法运算结果加到前一个贡献程度上去来累加贡献程度,在收到第二个开始信号的时候,通过将(累加起来的贡献程度×(1-低通滤波参数))和((前一个|Q|+总的|Q|×低通滤波参数)加起来来计算|Q|。收到第三个开始信号的时候,ER引擎通过从前一个ER减去(((平均队列长度-前一个平均队列长度)×第一个增益)/计算出来的|Q|)+((平均队列长度-目标队列长度)×((第二个增益×第三个开始信号周期)/计算出来的|Q|来计算ER。收到反向RM信元的时候,反向信元处理单元判断ER引擎计算出来的ER是否小于ER跟从反向RM信元提取的MCR的和,如果计算出来的ER小于ER和MCR的和,就将计算出来的ER写入反向RM信元。每次经历第一个周期的时候,定时器都将第二个开始信号提供给|Q|估计单元,每次经历第二个周期的时候,都将第三个开始信号提供给ER引擎。
附图简述
通过以下详细描述,同时参考附图,本发明的以上目的、特征和优点以及其它目的、特征和优点将会变得显而易见,在这些附图中:
图1说明本发明的优选实施方案中分组交换网的结构;
图2的是图1所示交换机I/O卡的框图;
图3是本发明的优选实施方案中ABR业务引擎的框图;
图4说明RM信元的结构;
图5是图3所示正向信元处理单元的框图;
图6是图5所示正向信元译码器的框图;
图7是图6所示信元单元计数器的框图;
图8和9说明如何缓冲存储信元;
图10是图6所示EFCI标记器的框图;
图11是图3所示|Q|估计单元的框图;
图12是说明图11所示δ计算判决器和δ计算器的运算的流程图;
图13是图11所示|Q|估计单元的运算流程图;
图14是图3所示ER引擎的框图;
图15是图14所示增益选择器的框图;
图16是图15所示增益选择器的运算流程图;
图17是图3所示ER引擎的运算流程图;
图18是图3所示反向信元处理单元的框图;
图19是图18所示反向信元译码器的框图;和
图20是Nr校正器的框图。
优选实施方案
下面将参考附图描述本发明的一个优选实施方案。为了清楚起见,大家都了解的功能或者结构都不再详细描述,因为它们会喧宾夺主。
图1说明实现本发明的优选实施方案的ABR业务的分组交换网结构。参考图1,这个分组交换网包括多个交换机E1、E2和E3。每个交换机都跟多个源连接。在图中,第一个交换机E1跟第一个到第N个源S1~SN连接。每个源都通过跟它连接的交换机发送/接收数据。从源发送的数据通过具有多个节点的所谓的VC路径到达目的地。
在ABR业务中,跟网络的带宽可用性有关的信息通过RM信元传递给源。在这里,对源产生的RM信元的处理落入本发明的实施方案的范围。源产生的RM信元通过一条VC路径发送给目的地。信元的这个发送方向是正向。收到正向RM信元的时候,目的地对正向RM信元进行处理,并通过反向RM信元发回源。交换机用于将允许的带宽信息写入反向RM信元。然后,源根据收到的带宽信息按照改变了的网络状况改变它的速率。在这里,跟带宽有关的信息包括说明可用带宽的EFCI、允许网络单元说明网络中有拥挤的CI(拥挤说明)和用于防止源增大其AGR(允许信元速率)的NI(不增加)。数据信元中的EFCI说明存在拥挤。
如上所述,交换机计算ABR业务能够获得的带宽,将计算出来的可用带宽信息写入反向RM信元,然后将反向RM信元发送给源。给这一功能提供服务的ABR引擎在交换机的输入/输出(I/O)口卡中提供。
图2是I/O口卡的一个框图。如图2所示,这个I/O口卡100包括一个I/O缓冲器管理单元102、一个ABR业务引擎104和一个输出接口106。这个I/O缓冲器管理单元102跟交换机连接,负责I/O排队。按照本发明的实施方案,这个I/O缓冲器管理单元102将一个队列写信号提供给ABR业务引擎104,用于队列写,将一个队列读信号提供给ABR业务引擎104,用于列读。按照本发明的实施方案,这个ABR业务引擎104在从微处理器108收到的各种参数的基础之上,为ABR业务处理ABR算法和跟它相关的运算。输出接口106相当于ATM层的用户网络接口。
图3是ABR业务引擎104的框图。如图3所示,正向信元处理单元200接收正向RM信元,并提供第一个信号给|Q|估计单元202(Q代表本地瓶颈VC的条数,|Q|代表Q的势/个数),如果它确认收到的RM信元是正向的、是由源产生的并且没有CRC错误。|Q|估计单元202假设在输出口排队。正向信元处理单元200从正向RM信元中提取出CCR(当前信元速率)和MCR(最小信元速率),并将它们提供给|Q|估计单元202。发生EFCI拥挤的时候,正向信元处理单元200在输入的正向信元的数据信元里标记EFCI。应当指出,浮点数系统被用于提供获得ER的精度和范围。这个浮点数系统能够保证足够的精度,以便防止发生跟ER值的反馈有关的问题。这样,这个浮点数系统包括ER引擎中能够计算出来的所有数的范围。
收到第一个开始信号的时候,|Q|估计单元判断收到的RM信元是否对|Q|有贡献。也就是说,从收到的RM信元中提取出来的CCR和MCR之间的差是否大于从ER引擎208收到的当前ER(δ)。如果满足这一条件,就说这个RM信元对|Q|有贡献。然后,|Q|估计单元202计算它的贡献程度(δ),将δ累加起来,用于|Q|估计,直到它收到第二个开始信号,这个信号是定时器周期性地产生的。在这里,δ代表在预定的时间段内ER引擎208测量出来的更新过的ER。这个|Q|估计单元202在收到第二个开始信号的时候,估计|Q|,并将估计出来的|Q|提供给ER引擎208。在估计|Q|的时候,|Q|估计单元202利用从ER引擎208收到的δ。δ是用来避免低估本地瓶颈VC个数的容限,特别是在稳定状态附近。当系统接近稳态的时候,本地瓶颈VC的CCR停留在MCR跟公共ER的和附近。这样,如果没有容限δ,就有可能错误地把VC当作远处的瓶颈VC,即使是CCR中只出现很小的扰动。而有了这个容限,就能够有效地避免这种低估。通过仿真发现δ=0.9是比较好的选择。
本发明的实施方案的特征在于节点不断周期性地更新ER,而不考虑是否有RM信元到达。后台计算的好处是RM信元到达相应节点的时候,ER引擎208准备的最新ER被直接提供给估计器单元202。
收到定时器210周期性地产生的第三个开始信号的时候,ER引擎208计算ER,并将计算出来的ER反馈给反向信元处理单元212,从而使反向信元处理单元212能够将计算出来的ER写入反向RM信元。
队列计数器206利用从I/O缓冲器管理单元102收到的队列写信号和队列读信号将当前队列长度和队列个数的变化提供给ER引擎208。队列计数器206将队列长度信息提供给正向信元处理单元200,使正向信元处理单元200能够检测EFCI拥挤状态,并写入EFCI标记。还有,队列计数器206将队列长度信息提供给反向信元处理单元212使反向信元处理单元212能够为RR业务检测“拥挤”和“非常拥挤”状态,并将NI(不增加)和CI(拥挤说明)标记写入反向RM信元。
反向信元处理单元212判断收到的反向RM信元的ER跟MCR的和是否小于从ER引擎208发送出来的ER。如果这个和小于ER引擎208给出的ER,反向信元处理单元212就将ER引擎208的ER写入反向RM信元。另外,检测RM信元的时候,反向信元处理单元212在收到的队列长度和反向RM信元的NI和CI标记的基础之上,检测拥挤和非常拥挤状态。完成了ER写和NI和CI标记以后,反向信元处理单元212为反向RM信元计算CRC,并将CRC写入反向RM信元。
每次经过第一个预定时间段的时候,定时器210都要产生第二个开始信号,并将它提供给|Q|估计单元202。每次经过第二个预定时间段的时候,定时器210还要产生第三个开始信号,并将它提供给ER引擎208。
微处理器接口204将从微处理器108收到的参数提供给|Q|估计单元202和ER引擎208。这些参数被锁存在寄存器中,这是一项大家都知道的技术,在这里不再描述。
在以下部分将详细描述ABR业务引擎104。
图4说明RM信元的结构。如图4所示,这个RM信元包括一个ATM信头、协议标识符、消息类型、ER、CCR、MCR、队列长度、序列号和CRC。ATM有一个PTI(有效负荷类型标识符),说明有效负荷的类型。一个PTI比特被用于EFCI。在消息类型字段中,DIR说明这个RM信元数据流的方向,BN说明这个RM信元是不是反向显式拥挤说明(BECN)信元(也就是说不是源产生的),CI(拥挤说明)使得网络单元能够说明网络中是否发生了拥挤,NI(不增加)被用于防止源增加它的ACR(允许的信元速率)。当源产生RM信元的时候,CCR(当前信元速率)被源设置成它的当前ACR。MCR(最小信元速率)字段说明源产生RM信元的时候每个VC分配的最小带宽。ER是RM信元经过交换机的时候,ABR业务引擎写入源产生的反向RM信元的可用带宽信息。只有当ABR业务引擎计算出来的可用带宽小于已有可用带宽的时候,前者的值才被写入ER字段。因此,VC路径中的最小可用带宽信息被传递给源。
图5是处理正向RM信元的正向信元处理单元200的框图。
参考图5,正向信元处理单元200的UTOPIA接口300提供UTOPIA接口。用于ATM(UTOPIA)的通用测试和操作物理层接口给出物理层和高层模块之间的接口,比如ATM层,紧跟信元译码器的输入端和信元编码器的输出端。正向信元译码器302接收一个正向信元和一个SOC(信元开始)信号,并检查这个正向信元是一个RM信元还是一个数据信元。
如果输入的是一个RM信元,正向信元译码器302就判断这个RM信元是不是源产生的。如果它是源产生的RM信元,正向信元译码器302就对这个RM信元进行CRC。如果没有检测到任何CRC差错,就产生第一个开始信号,从这个RM信元提取CCR和MCR,然后将第一个开始信号和CCR以及MCR提供给|Q|估计单元202。CRC用于检查正向信元的CRC,并将CRC检查结果发送给正向信元译码器302。从拥挤检测器306收到拥挤信号的时候,正向信元译码器302在收到的正向数据信元中标记EFCI。拥挤检测器306将当前的队列长度跟EFCI拥挤门限gEFCI值进行比较,如果当前队列长度大于gEFCI,就产生一个EFCI拥挤信号给正向信元译码器302。
图6是正向信元译码器302的一个详细框图。参考图6,产生UTOPIA的SOC(信元开始)信号的时候,信元单元计数器400开始记录正向时钟脉冲个数,输出一个信元计数,在一个RM信元的信元计数完成的时候产生的一个复位信号对它进行复位。信元的传送由SOC信号同步。在信元之前可以添加一个4字节或者5字节的信头。为了使信元计数说明PTI、DIR和BN、CCR,以及适当位置RM信元的MCR,而不管是否添加了信头,信元单元计数器400都要从信元计数中减去信元类型/2。信元缓冲多工器(MUX)414管理输入的正向信元并输出它们。
图7是信元单元计数器400的一个详细框图。参考图7,触发器D有一个输入端D跟电源相连,有一个时钟信号端子用于接收SOC信号,还有一个复位端用来接收复位信号。触发器D产生一个信元开始信号,在收到SOC信号的时候变成高电平,收到复位信号的时候变成低电平。这个信元开始信号和复位信号被提供给一个与门(AND)。当两个信号同时变成低电平的时候,这个与门产生一个信号,用于复位计数器(CNT)。计数器记录正向时钟脉冲信号的个数,并且在同时产生信元开始信号和复位信号的时候被复位。计数器的输出和信元类型/2被提供给减法器(AD)的输入端。减法器从计数器的输出减去信元类型/2,并将减法运算的结果作为信元计数输出。信元类型/2可以由微处理器108提供。
回到图6,信元单元计数器400产生的信元计数被提供给比较器402。当信元计数说明正向RM信元中PTI位置的时候产生一个PTI时钟信号,当它说明消息类型位置的时候产生一个DIR_BN时钟信号,当它说明CCR位置的时候产生一个CCR时钟信号,当它说明MCR的位置的时候产生一个MCR时钟信号。当信元计数说明正向RM信元结束的时候,就产生一个结束时钟信号。PTI、DIR_BN、CCR、MCR和结束时钟信号通过第一个寄存器单元404跟正向时钟信号同步。反相器(INV)将从第一个寄存器单元404收到的结束时钟信号反相,并将反相信号作为复位信号提供给信元单元计数器400。第一个寄存器单元404的PTI、DIR_BN、CCR和MCR时钟信号被分别提供给PTI寄存器406、DIR_BN寄存器408、CCR寄存器410和MCR寄存器412。
如果添加的信头有4个字节,信元缓冲器MUX 414就从第二个寄存器420读出16个信元比特,如果添加的信头有5个字节,就从第二个寄存器420读出8个信元比特,从第一个寄存器418读出8个比特。这样,信元的结构跟4个字节信头和5个比特信头无关。
图8和图9说明第一个寄存器418和第二个寄存器420中如何缓冲存储RM信元。RM信元以字节为单位在第一个寄存器418和第二个寄存器419中缓冲存储。在四个字节信头的情形中,前两个字节成一条直线在寄存器中缓冲存储,如图8所示。另一方面,在5个字节信头的情形中,RM信元的前两个字节以不对齐的方式缓冲存储,如图9所示。信头用信元类型来标识。如果信元类型是0100,就说明添加了4字节的信头。如果信元类型是0101,就说明添加了5字节信头。RM信元的信头可以通过检查信元类型的LSB(最低位)来识别。
这样,信元缓冲器MUX 414接收信元类型的LSB。如果LSB是0,信元缓冲器MUX就从第二个寄存器420读出16个比特,如果LSB是1,信元缓冲器MUX 420就从第一个寄存器418读出8个比特,从第二个寄存器414读出8个比特。
信元缓冲器MUX 414处理读出来的RM信元比特,并将这个RM信元输出给第二个寄存器单元416。第二个寄存器单元416用跟正向时钟信号同步的方式,将收到的RM信元输出给PTI寄存器406、DIR_BN寄存器408、CCR寄存器410和MCR寄存器410。PTI寄存器406、DIR_BN寄存器408、CCR寄存器410和MCR寄存器412将产生PTI、DIR_BN、CCR和MCR时钟信号的时候收到的数据锁存起来。结果,PTI寄存器406、DIR_BN寄存器408、CCR410和MCR寄存器412就将RM信元的PTI、消息类型、CCR和MCR以及CCR和MCR提供给|Q|估计单元202。
RM信元检测器428接收消息类型,并通过检查消息类型的DIR和BN,判断对应的信元是否源产生的一个正向RM信元。如果这个信元是源产生的正向RM信元,RM信元检测器428就产生一个RM开始信号,并将它提供给EFCI标记器430和与门。同时产生CRC差错检测信号和RM开始信号的时候,与门产生第一个开始信号,并将产生的第一个开始信号提供给|Q|估计单元202。
另一方面,如果输入的信元是一个数据信元(也就是说没有收到RM开始信号),并且产生了拥挤信号和信元开始信号,EFCI标记器430就在信元信头的PTI中标记EFCI。如果信元上增加了信头,PTI就会通过第一个寄存器418~第五个寄存器426,作为这个信元的低八位或者高八位。在这种情况下,EFCI标记器430自适应地标记EFCI,这一点将参考图10加以描述。将一个4字节信头添加到信元里的时候,PTI通过第一个寄存器418到第五个寄存器426,作为高八位。如果信元中添加了五字节信头,PTI就通过第一个寄存器418到第五个寄存器426,作为低八位。当拥挤信号和信元类型的LSB同时是1的时候,EFCI标记器430的第一个与门(AND1)将1提供给第一个或门(OR1)。第一个或门将PTI的EFCI比特跟第一个与门的输出进行或运算。也就是说,当拥挤信号和信元类型的LSB同时是1的时候,已经作为高八位通过了的PTI的EFCI被标为1。当拥挤信号和反相器反过相的信元类型的LSB同时是1的时候,EFCI标记器430的第二个与门(AND2)提供1给第二个或门(OR2)。第二个或门将PTI的EFCI比特跟第二个与门的输出进行或运算。也就是说,当拥挤信号是1,反过相的信元类型的LSB是0的时候,已经作为低八位通过了的PTI的EFCI被标为1。
第一个寄存器418到第五个寄存器426缓冲存储收到的正向信元和SOC信号以及空信号。
现在参考图11描述利用第一个信号和CCR和MCR估计|Q|的|Q|估计单元202的结构和操作。
这个|Q|估计单元202包括一个δ计算判决器500,用于从正向信元处理单元200收到第一个开始信号的时候判断一个RM信元是不是对|Q|有贡献,还包括一个δ计算器502,认定这个RM信元对|Q|有贡献的时候,计算贡献程度δ,并将它加到前一个值上去,还包括一个|Q|计算器504,用于利用累加起来的δ计算|Q|估计。
δ计算判决器500检查从ER引擎208收到的K*ER是否小于CCR(当前信元速率)减去MCR(最小信元速率)。如果K*ER小于CCR-MCR,就认为这个RM信元对|Q|有贡献,并产生一个控制信号S,用于控制要计算的δ。δ计算判决器500中的第一个寄存器506以跟SOC同步的方式将从ER引擎208收到的K*ER提供给数制转换器508。这个数制转换器508将K*ER转换成32比特浮点数,并将这个浮点数作为ER输出给第一个加法器510的输入端B。第一个加法器510分别通过它的输入端A和B收到MCR和ER,将MCR和ER加起来,通过输出端C将这个和输出给比较器512的B输入端。比较器512分别通过它的输入端A和B收到CCR以及MCR跟ER的和,将这个和跟CCR进行比较,然后将比较结果提供给与门514。如果MCR跟ER的和小于CCR,与门514就在收到第一个开始信号的时候将一个高电平信号输出给第二个寄存器516。第二个寄存器516在收到信号END_I_clk的时候,将从与门514收到的信号作为信号S输出。也就是说,收到的信元没有任何CRC差错,而且K*ER小于CCR-MCR的时候,信号S是1并被提供给δ计算器502。
δ计算器502按照以下公式计算并累加第一个周期中收到的RM信元(也就是|Q|估计周期)的贡献程度δ:其中Nrm是建立连接的时候协商定下来的正向RM信元的传输周期。Nrm/第一个周期(第二个开始信号的周期)可以由微处理器108提供。
δ计算器502中的数制转换器518将从正向信元处理单元200收到的CCR转换成32位浮点数。除法器520在产生MCR时钟信号的时候接收转换过来的CCR和Nrm/第二个开始信号周期,并用CCR除Nrm/第二个开始信号周期。第三个寄存器522在从除法器520收到完成信号的时侯锁存除法器520的输出。第二个加法器524在从除法器520收到完成信号的时候,将前一个δδprev跟第三个寄存器522的输出相加。从第二个加法器524收到完成信号的时候,第四个寄存器526按照来自与门528的时钟信号锁存第二个加法器524的输出,与此同时从与门528收到的信号S是1,并将锁存的值作为δ输出。δ被提供给|Q|计算器504并作为δprev输出给第二个加法器524。收到信号S的时候,δ计算器502不开始计算δ,而是输出计算出来的δ,从而以实时方式计算δ。
同时产生复位信号和第二个开始信号的时候,除法器520和第二个加法器524被通过反相器530和与门532产生的一个复位信号复位。因此,每次产生第二个开始信号的时候,累加的δ都被复位成0。
下面将参考图12描述δ计算判决器500和δ计算器502。收到RM信元的时候,δ计算判决器500在步骤600中判断K*ER是不是小于CCR-MCR。如果K*ER小于CCR-MCR,δ计算器502就在步骤602中计算和累加δ。
回到图11B,|Q|计算器504的控制器534在收到第二个开始信号的时候启动|Q|计算器504,并为|Q|计算器504提供所有的控制。1-α计算器从1减去低通滤波参数α。寄存器单元538锁存nr,和第二个选择器546的计算结果。第一个选择器540选择从寄存器单元538收到的多个值中的一些值,并且在控制器534的控制下将选择出来的值发送给乘法器542或者第三个加法器544。乘法器542和第三个加法器544对从第一个选择器540收到的输出乘起来和加起来,并将运算结果发送给第二个选择器546。第二个选择器546在控制器534的控制下,将乘法器542和第三个加法器544的输出提供给限幅器548或者寄存器单元538。如果收到的值在0和nr之间,限幅器548就直接输出从第二个选择器546收到的值作为|Q|。如果收到的值小于0,限幅器548就将这个值限制在0上,并且将0作为|Q|输出。如果收到的值大于nr,限幅器548就将这个值限制在nr上,并将nr作为|Q|输出。限幅器548的输出被作为|Q|prev提供给寄存器单元538。
控制器534控制第一个和第二个选择器540和546按照以下公式计算|Q|:
|Q|=(|Q|prev+nr)×α+d×(1-α) (5)
这一控制操作将参考图13来介绍。在图13中,控制器534在步骤1中控制第一个选择器540将nr和|Q|prev提供给第三个加法器544,将(1-α)和δ提供给乘法器542。第三个加法器544将nr跟|Q|prev加起来,并将|Q|prev+nr提供给第二个选择器546。乘法器542用(1-α)乘以δ,并将δ×(1-α)提供给第二个选择器546。控制器534控制第二个选择器546将第三个加法器544和乘法器542的输出反馈回寄存器单元538。
在步骤2中,控制器534控制第一个选择器540,将|Q|prev+nr和锁存在寄存器单元538中的ad提供给乘法器542。然后,乘法器542用α去乘|Q|prev+nr,并且将(|Q|prev+nr)×α提供给第二个选择器546。控制器534控制第二个选择器546,将(|Q|prev+nr)×α提供给寄存器单元538。
在步骤3中,控制器534控制第一个选择器540,将锁存在寄存器单元538中的(|Q|prev+nr)×α和δ×(1-α)提供给第三个加法器544。然后,第三个加法器544将(|Q|prev+nr)×α和δ×(1-α)加起来,并且将(|Q|prev+nr)×α+δ×(1-α)作为|Q|提供给第二个选择器546。控制器534控制第二个选择器546将|Q|提供给限幅器548。
如上所述,既然已经计算出来了|Q|,而且不是以实时的方式计算出来的,而是在第一个周期中计算出来的,所以控制器534就在上面的步骤中反复地重复利用第三个加法器544和乘法器542,以便降低对硬件的要求。
限幅器548将|Q|限制在0和nr之间,并输出一个最终的|Q|。这个最终的|Q|被提供给ER引擎208。
用于浮点计算的算术单元可以被用作第一个到第三个加法器510、522和544以及|Q|估计单元202中的乘法器542,以便提高计算精度。
图14是ER引擎208的一个框图。利用从|Q|估计单元202收到的|Q|计算ER将参考图14加以描述。
在图14中,ER引擎208中的数制转换器700将目标队列长度qT、第二个周期A和要用ER去乘的比较容限K从微处理器114到微处理器接口204转换成32位浮点数,并将它们提供给第一个选择器704。数制转换器700还将从|Q|估计单元202收到的|Q|,从队列计数器206收到的队列变化数和队列长度,以及从Nr校正器(没有画出)ndiff收到的Nr的变化,转换成32位的浮点数,并将它们提供给第一个选择器704。
增益选择器702选择一个用于增益控制的队列长度gTH,从微处理器114接收增益A0、A1、B0和B1,以及从寄存器单元714接收当前队列长度q,并比较gTH和q。如果q小于gTH,而且A1和B1从来没有被选作增益A和B,增益选择器702就将A0和B0选作A和B,并将它们提供给第一个选择器704。如果q小于gTH,而且已经将A1和B1选作增益A和B,增益选择器702就将A1和B1选作A和B,并将它们提供给第一个选择器704。如果q大于gTH,增益选择器702就将A1和B1选作A和B,并将它们提供给第一个选择器704。
图15是增益选择器702的一个框图。增益选择器702的操作将参考图15加以描述。
在图15中,减法器800从q中减去qTH。比较器802判断这个减法结果是否小于0。如果这个减法结果小于0,比较器802就输出0,如果这个减法结果大于0,比较器802就输出1。比较器802的输出被作为时钟信号提供给触发器804。触发器804被设置在初始状态,输出0,然后在时钟信号的上升沿通过它的输出端输出从它的输入端收到的1。由于q是从0逐渐增大的,所以触发器804输出0,直到q达到gTH,然后输出1而不管q如何变化。触发器804的输出被作为选择信号提供给第一个和第二个选择器806和808。第一个和第二个选择器806和808分别接收A0&A1和B0&B1。如果触发器804的输出是0,它们就将A0和B0作为A和B输出。如果触发器804的输出是1,它们就将A1和B1作为A和B输出。
下面将参考图16介绍增益选择器702的以上操作。
在图16中,增益选择器702在步骤900中判断q是否小于gTH。如果q小于gTH,增益选择器702就进入步骤902。否则,就跳到步骤904。在步骤902中,增益选择器702检查当前状态是不是将A1和B1选作A和B的初始状态。在初始状态中,增益选择器902在步骤906中将A0和B0选作A和B。
在初始状态和非初始状态采用不同的增益,以便使初始状态的ER迅速地进入稳态,其中ER是不稳定的,然后在稳定状态使ER的振荡最小。
在图14中,第一个选择器704在ER引擎控制器730的控制下,以浮点方式将从数制转换器700收到的qr、Δ、|Q|、队列变化数、队列长度和ndiff,从增益选择器702收到的A和B,以及从寄存器单元714收到的一些操作结果提供给乘法器706、除法器708和加法器710。乘法器706、除法器708和加法器710将收到的值用于乘法、除法和加法运算,并将运算结果输出给第二个选择器712。在ER引擎控制器730的控制下,第二个选择器将乘法器706、除法器708和加法器710的运算结果发送给寄存器单元714。寄存器单元714包括第一个寄存器部分716、第二个寄存器部分722和第三个寄存器部分728。第一个寄存器部分716包括第一个寄存器718,用于锁存从第二个选择器712收到的平均队列长度q,并将锁存的q输出给第一个选择器704和增益选择器702,还包括第二个寄存器720,用于锁存以前的qqprev,并将qprev输出给第一个信元选择器704。第二个寄存器部分722包括将从第二个选择器712收到的运算结果反馈给第一个选择器704。第三个寄存器部分728包括第三个寄存器724,用于锁存来自第二个选择器712的ER,并将锁存的ER提供给第一个选择器704和第四个选择器726,用于将锁存在第三个寄存器724中的ER作为前一个ER ERprev发送给第一个选择器704。
ER引擎控制器730控制着第一个和第二个选择器704和712,从而使乘法器706、除法器708和加法器710按照以下公式计算ER:
乘法器706、除法器708和加法器710中用于计算ER的ER引擎控制器730的控制操作将在下面参考图17加以描述。
参考图17,在步骤1中,ER引擎控制器730控制第一个选择器704发送从数制转换器700收到的队列变化数和队列长度给除法器708,将|Q|和ndiff发送给加法器710。然后,除法器708将队列长度除以队列变化数,并将除法运算结果作为q发送给第二个选择器712。加法器710将|Q|和ndiff加起来,并将(|Q|+ndiff)作为正确的|Q|发生给第二个选择器712。ER引擎控制器730控制第二个选择器712通过第一个寄存器714将从除法器708收到的q反馈回第一个选择器704,通过第二个寄存器部分722将从加法器710收到的正确的|Q|反馈回第一个选择器704。在这里,将q提供给增益选择器702,从而使增益选择器702能够通过比较q和gTH选择A和B。
在步骤2中,ER引擎控制器730控制第一个选择器704将从数制转换器700收到的Δ以及从增益选择器702有选择地收到的增益B发送给乘法器706。乘法器706将增益B跟Δ相乘,将乘积(1)发送给第二个选择器712。ER引擎控制器730控制第二个选择器712通过第二个寄存器部分722将(1)反馈回第一个选择器704。
在步骤3中,ER引擎控制器730控制第一个选择器704将锁存在第一个寄存器718中的q和锁存在第二个寄存器720中的qprev提供给加法器710,将(1)和正确的|Q|提供给除法器708。然后,加法器710从q中的减去qprev,将减法运算结果(2)提供给第二个选择器712。除法器708将(1)除以正确的|Q|,并将结果发送给第二个选择器712。ER引擎控制器730控制第二个选择器712通过第二个寄存器部分722将(2)反馈回第一个选择器704。
除法器708中的计算时间比加法器710中的计算时间要长。因此,虽然在加法器710中完成了(2)的计算,但是在除法器708中的运算仍在继续。
在步骤4中,ER引擎控制器730控制第一个选择器704将从数制转换器700收到的qr和锁存在第一个寄存器718中的q提供给加法器710。然后,加法器用q减去qr,并将减法运算结果(3)发送给第二个选择器712。ER引擎控制器730控制第二个选择器712通过第二个寄存器部分722将(3)反馈回第一个选择器704。
在步骤5中,ER引擎控制器730控制第一个选择器704将锁存在第二个寄存器722中的(2)和从增益选择器702收到的增益A提供给乘法器706。乘法器706将(q-qprev)乘以A,并将乘积(4)提供给第二个选择器712。ER引擎控制器730控制第二个选择器712通过第二个寄存器部分722将(4)反馈给第一个选择器704。
在步骤2~5中,除法器708用(1)除以正确的|Q|,并将除法运算结果(5)提供给第二个选择器712。ER引擎控制器730控制第二个选择器712通过第二个寄存器部分722将(1)/|Q|返回第一个选择器704。
在步骤6中,ER引擎控制器730控制第一个选择器704将从第二个寄存器部分722收到的(3)和(5)提供给乘法器706并将(4)和从第二个寄存器部分722收到的正确的|Q|提供给除法器708。乘法器706将(3)跟(5)相乘,并将乘积(6)提供给第二个选择器712。除法器708将(4)除以正确的|Q|,并将除法运算结果(7)提供给第二个选择器712。
ER引擎控制器730控制第二个选择器712通过第二个寄存器部分722将(6)和(7)反馈回第一个选择器704。
在步骤7中,ER引擎控制器730控制第一个选择器704将从第二个寄存器部分722收到的(6)和(7)提供给加法器710。加法器710将(6)和(7)加起来,并且将和(8)提供给第二个选择器712。ER引擎控制器730控制第二个选择器712通过第二个寄存器部分722将(7)反馈回第一个选择器704。
在步骤8中,ER引擎控制器730控制第一个选择器704将从第二个寄存器部分722收到的(8)和从第四个寄存器728收到的ERprev提供给加法器710。加法器710从ERprev中减去(8),并将和作为ER发送给第二个选择器712。ER引擎控制器730控制第二个选择器712通过第三个寄存器726将ER反馈回第一个选择器704。
在步骤9中,ER引擎控制器730控制第一个选择器704将从第三个寄存器726收到的ER和从数制转换器700收到的K提供给乘法器706。乘法器706通过将ER跟K相加,并通过第二个寄存器部分722将这个整数作为K*R输出,将浮点格式的ER转换成16比特整数。在这里,K*ER是从ER引擎208收到的最后的ER输出。
如上所述,ER计算不是以实时方式进行的,而是每个周期进行一次。所以,在步骤1~9中重复使用乘法器706、除法器708和加法器710,以减少对硬件的要求。
将浮点计算的运算单元用作乘法器706、除法器708和加法器710以提高计算精度。
图18是用来处理反向RM信元的反向信元处理单元212的框图。反向信元处理单元212的结构和操作将在下面参考图18加以描述。
在图18中,反向信元处理单元212中的UTOPIA接口1000提供UTOPIA接口。反向信元译码器1002从这个UTOPIA接口1000接收SOC信号和反向信元,并判断这个反向信元是不是源产生的RM信元。如果收到的信元是源产生的RM信元,反向信元译码器1002就从这个RM信元读取ER和MCR,并将它们提供给ER写入判决器1008。从ER写入判决器收到ER的时候,反向信元译码器1002将ER写入这个RM信元。还有,反向信元译码器1002按照从拥挤检测器1006收到的NI和CI标记RM信元中的NI或者CI。反向信元译码器1002接收具有ER的RM信元的CRC并从CRC校验和产生单元1004中接收标记过的NI/CI,并将CRC写入这个RM信元。CRC校验和产生单元1004从收到的反向RM信元检测CRC差错,为ER和NI/CI被标记过的RM信元产生CRC,并将这个CRC发送给反向信元译码器1002。拥挤检测器1006从微处理器108接收高队列门限qHT和低队列门限qLT。如果队列长度在qHT和qLT之间,拥挤检测器1006就认为这个网络是拥挤的,并将NI=1和CI=0提供给反向信元译码器1002。如果队列长度大于qHT,拥挤检测器1006就认为这个网络非常拥挤,并且将NI=1和CI=1提供给反向信元译码器1002。如果队列长度小于qLT,拥挤检测器1006就认为这个网络不拥挤,并且将NI=0和CI=0提供给反向信元译码器1002。ER写入判决器1008判断从反向信元译码器1002收到的RM信元的MCR跟从ER引擎208收到的ER的和是否小于输入的RM信元的ER。如果这个和小于输入的RM信元的ER,ER写入判决器208就将ER引擎208提供的ER提供给反向信元译码器1002。
图19是反向信元译码器1002的一个框图。参考图19,产生SOC信号的时候,信元单元1100开始计算反向时钟脉冲的个数,将这个计数值作为信元个数输出,并且用信元计数值代表整个RM信元的时候产生的复位信号来复位。每次信元计数说明RM信元中PTI位置的时候,比较器1102产生PTI时钟信号,每次信元计数说明消息类型位置的时候,产生DIR_BN时钟信号,每次信元计数说明ER位置的时候,产生ER时钟信号,每次信元计数说明MCR位置的时候产生MCR时钟信号,当信元计数对应于整个信元长度的时候,产生结束时钟信号。PTI、DIR_BN、ER、MCR和结束时钟信号按照反向时钟信号通过第一个寄存器单元1104从比较器1102输出。反相器(INV)将从第一个寄存器单元1104收到的EN时钟信号反相,并且将这个反相信号作为复位信号输出。第一个寄存器单元1104将PTI、DIR_BN、ER和MCR时钟信号分别用于PTI寄存器1106、DIR_BN寄存器1108、ER寄存器1110和MCR寄存器1112。
如果添加了一个4字节信头,信元缓冲器MUC 1114就从第二个寄存器1120读取16个信元比特,如果添加了一个5字节信头,就从第二个寄存器1120读出8个信元比特,从第一个寄存器1118读出8个信元比特。第二个寄存器单元1116按照反向时钟信号将收到的RM信元输出给PTI、DIR_BN、ER和MCR寄存器1106、1108、1110和1112。产生PTI、DIR_N、ER和MCR时钟信号的时候,这些寄存器锁存它们收到的数据。结果,这些寄存器分别锁存RM信元的PTI、消息类型、ER和MCR。RM信元检测器1132接收PTI和消息类型,以判断收到的反向信元是否源产生的反向RM信元。ER写入判决器1008接收ER和MCR,以判断是否在收到的RM信元中写入从ER引擎208收到的ER。
RM信元检测器1132通过检查包括在消息类型中的PTI和DIR&BN,判断对应的信元是不是源产生的反向RM信元。如果是源产生的反向RM信元,RM信元检测器1132就产生一个RM开始信号。
第一个到第五个寄存器418~426缓冲存储收到的正向信元,并且将缓存的SOC和空信号作为SOC和允许信号输出。
在第三个寄存器1122和第四个寄存器1126中间放置着一个NI&CI标记器1124。这个NI&CI标记器1124标记缓存在第三个和第四个寄存器1122和1126之间具有从拥挤检测器1006收到的NI和CI信息的RM信元的NI和CI。ER写入器1128放置在第四个寄存器1128和第五个寄存器1130之间。ER写入器1128将从ER写入判决器1008收到的ER写入缓存在第四个寄存器1126和第五个寄存器1130之间的RM信元的ER字段。NI和CI标记以及ER写入方法都是众所周知的,这里不再详细描述。
将ER写入缓存在第四个寄存器1126和第五个寄存器1130之间缓存的RM信元的理由是这个RM信元应当在ER写入判决器1008判断是否写入ER的这段时间内缓存起来,因为这一判决是在读出MCR以后作出的,而不管MCR的位置在ER之后。在本发明的优选实施方案中,用几个寄存器缓存收到的反向RM信元,从而防止不必要地使用存储器。
与此同时,微处理器108可以改变Nr而不给出通知,Nr的改变对每一计算都有很大的影响。因此,可以将一个Nr校正器添加在ABR业务引擎104中。
图20是Nr校正器的一个框图。参考图20,第一个寄存器1200锁存Nr,并将它提供给第二个寄存器1202和减法器1204。第二个寄存器1202将从第一个寄存器1200收到的Nr锁存起来作为前一个Nr。减法器1204通过从来自第一个寄存器1200的Nr中减去来自第二个寄存器1202的Nr获得Nr的变化,Ndiff。比较器1206判断Ndiff是不是0。如果Ndiff不是0,比较器1206就让加法器1208将前一个Nr和Ndiff加起来,从而校正Nr。校正过的Nr通过第三个寄存器1210作为前一个Nr传递给加法器1208。校正过的Nr被提供给|Q|估计单元202用于|Q|估计。
按照本发明的优选实施方案,ABR业务引擎按照这种方式来实施ABR业务算法,从而(1)保证最高链路使用率和最小信元损失,而不管ABR闭合环路中的RTD;(2)通过确保ABR队列的渐近稳定来最大限度地缩小对ABR队列长度的要求;(3)通过确保互相公平地共享可用带宽,保证基于ATM论坛标准的MAX-MIN公平性;(4)能够对通信网络环境的变化做出迅速反应,比方说对ABR用户个数和ABR带宽作出迅速反应;(5)包括EECI、RR和ER标记的所有功能都按照ATM论坛通信管理规范来制定;(6)通过保证渐近稳定工作点的存在,实现高使用率、低信元损失和MAX-MIN公平速率分配;(7)在多个时间尺度上,实现对网络负荷变化的高响应性,也就是在VBR和ABR VC的信元速率变化的级别上,以及在VBR和ABR VC的信元到达和离开级别上做到这一点;(8)这一算法需要的计算次数最少;和(9)通过实际上去掉每条VC操作,包括每条VC排队、每条VC计数和每个VC表访问,使其复杂程度很低并且可以伸缩。
在ABR业务引擎中,|Q|估计和ER计算都不是实时的,而是每个预定周期完成一次。周期性的|Q|估计和ER计算方便了控制操作,使得ABR业务引擎能够重复使用算术单元,从而最大程度地降低对硬件的要求。内部浮点计算是用浮点计算器完成的,从而使计算结果更加准确。
此外,ABR业务引擎通过在一些寄存器中缓存RM信元,判断是不是将ER写入RM信元来避免储存输入的反向RM信元。结果,存储器用得很少。
虽然描述本发明的时候参考了特定的优选实施方案,但是本领域里的技术人员应当明白,在形式和细节上可以有各种改变,而不会偏离后面的权利要求给出的本发明的实质和范围。
Claims (26)
1.分组交换系统中用于管理拥挤控制的一种可用比特率(ABR)业务引擎,包括:
一个正向信元处理单元,用于产生第一个开始信号,并从一个正向资源管理(RM)信元提取当前信元速率(CCR)和最小信元速率(MCR);
一个定时器,用于发送第二个开始信号和第三个开始信号;
一个估计单元,用于响应第二个开始信号针对一段预先确定的时间段累加贡献程度(δ)和确定瓶颈虚电路个数(|Q|);
一个显式速率(ER)引擎,用于响应第三个开始信号,周期性地发送当前ER给估计单元和计算新的显式速率(ER);和
一个反向信元处理单元,用于将计算出来的新的ER写入一个反向RM信元。
2.权利要求1的ABR业务引擎,其中当从正向信元收到的CCR和MCR之间的差(CCR-MCR)小于从ER发送的当前ER的时候,响应第一个信号确定瓶颈虚电路个数(|Q|)。
3.权利要求2的ABR搜索引擎,其中的贡献程度(δ)是响应第二个开始信号,通过将(累加的贡献程度×(1-低通滤波参数))和((前一个|Q|+总的|Q|)×低通滤波参数)加起来累加起来的,其中的低通滤波参数是从微处理器收到的,贡献程度的累加是通过将正向RM信元传输周期除以(第一个周期×CCR)并且将除法运算结果加到前一个贡献程度上去得到的。
4.权利要求3的ABR搜索引擎,其中新的ER是通过响应第三个开始信号将前一个ER减去(((平均队列长度-前一个平均队列长度)×第一个增益)/计算出来的|Q|+((平均队列长度-目标队列长度)×((第二个增益×第三个开始信号周期)/计算出来的|Q|))计算出来的。
5.权利要求1的ABR搜索引擎,还包括一个反向信元处理单元,用于在收到反向RM信元的时候判断ER引擎计算出来的新的ER是否小于从反向RM信元提取出来的ER跟MCR的和,如果这个新的ER小于ER跟MCR的和,就将计算出来的新的ER写入一个反向RM信元。
6.权利要求1的ABR业务引擎,收到的正向RM信元中没有任何差错的时候其中的正向信元处理单元只产生第一个开始信号。
7.权利要求1的ABR业务引擎,其中具有第一个长度和第二个长度的一个信头被添加到RM信元上去。
8.权利要求7的ABR业务引擎,其中的正向信元处理单元包括一个信元缓冲器多工器,用于安排正向RM信元和具有第一个长度或者第二个长度的信头,用于输出正向RM信元的开始位置。
9.权利要求4的ABR业务引擎,还包括一个队列计数器,用于接收用于队列写的队列写信号和用于从一个输入/输出缓冲器管理单元进行队列读的队列读信号,用于管理输入/输出排队和产生队列变化数和队列长度。
10.权利要求9的ABR业务引擎,其中的正向信元处理单元从队列计数器接收队列长度,如果这个队列长度大于预先确定的EFCI拥挤门限,就用于标记正向数据信元的EFCI(显式正向拥挤说明)。
11.权利要求10的ABR业务引擎,其中的正向信元处理单元包括多个寄存器,用于从正向RM信元提取CCR和MCR,并且在EFCI标记期间缓存正向RM信元。
12.权利要求1的ABR业务引擎,其中的正向信元处理单元包括:
一个信元单元计数器,用于给正向时钟脉冲计数,并输出一个信元计数;
一个比较器,如果信元计数说明正向RM信元中DIR(方向)_BN(BECN)的位置,就产生第一个时钟信号,如果这个信元计数说明正向RM信元中CCR的位置,就产生第二个时钟信号,如果信元计数说明正向RM信元中MCR的位置,就产生第三个时钟信号,如果信元计数说明正向RM信元的结束,就产生一个复位信号、
第一个寄存器,收到第一个时钟信号的时候,用于锁存经过的正向信元的一部分;
第二个寄存器,收到第二个时钟信号的时候,用于锁存经过的正向信元的一部分,并将锁存的比特作为CCR提供;
第三个寄存器,收到第三个时钟信号的时候,用于锁存经过的正向信元的一部分,并将锁存的比特作为MCR提供;和
一个检测器,用于在第一个寄存器中正向信元一部分的基础之上判断正向信元是否源产生的RM信元,如果这个正向信元是源产生的RM信元,就产生第一个开始信号。
13.权利要求3的ABR业务引擎,其中的反向信元处理单元包括一个信元缓冲器多工器,用于安排反向RM信元和具有第一个长度或者第二个长度的信头,并且用于输出反向RM信元的开始部分。
14.权利要求9的ABR业务引擎,其中的反向信元处理单元从队列计数器收到队列长度的时候,执行以下步骤:判断队列长度是否大于一个预先确定的拥挤门限或者预先确定的一个严重拥挤门限,如果这个队列长度在拥挤门限和严重拥挤门限之间,就标记反向RM信元的NI(不增加),如果这个队列长度大于严重拥挤门限,就标记反向RM信元的NI和CI(拥挤说明)。
15.权利要求14的ABR业务引擎,其中的反向信元处理单元包括多个寄存器,用于从反向RM信元提取ER,标记反向RM信元中的NI和CI,和将新的ER写入反向RM信元的时候缓存反向RM信元。
16.权利要求1的ABR业务引擎,其中的反向信元处理单元包括:
一个信元单元计数器,用于对反向时钟脉冲进行计数,和输出一个信元计数;
一个比较器,如果信元计数说明反向RM信元中ER的位置,就产生第一个时钟信号,如果信元计数说明反向RM信元的MCR的位置,就产生第二个时钟信号,如果计数说明反向RM结束就产生第三个时钟信号;
第一个寄存器,收到第一个时钟信号的时候用于锁存经过的反向信元的一部分,并将锁存的比特作为ER输出;
第二个寄存器,收到第二个时钟信号的时候用于锁存经过的反向信元的一部分,并将锁存的比特为MCR输出;和
一个ER写入器,如果新的ER小于锁存在第一个寄存器中的ER跟锁存在第二个寄存器中的MCR的和,就将ER引擎计算出来的新的ER写入反向RM信元。
17.权利要求16的ABR业务引擎,其中的反向信元处理单元还包括一个差错检测和产生单元,用于检测反向信元是否有差错,并产生差错校正码,还用于将差错校正码加到写入ER的反向RM信元上去。
18.权利要求1的ABR业务引擎,还包括一个微处理器,用于提供估计|Q|的参数和计算更新过的ER和新的ER。
19.权利要求1的ABR业务引擎,其中的|Q|估计单元包括:
一个判决器,收到第一个开始信号的时候,用于将更新过的ER转换成浮点数,将MCR和这个浮点数加起来,比较MCR跟浮点数的和以及CCR,当CCR小于这个和的时候,就认为收到的RM信元对|Q|有贡献;
一个贡献程度计算器,用于将CCR转换成浮点数,将这个浮点数除以(正向RM信元传输周期/第一个周期),将除法运算结果和前一个|Q|加起来,如果判决器认为收到的RM信元对|Q|有贡献,就将这个和作为贡献程度输出;和
一个|Q|计算器,收到第二个开始信号的时候,用于从贡献程度计算器接收贡献程度,并通过将(浮点格式的(累加的贡献程度)×(1-低通滤波参数)和(浮点格式的(前一个|Q|+总的|Q|)×(低通滤波参数))进行浮点加来计算|Q|。
20.权利要求19的ABR业务引擎,其中的|Q|计算器包括:
一个计算器,用于从1中减去低通滤波参数;
一个寄存器单元,用于锁存从贡献程度计算器收到的贡献程度、计算机的输出、低通滤波参数、总的|Q|和前一个|Q|;
第一个选择器,用于选择锁存在寄存器单元中的一些值;
一个乘法器,用于以浮点方式乘第一个选择器的输出;
一个加法器,用于以浮点方式加第一个选择器的其它输出;
用一个限幅器,用于将计算出来的|Q|限制在总的|Q|和0之间;
第二个选择器,用于有选择地将乘法器和加法器的输出提供给限幅器或者寄存器单元;和
一个控制器,收到第二个开始信号的时候,用于控制第一个选择器将锁存在寄存器单元中的前一个|Q|和总的|Q|提供给加法器,并将计算器的输出和贡献程度提供给乘法器,控制第二个选择器将加法器和乘法器的输出作为第一个和第二个运算结果输出给寄存器单元,控制第一个选择器将第一个运算结果和低通滤波参数提供给乘法器,控制第二个选择器,将乘法器的输出作为第三个运算结果提供给寄存器单元,控制第一个选择器,将第二个和第三个运算结果提供给加法器,控制第二个选择器,将加法器的输出提供给限幅器。
21.权利要求19的ABR业务引擎,还包括一个校正器,用于校正总的|Q|的变化。
22.权利要求9的ABR业务引擎,其中的ER引擎通过将队列长度除以队列变化数来计算平均队列长度,并将平均队列长度作为前一个平均队列长度储存起来。
23.权利要求9的ABR业务引擎,其中的ER引擎包括:
一个数制转换器,用于将目标队列长度、第二个信号、|Q|、队列变化数和队列长度转换成浮点格式;
第一个选择器,用于有选择地提供从数制转换器收到的参数以及第一个和第二个增益;
一个乘法器,用于以浮点方式乘第一个选择器的输出的一部分;
一个除法器,用于以浮点方式除第一个选择器的输出的一部分;
一个加法器,用于以浮点方式加第一个选择器的输出的一部分;
第二个选择器,用于输出从选中的路径中乘法器、除法器和加法器收到的运算结果;
第一个锁存单元,用于将从第二个选择器收到的平均队列长度作为前一个平均队列长度锁存起来;
第二个锁存单元,用于将从第二个选择器收到的ER作为前一个ER锁存起来;
第三个锁存单元,用于将从第二个选择器收到的运算结果锁存起来;和
一个控制器,在收到第三个开始信号的时候,用于控制第一个选择器将队列长度和队列变化数提供给除法器,控制第二个选择器将从除法器收到的平均队列长度提供给第一个锁存单元,控制第一个选择器将第二个增益和第二个周期提供给乘法器,控制第二个选择器将乘法运算结果作为第一个运算结果提供给第三个锁存单元,控制第一个选择器将锁存在第一个锁存单元中的平均队列长度和前一个队列长度提供给加法器,从平均队列长度减去前一个平均队列长度,以及将第一个运算结果|Q|提供给除法器,控制第二个选择器将减法运算结果作为第二个运算结果提供给第三个锁存单元,控制第一个选择器将平均队列长度和目标队列长度提供给加法器,从平均队列长度中减去目标队列长度,控制第二个选择器将减法运算结果作为第三个运算结果提供给第三个锁存单元,控制第一个选择器将第二个运算结果和第一个增益提供给乘法器,控制第二个选择器将乘法运算结果作为第四个运算结果,将除法器的除法运算结果作为第五个运算结果提供给第三个锁存单元,控制第一个选择器将第三个和第五个运算结果提供给乘法器,将第四个运算结果和|Q|提供给除法器,控制第二个选择器,将乘法运算结果作为第六个运算结果,除法运算结果作为第七个运算结果提供给第三个锁存单元,控制第一个选择器将第六个和第七个运算结果提供给加法器,控制第二个选择器将加法运算结果作为ER提供给第二个锁存单元,然后控制第一个选择器将锁存在第二个锁存单元内的前一个ER和ER提供给加法器,从前一个ER中减去ER,控制第二个选择器将减法运算结果作为最终的ER提供。
24.权利要求19的ABR业务引擎,其中的ER引擎将最终的ER乘以一个预定参数。
25.权利要求24的ABR业务引擎,其中的ER引擎通过将现有的总的|Q|加上现有的总的|Q|的变化校正用于ER计算的总的|Q|。
26.权利要求24的ABR业务引擎,其中的ER引擎还包括一个增益选择器,用于接收可以用作第一个增益和第五个增益的第三个和第四个增益,以及能够用作第二个增益的第六个增益,如果平均队列长度小于预定门限或者从来不大于这个门限,就将第三个增益选作第一个增益,将第五个增益选作第二个增益,如果平均队列长度大于预定门限或者已经大于这个预定门限,就将第四个增益选作第一个增益,将第六个增益选作第二个增益。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15742199P | 1999-10-02 | 1999-10-02 | |
US60/157,421 | 1999-10-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1339210A true CN1339210A (zh) | 2002-03-06 |
Family
ID=22563640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 00803313 Pending CN1339210A (zh) | 1999-10-02 | 2000-10-02 | 分组交换系统中的可用比特率业务引擎 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1135895A1 (zh) |
JP (1) | JP2003511907A (zh) |
KR (1) | KR100383571B1 (zh) |
CN (1) | CN1339210A (zh) |
CA (1) | CA2351352A1 (zh) |
WO (1) | WO2001026306A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AUPR918101A0 (en) * | 2001-11-30 | 2001-12-20 | Foursticks Pty Ltd | Rate limiting through dynamic auto correction |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3686493B2 (ja) * | 1996-03-07 | 2005-08-24 | 富士通株式会社 | Atm交換機におけるフィードバック制御方法および装置 |
ATE272919T1 (de) * | 1996-03-20 | 2004-08-15 | Cit Alcatel | Verfahren zur kontrolle der datenstromgeschwindigkeit, des warteschlangenetzknoten und des paketvermittlungsnetzwerkes |
US5754530A (en) * | 1996-04-18 | 1998-05-19 | Northern Telecom Limited | Flow control of ABR traffic in ATM networks |
DE69736623T2 (de) * | 1996-06-27 | 2006-12-21 | Xerox Corp. | Paketvermitteltes Kommunikationssystem und Verfahren zur Verkehrsformung |
US5909443A (en) * | 1997-01-03 | 1999-06-01 | International Business Machines Corporation | ATM network congestion control system using explicit rate cell marking |
KR100246568B1 (ko) * | 1997-12-10 | 2000-03-15 | 김영환 | 비동기전송방식망에서 에이비알전송을 위한 전송대역예측장치 |
KR20000035007A (ko) * | 1998-11-10 | 2000-06-26 | 포만 제프리 엘 | 네트워크 적재에 따른 연속 비트율의 가상 패스 접속의 대역폭을 동적으로 조절하기 위한 패킷 교환망에서의 방법 및 시스템 |
-
2000
- 2000-10-02 KR KR10-2000-0057889A patent/KR100383571B1/ko not_active IP Right Cessation
- 2000-10-02 JP JP2001529148A patent/JP2003511907A/ja active Pending
- 2000-10-02 WO PCT/KR2000/001099 patent/WO2001026306A1/en not_active Application Discontinuation
- 2000-10-02 CA CA002351352A patent/CA2351352A1/en not_active Abandoned
- 2000-10-02 CN CN 00803313 patent/CN1339210A/zh active Pending
- 2000-10-02 EP EP00966568A patent/EP1135895A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CA2351352A1 (en) | 2001-04-12 |
WO2001026306A1 (en) | 2001-04-12 |
JP2003511907A (ja) | 2003-03-25 |
EP1135895A1 (en) | 2001-09-26 |
KR100383571B1 (ko) | 2003-05-14 |
KR20010050809A (ko) | 2001-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6205151B1 (en) | ATM cell scheduler which uses a heap memory and associates timestamps with each channel | |
US6408005B1 (en) | Dynamic rate control scheduler for ATM networks | |
US6134217A (en) | Traffic scheduling system and method for packet-switched networks with fairness and low latency | |
EP0924954B1 (en) | ATM cell transmissions | |
US6396843B1 (en) | Method and apparatus for guaranteeing data transfer rates and delays in data packet networks using logarithmic calendar queues | |
EP0936834B1 (en) | Method and apparatus for controlling traffic flows in a packet-switched network | |
US7471688B2 (en) | Scheduling system for transmission of cells to ATM virtual circuits and DSL ports | |
US7333436B2 (en) | Network device with traffic shaping functions and bandwidth control method using leaky bucket algorithm | |
Guo | SRR: An O (1) time-complexity packet scheduler for flows in multiservice packet networks | |
WO2000079829A1 (en) | A measurement-based connection admission control (mbac) device for a packet data network | |
WO2002003612A2 (en) | Technique for assigning schedule resources to multiple ports in correct proportions | |
CA2407293A1 (en) | Telecommunications traffic regulator | |
CN1339210A (zh) | 分组交换系统中的可用比特率业务引擎 | |
US6891798B1 (en) | Estimating equivalent bandwidth capacity for a network transport device using on-line measurements | |
EP1413950A2 (en) | Calendar heap system and method for efficient sorting | |
Xu et al. | Profit-oriented resource allocation using online scheduling in flexible heterogeneous networks | |
Lin et al. | Integration of scheduling real-time traffic and cell loss control for ATM networks | |
KR950012323B1 (ko) | 광대역 종합 정보 통신망에서의 헤더 데이타 제어장치 | |
Dubois et al. | High Speed Video Transmission for Telemedicine using ATM Technology. | |
Kanhere et al. | Prioritized elastic round robin: an efficient and low-latency packet scheduler with improved fairness | |
Charny | Hierarchical relative error scheduler: an efficient traffic shaper for packet switching networks | |
US5974029A (en) | Method for limiting the transmission of data generated by a data source | |
AU2001252037B2 (en) | Telecommunications traffic regulator | |
Sharma et al. | Some algorithms for discrete time queues with finite capacity | |
Pyun et al. | Removing unnecessary buffers and timers in EDF scheduler with regulators in fixed-sized packet networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |