专利名称:一种支持多优先级的高速Crossbar调度策略的制作方法
技术领域:
本发明涉及一种支持多优先级的高速crossbar调度策略,主要适用于高速、多端口、大容量的IP路由器/交换机,并能提供服务质量(QoS)保证。
背景技术:
IP路由器/交换机是因特网中重要的网络互联设备,随着Internet规模和容量的飞速增长,以及多业务的发展,要求路由器不仅支持多端口、高速链路速率、具备大容量的处理能力,还要能提供一定的QoS保证,具体表现在满足吞吐量、带宽、时延等方面的不同需求。在路由器中,交换网络用于建立输入与输出端之间的数据通路,负责数据的转发,是制约路由器端口速度和容量的关键因素。
传统的中、低速路由器大多采用输出排队的交换网络(包括共享缓存),它们虽然具有良好的QoS性能,但是要求交换网络的速率是链路速率的N(N指输入端口数目)倍,而在因特网干线中链路速率往往很高(如OC-192、10GE),交换网络难以达到数十Gbps的速率,造成系统可扩展性差,已无法满足Internet日益发展的需求。
基于输入排队的crossbar是一种快速的定长交换网络,只要求交换网络的速率与链路速率相同,并且crossbar具有简单易实现、无阻塞等优点,被广泛应用于高速路由器/交换机的设计中[1][2][3]。在这种交换网络结构中,分组只在输入端存储,经过调度通过crossbar输出,因此,输入端排队策略和crossbar调度算法是影响系统吞吐量、时延等性能的关键因素,也是高速路由器/交换机设计时必须解决的两个问题。对于前者,经过前人的研究,输入队列为了避免由于HOL阻塞(head of line blocking)而带来的交换网络吞吐量下降的问题[4],一般采用虚拟输出排队技术(VOQvirtual output queueing)来消除HOL阻塞,即每个输入端为每一个输出端维护一个单独的FIFO(first in first out)队列[5]。为了支持多优先级,每个输入端为每一个输出端的每一个优先级维护一个单独的FIFO队列。我们统称之为VOQ队列。
对于另一个问题——crossbar调度算法,通常被描述为图论中的二部图匹配问题,即解决输入/输出端竞争,避免信元的发送和接收冲突。为了实现高速交换和控制上的方便,crossbar处理的数据单元为固定长度的信元,一个信元通常取64字节长度,crossbar交换一个信元的时间间隔称为一个时隙。调度算法每个时隙执行一次,执行结果控制crossbar交叉点的闭合,建立输入与输出端的连接,输入队列中的信元通过这些连接被发送到相应的输出端。多优先级调度是一种简单有效的QoS保证机制。支持多优先级的crossbar调度算法必须同时满足如下三个条件(a)在一个时隙内每个输入端至多发送一个信元;(b)在一个时隙内每个输出端至多接收一个信元;(c)一个队列的队头信元只有当所有比它优先级高的队列为空时才能被调度。满足条件(a)是为了解决输入端竞争,避免发送冲突;满足条件(b)是为了解决输出端竞争,避免接收冲突;满足条件(c)是为了保证优先级调度规则。
根据当前的研究和使用情况,支持多优先级的crossbar调度算法有p-iSLIP[5]和OSP[6]。前者被应用于Cisco12000系列路由器(最多支持32个OC-192接口),后者被应用于我国大唐电信的“银河玉衡”系列路由器(最多支持16个OC-48接口)。这两种算法都存在控制信息量大、可扩展性差的缺点,这就限制了它们在高速、多端口、大容量路由器中的应用,特别是OSP算法收敛时间长,更加难以满足高速crossbar调度需要。p-iSLIP和OSP都采用迭代策略,每次执行过程包含多次迭代,每次迭代包含“请求-许可-接受”三个阶段。以p-iSLIP为例简单介绍“请求-许可-接受”的运行过程Phase1请求。每个输入端i选择出每个VOQj中最高优先级的非空子队列,向输出端j发送请求,请求中携带优先级信息。
Phase2许可。如果输出端j接收到多个请求,那么首先找出所有最高优先级的请求,然后根据round-robin规则从中选择一个,并向发出该请求的输入端发送许可信号。
Phase3接受。如果输入端i接收到多个许可,那么首先找出所有最高优先级的许可,然后根据round-robin规则从中选择一个,并向发出该许可的输出端发送接受信号,这样就建立一个连接。
对于一个支持P个优先级的NxN的crossbar,表1比较了p-iSLIP和OSP算法,其中控制信息量指在一次迭代中,一个输入端与调度器之间交换的信息量。
表1 p-iSLIP和OSP算法的比较考虑一个支持8个优先级的64x64交换网络,所有端口速率相同,均为10Gbps。一个64字节长度的信元传输时间为51.2ns,也就是说,调度器一次执行过程必须限定在51.2ns内完成。根据表1,每次迭代,p-iSLIP和OSP共有262bit的控制信息,这些信息的传输将限制p-iSLIP和OSP的扩展并且可能降低其时延性能。根据目前的技术,串行电子电路很难达到10Gpbs,即使这样,这些控制信息的传输也需要26.2ns的时间,实际上允许调度器真正执行的时间只有51.2-26.2=25ns。这些时间无法满足下一次迭代的需要,这将导致时延性能的下降。另外,OSP收敛需要N次迭代,更加限制它在多端口路由器中的应用。随着端口数目、优先级数目的增多以及端口速率的提高,这些情况更加恶化。
随着路由器技术的发展,下一代高速路由器逐渐将交换单元(调度器和crossbar)与输入/输出接口卡分别放置于不同机架,并使用光交换结构代替电子crossbar,以支持几十甚至上百个高速端口[7][8]。上述算法由于控制信息量大,传输时间长,造成调度器在规定的时间内无法及时地完成调度,导致交换网络吞吐量和信元时延性能下降,不能适应路由器的发展趋势。
发明内容
为了克服上述问题,本发明提供一种新的支持多优先级调度策略——p-iDRR(prioritized iterative Dual Round-Robin)。p-iDRR每次执行过程也包含多次迭代,但每次迭代只包含“请求-许可”两个阶段。在“请求”阶段,每个输入端最多发送一个请求,控制信息量为(logN+logP)bit;在“许可”阶段,每个输出端至多发送一个许可,控制信息量仅lbit。仍以上述例子说明,p-iDRR每次迭代的控制信息量只有10bit,传输时间为1ns。p-iDRR采用“请求-许可”两个运行阶段,一方面简化了硬件实现,提高了运行速度,另一方面大大降低了控制信息传输时延,可以满足高速、多端口、大容量路由器的调度需要。与同类算法相比,该算法具有与p-iSLIP、OSP几乎相同的性能,但硬件实现更加简单;另外,算法收敛速度比OSP快,克服了它们在实际应用中的缺陷。
本发明解决其技术问题所采用的技术方案是(1)分组分段和重组不同长度的IP分组在转发前划分成固定长度的“信元”,在输出端重组后再发送到链路上去。
(2)信元排队信元到达过程是一个离散时间随机过程,每个输入端每个时隙至多到达一个信元。输入队列采用VOQ排队技术,若在时隙n输入端i到达一个目的端为j,优先级为p的信元(0≤i,j≤N-1,0≤p≤P-1),那么该信元被放入VOQj的第(p+1)个子队列中。只要队列中有信元等待发送,则会产生发送请求。
(3)p-iDRR调度算法在p-iDRR算法中,每个输入/输出端都有一个round-robin仲裁器,设有P个指针,分别对应于P个优先级。p-iDRR采用多次迭代的策略,每次执行过程包含logN次迭代,前面迭代中建立连接的输入/输出端不参加后面的迭代,后面的迭代不影响前面迭代中已经建立的连接。每次执行过程开始时所有输入/输出端为空闲状态。p-iDRR每次迭代只包括两个步骤Phase1请求。输入端i的仲裁器有P个请求指针rip(0≤p≤P-1,0≤rip≤N-1),分别指向当前优先选择的VOQ。如果输入端i中有发送请求,首先找出所有最高优先级(假设为pi)的请求,然后仲裁器使用指针ripi,根据round-robin规则选择一个VOQ,并且保证相应的输出端空闲,最后向输出端仲裁器发送请求,请求中携带优先级信息pi。ripi仅在第一次迭代后更新。如果该请求在Phase2中被许可,那么ripi等于被选择的VOQ端口号加1(mod N);否则ripi等于被选择的VOQ端口号,同时将该请求清除。
Phase2许可。输出端j的仲裁器有P个许可指针gip(0≤p≤P-1,0≤gJP≤N-1),分别指向当前优先选择的输入端。如果输出端j接收到请求,首先找出所有最高优先级(假设为pj'=mini(pi))]]>的请求,然后仲裁器使用指针gjpj′,根据round-robin规则选择一个输入端的请求,并发送许可信息,从而建立一个连接。gjpj′仅在第一次迭代后更新,等于被选择的输入端口号加1(mod N)。
(4)输出端空闲通知机制在p-iDRR调度算法中,存在如下性质一旦在前面迭代中某个输出端接收到发送请求,则该输出端在后面的迭代中必定是非空闲的。根据这个性质,增加N条控制线,分别对应于N个输出端,将所有输入端仲裁器连接在这N条控制线上,一旦某个输入端有请求发送到输出端j,则将控制线j置为高电平,表示该输出端将处于非空闲状态。每次执行过程开始时所有控制线置为低电平,表示输出端空闲。所有输入端根据控制线的状态判定输出端是否空闲。利用输出端空闲通知机制,p-iDRR在“请求”阶段中可以简单确定输出端是否空闲,并没有增加输入端与调度器之间的控制信息量。
下面结合附图和实施例对本发明进一步说明。
图1是输入排队crossbar交换结构的组成图;图2是输入端排队策略示意图;图3是本发明方法一实施例的执行过程。
具体实施例方式
参考图1,输入排队crossbar交换结构主要由输入队列(VOQ)、crossbar、输入端仲裁器和集中调度器组成,所有输入端仲裁器与控制线相连。输入队列用于存储暂时得不到调度的信元;crossbar用于建立输入/输出端的连接,传输信元;输入端仲裁器和集中调度器共同完成p-iDRR调度算法,其中集中调度器主要由输出端仲裁器组成。当输入端有分组到达时,首先进行一系列的分组处理,包括查表、报头更新、分类、分段,然后在输入队列中缓冲,等待crossbar调度。输入端仲裁器完成p-iDRR中“请求”阶段的工作,根据VOQ和控制线的状态信息向调度器发送请求调度器完成“许可”阶段的工作,根据请求信息作出许可。另外,输入端仲裁器还负责设置控制线的状态。所有的输入/输出端仲裁器是相互独立工作的。调度器的执行结果(输入/输出端的连接)配置crossbar,从而建立输入/输出端的连接,信元被发送到输出端,最后经过重组被发送到输出链路。
图2所示为输入端排队策略,采用了支持多优先级的VOQ排队机制,主要是为了避免单个FIFO带来的HOL阻塞问题,输入端为每个输出端每个优先级维护一个单独的FIFO的队列。在具体实现时,这些队列可以用一个单独的物理存储器,通过简单的存储器管理,划分成多个逻辑独立的队列。对于一个支持P个优先级的NxN的crossbar,每个输入端总共有(N*P)个独立的FIFO,信元经过查表、分类存于不同的FIFO队列。优先级0为最高优先级,(P-1)为最低优先级。
图3所示为本发明方法一实施例的执行过程。本实施例展示了在一个支持2个优先级的3x3的crossbar中p-iDRR一次迭代的过程,图中VOQ队列的一个黑点代表一个信元。初始时控制线均为低电平,各指针的状态如图中所示。在“请求”阶段,输入端0和1仲裁器同时向输出端0发送优先级为0(高优先级)的请求,产生了输出端竞争。输出端仲裁器使用g00许可了输入端1的请求,g00和r10分别更新为(1+1)mod 3=2和(0+1)mod 3=1;而输入端0的请求未得到许可,r00更新为0,同时这个请求会被清除。输入端0和1仲裁器同时会把控制线0置为高电平。若再进行一次迭代,虽然输入端0有低优先级信元到达输出端0,并且低优先级指针指向VOQ0,但是根据控制线的状态,输入端0非空闲,输入端0只会向输出端1发出低优先级的请求,并得到许可,最终建立连接。由于不是第一次迭代,r11和g11都不会更新。
本领域人员在本发明方案基础上,以选取不同参数(迭代次数、N、P等)或用于其它交换网络而做出的其它方案,亦在本发明保护的范围之内。
参考文献[1]Nick Mckeown et al.The Tiny TeraA packet switch core.IEEE Micro Magazine,1997,1726-33. Cisco Inc.Cisco 12000 series----Internet Router.Product Overview,http//www.cisco.com,Oct 2001. Partridge C.et al.A 50-Gb/s IP router.IEEE Trans.on Networking,1998,6237-248. M.J.Karol,M.Hluchyj,and S.Morgan.Input versus output queuing on a space-division packet switch.IEEETrans.On Communications,1987,351347-1356. N.Mckeown.Scheduling algorithm for input-queued cell switches.Ph.D.Thesis,UC Berkeley,May 1995. 孙志刚,卢锡城.一种用于区分服务路由器的crossbar调度算法.国防科技大学学报,2000,22(6)52~56. 彭来献,李万林,田畅,郑少仁.太比特路由器关键技术分析.《电信科学》,2002,18(3)11~15. A New architecture for switch and router design,PMC-Sierra,Inc.White paper,1999.
权利要求
1.一种支持多优先级的高速crossbar调度策略,主要包括排队策略和crossbar调度算法,其特征在于(1)、不同长度的IP分组在转发前划分成固定长度的“信元”,在输出端重组后再发送到链路上去;分组只在输入端存储,输入端队列采用虚拟输出排队(VOQvirtual outputqueueing)技术,为每个输出端每个优先级维护一个独立的FIFO(first in first out)队列,若输入端i到达一个目的端为j,优先级为p的信元(0≤i,j≤N-1,0≤p≤P-1),那么该信元被放入VOQi的第(p+1)个子队列中;(2)、crossbar调度算法称为p-iDRR,在该算法中,每个输入/输出端都有一个轮转优先级(round-robin)仲裁器,设有P个指针,分别对应于P个优先级。p-iDRR每次迭代包括两个“请求-许可”两个阶段Phase 1请求。输入端i的仲裁器有P个请求指针rip(0≤p≤P-1,0 ≤rip≤N-1),分别指向当前优先选择的VOQ。如果输入端i中有发送请求,首先找出所有最高优先级(假设为pi)的请求,然后仲裁器使用指针ripi,根据round-robin规则选择一个VOQ,并且保证相应的输出端空闲,最后向输出端仲裁器发送请求,请求中携带优先级信息pi。ripi仅在第一次迭代后更新。如果该请求在Phase2中被许可,那么ripi等于被选择的VOQ端口号加1(modN);否则ripi等于被选择的VOQ端口号,同时将该请求清除。Phase 2许可。输出端j的仲裁器有P个许可指针gjp(0≤p≤P-1,0≤gjp≤N-1),分别指向当前优先选择的输入端。如果输出端j接收到请求,首先找出所有最高优先级(假设为pj′=mini(pi)]]>)的请求,然后仲裁器使用指针gjp′j,根据round-robin规则选择一个输入端的请求,并发送许可信息,从而建立一个连接。gjp′j仅在第一次迭代后更新,等于被选择的输入端口号加1(modN)。
2.如权利要求1所述的crossbar调度策略,其特征在于输出端空闲通知机制将所有输入端仲裁器连接于N条控制线,分别对应于N个输出端,一旦某个输入端有请求发送到输出端j,则将控制线j置为高电平,表示该输出端将是非空闲状态。
3.如权利要求1所述的crossbar调度策略,其特征在于采用多次迭代的策略,每次执行过程包含logN次(N为输入端口数)迭代,前面迭代中建立连接的输入/输出端不参加后面的迭代,后面的迭代不影响前面迭代中已经建立的连接;每次执行过程开始时所有输入/输出端为空闲状态。
4.如权利要求1所述的crossbar调度策略,其特征在于每次迭代包括“请求一许可”两个阶段,在“请求”阶段,每个输入端至多发送一个请求,控制信息量为(logN+logP)bit;在“许可”阶段,每个输出端至多发送一个许可,控制信息量仅1bit。
5.如权利要求1所述的crossbar调度策略,其特征在于crossbar交换的信元大小为64字节,端口速率为10Gbps。
全文摘要
本发明公开了一种支持多优先级的高速crossbar调度策略,主要包括排队策略和crossbar调度算法,其方法是,分组只在输入端存储,将到达的分组划分成固定长度的信元放入不同优先级的队列中;每个输入/输出端都有一个轮转优先级仲裁器,调度算法由这些仲裁器协同执行,分为“请求”和“许可”两个阶段,输入端仲裁器首先从该输入端多个发送请求中选择一个发送到相应的输出端仲裁器,然后输出端仲裁从接收的请求中选择一个进行许可,从而建立输入/输出端连接,最后根据连接信息配置crossbar,调度输出信元;该调度策略简单、高效、硬件易实现,适用于高速路由器/交换机,并能提供服务质量保证。
文档编号H04Q3/00GK1604537SQ03158390
公开日2005年4月6日 申请日期2003年9月29日 优先权日2003年9月29日
发明者彭来献, 田畅 申请人:中国人民解放军理工大学通信工程学院