流量管理结构体系的制作方法

文档序号:7587520阅读:161来源:国知局
专利名称:流量管理结构体系的制作方法
技术领域
本发明涉及流量的管理,诸如数据和通信流量,并提供一种用于流量管理器的结构体系,其从速度、效率和稳定性都超过了已知的流量管理方案。
背景技术
现代流量管理方案必须对付的问题就是绝对容量(sheer volume)。数据以未知速率和容量从多个源达到流量处理机,并且必须被接收、排序并快速地传送到下一个下游处理。所接收的数据可以与多个属性相关联,通过其例如根据提供到单个客户的业务类型对单个数据包或流进行优先级分配。因此,在后到达但具有高优先级的流量被处理时,某些流量可能必须排队。路由器的转换结构可以将来自多个入口的包传送到多个出口中的一个。与该出口连接的线卡然后必须通过某些通信介质将这些包传输到网络中的下一个路由器。传输的速率一般限制为标准速率。例如,OC-768链路在光纤上的传输包的速率是40Gbits/s。
使用多个独立的入口路径来传送在出口传输的包,对于该范例,传送的时间平均速率可以不超过40Gbits/s。虽然在时间上输入和输出速率是相等的,但是随着速率峰值通常高于40Gbits/s的阈值,由该结构进行的短期流量传送实际上是爆破”。由于接收速率可以大于传输速率,在出口需要进行短期的包入队,以防止包丢失。为此,向所有包提供平缓级别业务的路由器采用简单的FIFO队列。然而在提供流量管理的路由器中需要更复杂的方案。在汇聚网际中,不同端的用户应用程序要求不同级别的业务,以高效地运行。电子邮件以尽力而为型(best effort)业务进行,其不保证传送的速率或延迟。实时语音数据对保留传输带宽具有更高的要求并且保证具有最小的传送延迟。如果所有的流量都在相同的FIFO队列中缓冲,就不能实现这一点。于是,需要经由所谓“业务类别”的队列,使得通过高优先级队列路由的流量可以绕开低优先级队列的流量。某些队列也可以确保有效输出线带宽的有保证部分。起初看来,流量处理任务看起来是直通的。根据所要求的包的业务类别别将它们放置在队列中。对于系统提供的每个向前处理,必须实现队列。然后通过下面的机制管理这些队列队列管理向队列分配缓冲空间,并防止溢出;如果队列积压起来,采取措施,以使得流量源降低它们的传输速率;调度通过在队列之间划分有效输出线带宽来控制出列处理。
可以通过对分配给不同队列的带宽量和缓冲空间进行加权,并通过在拥塞的时候将列为优先的包丢弃,提供不同的业务级别。加权公平排队(WFQ)、差额循环调度(DRR)、加权早期随机检测(WRED)只是少数几个可以用来进行这些调度和拥塞避免任务的算法。实际上,某些困难的实现方法使得系统实现变得混乱在短的拥塞事件中,高线速度可以使得大量的包积压快速发展。对于40Gbits/s的线速率需要500MBytes至lGBytes数量级的大存储器。
由于来自转换结构的超高速的包传送速率,包到达速率可以非常高。这就要求存储器中具有较高的数据读写带宽。更重要的是,也要求较高的地址带宽。
某些调度和拥塞避免算法的处理开销较高。
在高速度时,用于某些(FQ)调度算法的优先级队列排序并不是小问题。
在支持调度和拥塞避免算法中必须维持相当大量的状态,要求对其进行低延迟的访问。大量的状态增加了所实现的队列的数量。
由于出现新的标准和算法,该规范是活动目标。因此,为了找到灵活的(理想编程的)方案,该方案就是高的优先级。
在常规的流量调度方案中,一种方案典型地会将到达的包直接放入适当的队列中,并然后接着将这些包出列,并进入输出流。
图1所示为当前流量管理方案的基本布局结构。其可以看作为“先排队,后考虑”策略。在输入1接收到的数据被分成多个并行队列2.1至2.n。流量调度器处理器3接收来自这些并行通道的数据并将它们顺序排列。例如,可以通过上述优先级属性确定顺序。状态存储在可以被处理器访问的存储器4中。从处理器的输出表示由该处理器根据在开始分配给该数据的业务质量属性所确定的新的顺序。
流量调度器3确定出列的顺序。由于调度判决随着输入队列数量的增加而可能会是较强的处理,队列通常被设置成被本地调度到中间输出队列的小组。该输出队列然后是下面的调度过程的输入队列。于是使用“各个击破法”方式将该调度问题简化,其中通过树形结构的队列组之间的并行性或者所谓的分层链路共享方案可以得到较高的性能。
这种方式一直工作到现在。对于每个流的流量处理所需要的超常大量的输入队列(数量级为64k),第一阶段变得不可管理的宽,以至于无法实现所需要数目的调度器。
可替换地,在将所有流量汇聚成为少量队列的系统中,无法开发硬件调度器之间的并行性。即使在优化的硬件中,其然后变得极其难以实现可以满足所需要的性能点的单个调度器。
除了调度之外,执行其它拥塞避免和队列管理任务,显然需要新的方式来进行流量处理。先排队,后考虑的策略通常失效,并且数据必须简单地丢弃。因此需要一种流量管理方式,其不会具有现有技术的缺陷并且不会引入其所拥有的可误性。

发明内容
本发明的一方面提供一种系统,包括用于在将输入数据包存储到存储器之前实时地对所述包进行排序的装置。
本发明的另一方面提供一种数据包处理系统,包括其中可以在将输入数据包存储在存储器之前对其分配退出顺序的装置。
本发明的还有另一方面提供一种用于对输入数据包进行实时排序的方法,包括在将它们存储在存储器之前将这些包按照退出顺序排列。
该排序装置可以响应于包含在包中和/或包含在表中的信息和/或与所述包位于其中的数据包流相关联的信息,从而为该包确定退出顺序编号。
可以通过队列管理器将包插入到一个或多个队列中,其用来按照退出顺序将包插入到该队列装置中。可以有用来在将某些包从所述队列装置输出之前,或者将其排入该队列装置之前将其丢弃的装置。
该系统可以是这样的该排序装置和该队列装置只处理包含关于该包的信息的包记录,从而根据为对应的包记录所确定的退出顺序,将该包的数据部分存储在用于输出的存储器中。
该排序装置优选地包括并行处理器,诸如阵列处理器,更优选地包括SIMD处理器。
可以有进一步的装置,用来为并行处理器提供对共享状态的访问。状态引擎可以控制对共享状态的访问。
可以提供用于对所述包或所述包记录进行排序的信息表,其中将所述表本地存储到每一处理器或并行处理器的每一处理器元件。每一处理器或并行处理器的每一处理器元件上的表可以是相同的。不同的处理器或并行处理器的不同处理器元件上的表可以是不同的。
该处理器或处理器元件可以共享来自各个表的信息,使得(a)通过不同处理器可以直接地访问保持在一个处理器的表中的信息,或者通过该处理器的其它处理元件可以访问保持在一个处理器元件的表中的信息;和(b)处理器可以访问其它处理器中的表,或者处理器元件可以访问该处理器中的其它处理器元件,从而处理器或处理器元件可以代表该处理器的其它处理器或处理器元件执行表查找。本发明也包含有计算机系统,包括如前所述的数据处理系统;网络处理系统,包括如前所述的数据处理系统;以及数据载体,包含用于执行对应的方法的程序装置。


将参照下面的附图描述本发明,其中图1为现有技术流量处理器的示意性表示;和图2为根据本发明的流量处理器的示意性表示。
具体实施例方式
本发明现在开始考虑其题目。图2示意性地所示为用于高效流量管理的新策略下的基本结构。其可以描述为“先考虑,后排队TM”策略。
在输入20处接收到的包数据(流量)具有剥离的报头部分和从其产生的固定长度的记录部分,包含关于该数据的信息,使得可以分开地处理该记录部分和该数据部分。于是,数据部分占用下端路径并存储在存储集线器21中。在该步骤中,并不试图按照任何特定的顺序组织这些数据部分。然而,该记录部分被传送到处理器22,诸如SIMD并行处理器,其包括处理器元件(PE)的一个或多个阵列。典型地,每一PE包含其自己的处理器单元、本地存储器和寄存器。
相比于在图1中所示的现有技术的体系结构,本发明的体系结构在与PE阵列通信的状态引擎(未示出)的控制下共享该PE阵列中的状态23。应该强调的是,在该PE阵列中只处理记录部分。记录部分的长度都相同,从而它们的处理是可断定的,至少在长度方面。
该记录部分在处理器22中被处理。这里,有关于该输入包的信息分布在该PE阵列中。该阵列基本上执行与现有技术(图1)的处理器3相同的功能,但是为了显著更快速的处理,这些操作分布在该PE阵列上。该处理高效地对包记录进行“时戳”,以表示对应的数据何时应该退出,例如假定其实际上应该退出并不被丢弃。将该处理的结果发送到顺序列表管理器24,其是“智能”队列系统,按照适当的退出顺序将该记录部分例如放置在分配给数据退出顺序编号的组的仓组(bin)中。该管理器24优选地是动态的,使得具有比适当的退出编号仓组中已经有的数据包有更高优先级的退出编号的新数据包可以占用前面所分配的位置。应该注意的是,该PE阵列22简单地计算输出该数据部分的顺序,但是该记录部分它们自己并不必须按照该顺序放入。换言之,该PE并非必须保持所处理的包的顺序,或者在它们排队之前对它们排序。
因为保持整个包的完整性的固有困难,还提供足够的带宽来处理该组合,其中报头和数据部分当作一个整体对待的前面的系统变得不适用、缓慢并且烦琐。在本发明中,该存储集线器21只需要提供仅处理该数据部分的足够带宽。该存储集线器可以处理实时流入的包。该存储集线器不仅可以将较大的数据部分划分成段,而且如果需要,并可以将它们物理地存储在不同的位置,当然假定要存在指向不同段的指针,以确保读出这些数据包的整个内容。
为了克服在阵列的全部PE上共享状态的问题,允许多个PE访问(并修改)该状态变量。这种访问是在状态引擎(未示出)的控制下进行的,其自动地处理对共享状态的并行访问的“串行化”问题。
输出25独立于该退出顺序队列保持在顺序列表管理器24中,指导存储集线器21按照所需要的顺序读出对应的包,从而为在该处理中新接收到的数据包释放存储位置。
包含PE阵列22、共享状态/状态引擎23和顺序列表管理器24的点划线26表明元件的该组合可以放置在单个芯片上,并且可以复制该芯片,使得可以有一个或两个(或多个)与单个输入20、输出25和存储集线器21接口的芯片。习惯性的,该芯片也可以包括必要的附加组件,诸如每个PE的分配器和收集器,以将数据分配到各个PE和从PE收集处理后的数据,以及信号量方框和界面元件。
下面的特征对于该新结构体系比较重要没有单独的、物理阶段的一个输入队列。
包在到达时高效地直接排序到输出队列中。于是,在单个输出队列中交织在一起的意义上,存在一组输入队列。
这些交织的“输入队列”通过该队列状态引擎中的状态表示。该状态可以跟踪队列占用、结束时间/该队列中最后一个包的编号等。占用可以用来确定新到达的包是否应该放在输出队列中,或者是否应该将其丢弃(拥塞管理)。结束编号用来保持该输出队列中“输入队列”的顺序,并用来为新到达的包在该输出队列中确定适当的位置(调度)。
于是在进行排队之前“迅速地”进行调度和拥塞避免判决(即“先考虑,后排队”TM)。
通过使用可以以网速执行所想要的功能的高性能数据流处理器有可能实现该技术。本申请人的阵列处理器用于该目的比较理想,对于以与每一对系统时钟周期之一一样高的速率到达的包,其可以提供每包大量的处理周期。
辅助特征业务类别(CoS)表CoS参数在调度和拥塞避免计算中使用。它们通常由处理器从共享存储器中的业务类别表中作为固定组的值读取。这样就对系统总线和存储器访问带宽有进一步的要求。该表的大小也限制了可以存储的不同业务类别的数目。
本申请人的阵列处理器具有快速、并行本地存储器访问的内在能力。使用其可以具有下面的优点业务类别表映射到每一PE存储器中。这就意味着所有的被动状态并不需要从外部存储器中查找。可以使用SIMD处理器的大量内部存储器寻址带宽。
通过以大量并行方式执行本地存储器中的多个查找,而不是从共享外部表中进行单个大量查找,可以从相对较小量的存储器中得到大量的不同业务类别的组合。
在PE与PE之间共享的表可以执行代表彼此的代理查找。因此,单个CoS表可以在两个PE上划分,于是减半了存储要求。
总结于是,可以理解的是,本发明可以提供下面的关键特征,对现有技术进行相当大的改进传统的包调度包含并行排队,并然后从这些队列进行串行化的调度。对于高性能的流量处理,我们必须对此进行改变。首先并行地处理到达的包,并然后将其排入串行顺序列表。这称为“先考虑,后排队”TM。
单个管线并行处理体系结构(本申请人的阵列处理器)的使用是流量处理应用中具有发明性的。其提供了网速处理能力,这是实现这种概念的关键。
为了解决在高速流量处理中所提出的处理,于是使用替换形式的并行化(相比于独立的并行调度器)。
权利要求
1.一种系统,包括用于在将输入数据包存储到存储器中之前实时地对所述包进行排序的装置。
2.一种数据包处理系统,包括其中在将输入数据包存储在存储器之前对其分配退出顺序的装置。
3.如权利要求1或权利要求2中所述的系统,其中该排序装置响应于包含在包中的信息,从而为该包确定退出顺序编号。
4.如权利要求2中所述的系统,其中该排序装置响应于包含在表中的信息,从而为该包确定退出顺序编号。
5.如权利要求2中所述的系统,其中该排序装置响应于与所述包位于其中的数据包流相关联的信息,从而为该包确定退出顺序编号。
6.如权利要求1或权利要求2中所述的系统,包括队列装置,用于按照退出顺序对所排序的包进行排队用于输出。
7.如权利要求6中所述的系统,其中所述排序装置按照退出顺序将所排序的包插入到所述队列装置中。
8.如权利要求6或7中所述的系统,其中所述队列装置是单个队列。
9.如权利要求8中所述的系统,其中所述单个队列提供多个虚拟队列。
10.如权利要求6中所述的系统,进一步包括队列管理器,用于按照退出顺序将包插入到所述队列装置中。
11.如权利要求6中所述的系统,进一步包括用于在从所述队列装置输出某些包之前将其丢弃的装置。
12.如权利要求6中所述的系统,进一步包括用于在将某些包排入所述队列装置之前将其丢弃的装置。
13.如前述任一权利要求所述的系统,其中所述排序装置和所述队列装置只处理包含关于所述包的信息的包记录;和根据为对应的包记录所确定的退出顺序,将所述包的数据部分存储在所述存储器中用于输出。
14.如前述任一权利要求所述的系统,其中所述排序装置包括并行处理器。
15.如权利要求14中所述的系统,其中所述并行处理器是阵列处理器。
16.如权利要求14中所述的系统,其中所述阵列处理器是SIMD处理器。
17.如权利要求14、15或16中所述的系统,进一步包括用于为所述并行处理器提供对共享状态的访问的装置。
18.如权利要求17中所述的系统,进一步包括状态引擎,用来控制对所述共享状态的访问。
19.如权利要求1至18中任一项所述的系统,进一步包括用于对所述包或所述包记录进行排序的信息表,其中将所述表本地存储到每一处理器或并行处理器的每一处理器元件。
20.如权利要求19中所述的系统,其中每一处理器或并行处理器的每一处理器元件上的所述表是相同的。
21.如权利要求19中所述的系统,其中不同的处理器或并行处理器的不同处理器元件上的所述表是不同的。
22.如权利要求19中所述的系统,其中所述处理器或处理器元件共享来自它们各自的表的信息,使得(a)通过不同处理器可直接地访问保持在一个处理器的表中的信息,或者通过该处理器的其它处理元件可访问保持在一个处理器的表中的信息;和(b)处理器可访问其它处理器中的表,或者处理器元件可访问该处理器中的其它处理器元件,从而处理器或处理器元件可以代表该处理器的其它处理器或处理器元件执行表查找。
23.如前述任一权利要求所述的系统,其中所述排序装置根据预定的标准,诸如WFQ、DFR、拥塞避免(例如WRED)或其它优先化,实施用于包调度和排序的算法。
24.一种用于对输入数据包进行实时排序的方法,包括在将它们存储在存储器之前将这些包排序成为退出顺序。
25.如权利要求24中所述的方法,其中该排序响应于包含在包中的信息,从而为该包分配退出顺序编号。
26.如权利要求24中所述的方法,其中该排序响应于包含在表中的信息,从而为该包确定退出顺序编号。
27.如权利要求24中所述的方法,其中该排序响应于与所述包位于其中的数据包流相关联的信息,从而为该包确定退出顺序编号。
28.如权利要求24中所述的方法,进一步包括按照退出顺序对所排序的包进行排队用于输出。
29.如权利要求28中所述的方法,其中按照退出顺序将所排序的包插入到队列装置中。
30.如权利要求28中所述的方法,包括在队列管理器的控制下按照退出顺序将所排序的包插入到队列装置中。
31.如权利要求29或30中所述的方法,其中使用单个输出队列执行所述排队。
32.如权利要求31中所述的方法,进一步包括通过所述单个输出队列提供多个虚拟队列。
33.如权利要求28中所述的方法,进一步包括在从所述队列装置输出某些包之前将其丢弃。
34.如权利要求28中所述的方法,进一步包括在将某些包排入所述队列装置之前将其丢弃。
35.如权利要求24-34的任一项所述的方法,其中所述排序和所述排队操作只对包含关于所述包的信息的包记录进行处理;所述方法进一步包括根据为对应的包记录所确定的退出顺序,将所述包的数据部分存储在所述存储器中用于输出。
36.如权利要求24-34的任一项所述的方法,其中通过并行处理器执行所述排序。
37.如权利要求36中所述的方法,其中所述并行处理器是阵列处理器。
38.如权利要求36中所述的方法,其中所述阵列处理器是SIMD处理器。
39.如权利要求36、37或38中所述的方法,进一步包括在状态引擎的控制下为所述处理器提供对共享状态的访问。
40.如权利要求39中所述的方法,进一步包括用于对所述包或所述包记录进行排序的信息表,其中将所述表本地存储到每一处理器或并行处理器的每一处理器元件。
41.如权利要求40中所述的方法,其中每一处理器或并行处理器的每一处理器元件上的所述表是相同的。
42.如权利要求40中所述的方法,其中不同的处理器或并行处理器的不同处理器元件上的所述表是不同的。
43.如权利要求40中所述的方法,其中所述处理器或处理器元件共享来自它们各自的表的信息,使得(a)通过不同处理器可直接地访问保持在一个处理器的表中的信息,或者通过该处理器的其它处理元件可访问保持在一个处理器的表中的信息;和(b)为所述处理器或处理器元件提供对其它处理器或处理器元件中的表的访问,从而处理器或处理器元件可以代表另一处理器或处理器元件执行表查找。
44.如权利要求1-23中的任一项所述的系统,其中所述排序装置根据预定的标准,诸如WFQ、DFR、拥塞避免(例如WRED)或其它优先化,实施用于包调度和排序的算法。
45.一种计算机系统,包括如权利要求1-23中的任一项所述的数据处理系统。
46.一种网络处理系统,包括如权利要求1-23中的任一项所述的数据处理系统。
47.一种计算机系统,用于执行如权利要求24-43中的任一项所述的方法。
48.一种网络处理系统,用于执行如权利要求24-43中的任一项所述的方法。
49.一种如权利要求45中所述实施为一个或多个硅集成电路的计算机系统。
50.一种数据载体,包含用于执行如权利要求24至43中的任一项所述的方法的程序装置。
全文摘要
一种用于对输入数据包进行实时排序的体系结构,在存储这些包之前,快速地处理这些包并将它们放到退出顺序队列中。这与先存储后排序的传统方式相反,并且提供了快速的处理能力。处理器(22)根据输入流(20)产生包记录,并为相关的包确定退出顺序编号。将记录存储在顺序列表管理器(24)中,而数据部分存储在存储集线器(21)中,用于以后按照存储在管理器(24)中的退出顺序检索。处理器(22)优选地是使用SIMD的并行处理器阵列,并且能够通过状态引擎快速的访问共享状态(23)。
文档编号H04L12/54GK1736068SQ200380108529
公开日2006年2月15日 申请日期2003年11月11日 优先权日2002年11月11日
发明者A·斯潘塞 申请人:克利尔斯皮德科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1