用于在网络上传输并发数据流的系统的制作方法

文档序号:7993786阅读:124来源:国知局
用于在网络上传输并发数据流的系统的制作方法
【专利摘要】在网络上传输并发数据流的系统,其包括含有数据流中数据的存储器(MEM);多个被分别分配给数据流的队列(10),被组织为接收数据作为原子传输单元;流调节器(REGL),被配置为按顺序查询队列,并且在被查询的队列含有完整传输单元的情况下以网络标称流速率在网络上发送该单元;定序器(SEQ),被配置为按照循环方式查询队列,并在被查询队列填充水平低于通用于所有队列的阈值(σ)时启用数据请求信号(SELi),所述阈值大于最大传输单元的尺寸;和直接存储器访问电路(DMA),被配置为接收数据请求信号并通过以系统标称速度从存储器传输数据至相应队列直至达到共同阈值作为对所述数据请求信号的响应。
【专利说明】用于在网络上传输并发数据流的系统

【技术领域】
[0001] 本发明涉及芯片上的网络,具体涉及负责在网络中传输数据流的路由器级调度系 统。

【背景技术】
[0002] 有许多流量调度算法试图提高网络带宽利用和服务质量。在通信网络的 情况下,由 Cruz ( "A Calculus for Network Delay",Part I:Network Elements in Isolation and part II:Network Analysis,RL Cruz, IEEE Transactions on Information Theory, vol. 37, No. 1Januaryl991)和 Stiliadis( "Latency-Rate Servers:A General Model for Analysis of Traffic Scheduling Algorithms",Dimitrios Stiliadis 等 人,IEEE/ACM TRANSACTIONS ON NETWORKING, VOL 6, NO. 51998 年 10 月)开始的工作建立了 涉及服务速率的概念、最差情况下共享通信信道时延以及网络单元中存储资源利用率的理 论。
[0003] 该理论起到了不同流量管理系统的基础的作用。路由器级最常使用的方法是由 Andrew Tannenbaum 在《计算机网络(第四版)》("Computer Networks (4th Edition) ") 法语版第441页描述的加权公平排队算法(weighted fair queuing method)。Andrew Tannenbaum在《计算机网络(第四版)》("Computer Networks (4th Edition) ")法语版第 434页描述了使用漏桶机制注入(inject)流量的备选方案,其更适合于芯片上的网络。
[0004] 在每种情况下,这都会将网络链路上的平均流p i分配给"会话"Si。
[0005] 每个数据传输会话Si (i = 1,2, ... η)均被分配缓冲区或队列以实例信道、连接或 流。这些队列的内容以标称链接速度r在网络链路L上按顺序传输。
[0006] 流调节器操作每个队列以限制相应会话Si的平均速率使其值PiSr。该速率Pi 通常被选择以使其和小于或等于r。
[0007] 为在整体上理解该操作,可以想象并行进入网络的队列中的内容分别以速率P i 被清空。事实上,队列被按顺序查询,而流管理通过以较低的频次对与较低比特率相关的队 列执行查询,以谋求在多个查询周期中达到平均化的效果。
[0008] 在这些条件下,Stiliadis等人证明了对于特定类型的调度算法,读取队列中包的 第一词与在链路L上发送包中最后一词之间的时延是有界的。在加权公平队列(WFQ)的情 况下,该时延的边界为S Pi/p i+Sp^/r,其中SPi为会话i中最大包的尺寸,而Spmax为运行 中的会话中最大包的尺寸。
[0009] 该时延成分不受队列的尺寸的影响。目前众所周知的是,在共享链路上使用多重 队列来作为多重流信道的系统中,队列的尺寸会在队列中写入数据至读取同一数据以在网 络中传输之间引入另一个时延成分。


【发明内容】

[0010] 多数据流传输系统有降低从队列中数据到达至该数据通过网络被发送之间总时 延的需求。 toon] 该需求有可能被一种在网络上传输并发数据流的系统所解决,该系统包括存储 器,其含有数据流中的数据;多个队列,其被分别分配给数据流,并被组织起来接收数据作 为原子传输单元(或不可分割的传输单元,atomic transmission units);流调节器,被配 置为按顺序查询队列,并且如果被查询的队列中包含完整的传输单元,就在网络上以该网 络的标称流速率传送该单元;定序器,被配置用于以循环的方式查询队列并且当被查询的 队列填充水平低于所有队列共同阈值时启用数据请求信号,所述阈值大于最大的传输单元 的尺寸;和直接存储器访问电路,被配置为接收数据请求信号并且以系统的标称速率从存 储器传输数据至相应的队列直至到达共同阈值来对其进行响应。
[0012] 该需求还可以被一种在网络上传输并发数据流的系统所解决,该系统包括存储 器,其包含数据流中的数据;多个队列,被分别分配给数据流,并被组织为接收数据作为原 子传输单元;流调节器,其被配置为按顺序查询队列,并且如果被查询的队列中包含完整的 传输单元,就在网络上以该网络的标称流速率传送该单元;队列管理电路,其被配置以系统 标称速率使用存储器中的数据单独填充每个队列,直至到达所有队列共同阈值;配置电路, 其被配置为提供队列共同阈值;和处理器,其被编程为生成数据流并控制数据流分配至队 列,并且其与配置电路相连接以按照被传输的流中最大的传输单元动态地调整阈值。
[0013] 共同阈值可以小于最大传输单元尺寸的两倍。
[0014] 该系统可能包括网络界面,其包括队列、流调节器和定序器;处理器,其被编程为 生成数据流、管理队列至流的分配,并且确定流的平均速率;系统总线,其将处理器、存储器 和直接存储器访问电路相互连接;和根据可被处理器编程的两个寄存器的内容计算共同阈 值的电路,其中一个寄存器包含最大传输单元的尺寸,而另一个包含1到2之间的倍增因 子。
[0015] 流调节器可被配置为通过在连续窗口中限制通过网络传输的传输单元数目来调 整流平均速率。

【专利附图】

【附图说明】
[0016] 如下仅为示例性目的而提供的本发明专用实施例的描述以及附图中的描绘更清 楚的给出了本发明的其它优点和特性,其中:
[0017] 图1概要展示了在共享网络链路上传输多个并发流的系统,其可以通过应用上述 教导的传统方式完成;
[0018] 图2为示出了图1系统工作的图表;
[0019] 图3概要展示了优化后的在一个或多个共享网络链路上传输多个并发流系统的 实施例;
[0020] 图4为示出了图3系统工作的图表;
[0021] 图5为示出了图3系统中队列填充水平变化的图表;
[0022] 图6示出了系统平均带宽利用效率随着队列的实际尺寸的变化而变化;并且
[0023] 图7展示了包括动态调整全队列阈值的传输系统的实施例。

【具体实施方式】
[0024] 图1概要展示了诸如直接按照介绍中提过的Cruz, Stiliadis和Tannenbaum的教 导应用完成的在共享网络链路L上传输多个并发流的系统的示例。
[0025] 该系统包括被系统总线B相互连接的处理器CPU,存储器MEM,和直接存储器访问 电路DMA。连接网络界面NI以通过网络链路L发送由DMA电路提供的数据。该网络界面包 括被安排为执行如加权公平队列(WFQ)的若干队列10。队列的填充由仲裁电路ARB进行管 理,同时网络链路L中队列的排空由流管理电路REGL进行管理。
[0026] DMA电路被配置为当数据已准备发出时发送请求信号REQ至网络界面NI。优选 地,DMA电路和传输时储存数据的高速缓存一同提供,这样该系统总线就可被释放。网络界 面中的仲裁电路的设计目的在于处理请求信号并向DMA电路返回确认信号ACK。
[0027] 虽然在任意大小的突发脉冲中,数据由存储器至DMA电路并到达队列10的传输可 以以系统总线的宽度字完成,但从队列10到网络链路L的传输应当与网络类型兼容。从网 络的角度出发,在队列中的数据被组织为"传输单元",如同ATM网络中的"信元",IP网络和 常用于片上网络中的"包",或以太网中的"帧"。因为本公开的写作背景为片上网络,那么 术语"包"将会被使用,但应记住所述的原理可以更普遍地应用在传输单元上。
[0028] 包通常是"原子的"(或不可分割,atomic),也就是说形成包的字在网络链路L上 连续传送,而不会将属于各并发流的字混淆。仅当完整的包在链路上传送完毕后才会传送 新的包。另外,仅当队列包含完整的包时流调节器REGL才会决定对其进行发送。
[0029] 图2为示出一批数据在图1系统中传输阶段更多细节的图表。其在垂直的时间轴 上展示了系统成份之间的交互。"数据批"(data batch)指定了数据流的可分离部分,而数 据流通常是连续的。数据流可以对应于与视频的传输,而(数据)批例如与图像帧或图像 扫描线相对应。
[0030] 在T0时,在本地存储器MEM中生成数据批之后,处理器CPU使用批的源地址和目 的地址初始化DMA电路,其与网络界面队列10之一相关。
[0031] 在T1时刻,DMA电路将数据批从存储器MEM传输至其内置高速缓存中,并释放系 统总线。
[0032] 在T2时刻,DMA电路发送接入请求REQ至网络界面NI。该请求确定数据准备写入 的队列10。
[0033] 在T3时刻,网络界面使用ACK信号确认该请求,这意味着被选择的队列10具有可 用空间来接收数据。
[0034] 在T4时刻,DMA电路作出对该确认信号的响应--将数据由其高速缓存传输至网 络界面NI,在那里数据被写入相应的队列10。
[0035] 在T5时刻,网络界面检测到该队列已满并向DMA电路发出信号结束传输。
[0036] 在T6时刻,DMA电路还有需要传输的数据,则发出新的请求要求进行传输,重复上 述循环。
[0037] 网络中队列10清空的执行与仲裁请求无关,根据流管理机制仅当队列包含完整 包时才会对其进行处理。
[0038] 当数据生产者时常需要网络时,换句话说,当生产者不以持续的方式占用网络链 路带宽时,本传输协议是令人满意的。这是在通信网络下的情况。
[0039] 在芯片上的网络中,寻求完全占用网络链路的带宽,因此生产者被设计为持续地 饱和使用其网络链路。
[0040] 如上所述,生产者可在其网络链路上发送多个并发流。这将体现在图2中的DMA 电路高速缓存中多个相应数据批的传输以及对网络界面NI的多个并发请求的描述。每次 单一请求都被确认为仲裁结果,而仲裁结果也考虑了队列10中的可用空间。
[0041] 在队列10对多个未决请求进行响应而发生持续处于填充阶段的情况下,仲裁延 迟可能耗费大部分的带宽。
[0042] 由于这个原因,目标队列有可能在一段时间内保持为空,因此将网络访问机会"轮 空(passes its turn)"具有降低实际使用带宽的效果。按照管理队列的理论,当队列尺寸 增长时,队列变为空的机率降低,这就是为什么队列经常选择的过大。另一个解决方案是通 过增加生产者过程(producer process)发送请求的频率来降低该几率(队列变为空的机 率)。在片上网络的情况下两种方案均会影响效率,这就是为什么这里提出了接入网络的备 选系统。
[0043] 图3概要展示了该系统的实施例。该实施例在片上网络背景下描述了如美国专利 申请2011-0026400所述的折叠环形阵列拓扑。该网络的每个节点均包括五路双向路由器, 该五路双向路由器包括指配给DMA电路的本地信道和分别与阵列中毗邻的四个路由器连 接的四个信道(北LN、南LS、东LE、西LW)。
[0044] 假定本地信道为网络进入点。通过该本地信道进入的包可被按照其网络中的目的 地交换至其它四个信道中任意的信道,所述其它四个信道将被认为是独立的网络链路。因 此,包可通过四个链路LN、LS、LE和LW中任意一条进行传输,而不是如图1所示的在网络中 单独链路L中传输。大量网络链路并不影响这里描述的可应用于单独链路的原理。原则上 流与单独网络链路相关联,所述单独网络链路可被看作图1中的单独链路。当多个并发流 被指配到不同的链路上时,在总网络带宽上有所差异:通过流调节器这些流可被并行的传 输,所以总带宽临时性地变成单独链路带宽的多倍。
[0045] 图3的系统与图1系统不同的本质在于通信协议在DMA电路和网络界面NI之间的 执行。DMA电路不再发送请求至网络界面来传送数据,而是通过启动标识要服务的队列10 的选择信号SELi来等待网络界面NI请求数据。信号SELi由定序器SEQ生成,定序器SEQ 替换了图1中的请求仲裁电路。
[0046] 定序器SEQ可能被简单地设计为对队列10执行循环查询并在当被查询队列具有 容纳数据的空间时启用选择信号SELi。在这种情况下定序器停止并等待该队列被DMA电路 装满,之后禁用SELi信号,然后移动到下一个队列。
[0047] 图4示出了该操作更多的细节。
[0048] 在T0时刻,该系统处于空闲状态并且所有的队列10均为空。定序器SEQ启用第 一个队列的选择信号SEL1并等待数据。
[0049] 在T1时刻,处理器CPU在存储器MEM中生成了多个数据批。处理器初始化网络界 面NI,例如通过将信息写入定序器SEQ的寄存器中,来将各个队列分配给(数据)批。
[0050] 在T2时刻,处理器初始化DMA电路来将多个批传输至相应队列。
[0051] 在T3时刻,DMA电路读取数据批至其高速缓存中。当信号SEL1激活时,DMA电路即 可将数据从第一批(Txl)开始传输至网络界面NI,在网络界面数据批被写入第一队列10。
[0052] 在T4时刻,第一队列已满。定序器禁用信号SEL1并启用标识要填充的第二队列 的信号SEL2。
[0053] 在T5时刻,DMA电路将数据从第二批(Tx2)传输至网络界面,在网络界面数据批 被写入第二队列10,直至信号SEL2被禁用而新的信号SEL3被启用以传输下一个批。
[0054] 在该系统中,不同的流传输被顺序处理而无需仲裁决定哪个流可被传输。DMA电路 与队列之间的带宽可以被100%的使用。
[0055] 减少队列10引入的时延是可取的。为达成这一目标,队列的尺寸应当被减小。既 然仅当队列包含完整包时流调节器才对其进行处理,那么队列最小的尺寸即为包的尺寸 Sp。问题在于,是否这个队列尺寸就是令人满意的尺寸,或者队列尺寸有更佳的可能。
[0056] 图5为描绘了运行中的队列10填充变化示例的曲线图。如示例所述,填充速度π 被选择为等于网络标称传输速率r的两倍。速度π可能为DMA电路的标称传输速率,该标 称传输速率一般比网络链路的标称传输速率高。包的尺寸记为Sp,队列的尺寸记为 〇。
[0057] 在t0时刻,定序器SEQ选择要填充的队列。该队列的剩余填充水平为a l〈Sp。队 列以速率π进行填充。
[0058] 在tl时刻,队列填充水平达到Sp。该队列包含完整包,并且可以开始在网络中队 该队列进行清空。如果流调节器REGL在tl时实际选择了该队列,那么该队列将以速率r 清空。该队列将以显示的较慢速度n _r继续进行填充。
[0059] 在t2时刻,队列的填充水平达到了界限〇。填充停止,但清空继续。该队列以速 率r清空。定序器SEQ选择下一队列进行填充。
[0060] 在t3时刻,完整的包已经传输至网络。队列到达剩余填充水平a 2〈Sp,因而无法 发送新的完整包。流调节器继续处理下一个队列。
[0061] 在t4时刻,队列又一次被选择进行填充,并从新剩余填充水平α 2开始重复进行 如t0时的循环。队列t5时包含了新的完整包。
[0062] 该图没有展示应用于流的速率限制P的影响。其展示的是在网络链路标称速率 r下清空队列。事实上,流速率的限制可通过平均化的效果来实现:队列总是以最高可用速 度清空,但是查询的频率(未在本图示出)由流调节器调整以获取平均流速率值。例如,在 三个队列A、B和C的流速率分别为0. 5、0. 25和0. 25时,可以使用接下来的查询顺序:A, B, A, C, A, B, A, C......
[0063] 优选地,使用如美国专利申请2011-0026400的流速率管理。该管理基于流在滑动 时间窗口中通过网络可传输的包的配额。在这样的流管理下,所有的队列在窗口起始时被 查询,并且每个队列将其拥有的包进行传输,即使其关联的流速率值较低。但是一旦队列发 送完了它在窗口中的包配额,其查询将被挂起,直至下一个窗口开始。这样,流在每个窗口 中可通过网络传输的包的数目是有限的,但包可在窗口中的任意时间进行传输。
[0064] 如上所述,仅当队列包含完整包时才会开始对队列的清空。在图5中,这发生在tl 至t5时刻。注意在每轮循环的开始,队列无法进行清空时有一平静阶段。既然流调节器的 工作与定序器是独立的,那么控制器就有可能在这一平静阶段查询队列。于是该流调节器 跳过这一队列并移动到下个队列,降低了系统的效率。
[0065] 直观地看,可以观察到当提高队列尺寸σ时,平静阶段会减少,并且当σ = 2Sp 时它们会消失。
[0066] 图6为示出了基于队列尺寸〇的系统带宽利用效率曲线图。该图表为在四个队 列在π = 2r情况下的仿真结果。相应流的速率P被选为0. 2、0. 3、0. 7和0. 8 (加起来为 理论最高值2,见图表的纵轴)。
[0067] 注意效率由〇 = 1下的合理值1.92开始,并且趋向于接近2。在〇 = 1.6时效 率几乎达到了 1.99。换句话说,当〇 = 1时获得了 96%的效率,而当〇 = 1.6时获得了 99. 5%的效率。
[0068] 这样的系统对于尺寸在1至2个包之间的队列非常高效,为了显著地降低时延,该 尺寸值相当的低。
[0069] 根据传输数据的性质,包的尺寸可能因不同的流而异。在这个案例中,为了使所述 系统适合所有的情况,队列尺寸应该按照需处理的包的最大尺寸来选择,而这在当处理的 大部分流的包尺寸较小的情况下会对系统造成损害。
[0070] 该危害可通过将动态调整队列尺寸作为并行流处理的一个功能来加以缓和。实践 中,网络界面中的队列为尺寸不可变的硬件成分。这样,物理队列尺寸可按照系统中可能会 处理的流的最大包的尺寸进行选择,但是对队列指定可调的填充阈值σ。定序器正是检查 关于该阈值的填充水平从而启动相应的选择信号SELi (图3)。
[0071] 图7展示了网络界面实施例的示例,其集成的队列10具有可调的填充阈值。将包 尺寸Sp和乘法因子K(如1. 6)写入网络界面各自的寄存器12、14中。该写入可发生在图 4中的T1时刻,当处理器CPU配置网络界面将队列分配给待传输的流时。如果待传输的流 具有不同的包尺寸,写入寄存器12的值Sp为其中的最大值。
[0072] 寄存器12和14的内容在寄存器16相乘,生成阈值〇。该阈值在与各自队列10 关联的比较器30中被使用。当相应队列10的填充水平达到值 〇时,每个比较器30启用 满信号给定序器SEQ。当满信号被启用时,定序器选择下一个队列来进行填充。
[0073] 虽然优选地在图3所示的系统中使用可调阈值,这种方法的优点与该系统是独立 的。因此,该方法可以在图1所示的或其他任意系统中使用。
【权利要求】
1. 一种用于在网络上传输并发数据流的系统,包括: 存储器(MEM),包含数据流中的数据; 多个队列(10),被分别分配给数据流,并被组织为接收数据作为原子传输单元; 流调节器(REGL),被配置为顺序查询队列并且在被查询的队列含有完整的传输单元的 情况下,在网络上以网络标称流速率发送该单元; 定序器(SEQ),被配置为按照循环方式查询队列,并在被查询队列填充水平低于所有队 列的共同阈值(σ)时启用数据请求信号(SELi),所述阈值大于最大传输单元的尺寸;和 直接存储器访问电路(DMA),被配置为接收数据请求信号并通过以系统标称速度从存 储器传输数据至相应队列直至达到共同阈值来对所述数据请求信号进行响应。
2. 如权利要求1所述的系统,其中所述共同阈值小于最大传输单元尺寸的两倍。
3. 如权利要求2所述的系统,其中所述共同阈值是动态可调整的,以将正在传输的流 中实际使用的传输单元尺寸考虑在内。
4. 如权利要求2所述的系统,包括: 网络界面(NI),包括队列、流管理器以及定序器; 处理器(CPU),被编程为生成数据流、管理队列至流的分配、以及确定流的平均速率; 系统总线(B),将处理器、存储器和直接存储器访问电路(DMA)相互连接;和 用于根据处理器可编程的两个寄存器的内容计算共同阈值的电路,一个寄存器包含最 大传输单元尺寸(Sp),而另一个寄存器包含1至2之间的倍增系数(K)。
5. 如权利要求1所述的系统,其中流调节器被配置为通过限制连续时间窗口中在网络 上传输的传输单元的数目来调整流的平均速率。
【文档编号】H04L12/801GK104067576SQ201280062719
【公开日】2014年9月24日 申请日期:2012年12月19日 优先权日:2011年12月19日
【发明者】Y·杜兰德, A·布兰佩 申请人:卡尔雷公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1