专利名称:一种交换网络的仲裁实现方法
技术领域:
本发明涉及交换网络领域,特别涉及一种交换网络的仲裁实现方法。
背景技术:
交换网络是宽带通信设备的核心部分,可分为时分交换网络和空分交换网络两大类。随着Internet用户数量的爆炸性增长,对交换网络吞吐率的要求也越来越高,其中空分交换网络以其良好的可扩展性和优异的吞吐能力而被广泛采用,交叉棒(Crossbar)交换网络是空分交换网络的典型代表。
图1为Crossbar交换网络示意图,IB1~IBn为输入缓存,用于缓存输入数据,每个输入端口对应一个输入缓存;C1~Cn为交换模块,执行空分交换功能;A0为仲裁器,对输入缓存提出的交换请求进行仲裁;OB1~OBn为输出缓存,用于缓存输出前的已交换数据,每个输出端口对应一个输出缓存。从输入端口进来的数据分组先保存在输入缓存中,输入缓存会根据待交换数据分组的目的端口对待交换数据分组进行排队,并根据队列情况周期性地向仲裁器发送交换请求;仲裁器接收到来自不同输入缓存的交换请求后,按照仲裁算法进行仲裁,并根据仲裁结果向各输入缓存发放对应的交换许可;输入缓存得到交换许可后,就可将待交换数据分组通过交换模块发送到对应的输出缓存去。当某个输出缓存的利用率超过了门限值,即有流控情况发生时,表示这个输出缓存已无法接收更多的数据分组,此时,仲裁器应保证不给任何向这一输出缓存提出交换请求的输入缓存发放交换许可。
交换请求和交换许可可以在独立的信号线上传输,也可以由数据分组携带传输。在实际系统设计中,交换请求和交换许可通常会包含在数据分组的分组头信息中,如图2所示,输入缓存根据自身队列情况,将交换请求放在已得到交换许可的数据分组或空闲(Idle)数据分组头上发送给交换模块;交换模块把交换请求从数据分组头信息中剥离出来,并发送到仲裁器进行仲裁;仲裁完成后,仲裁器将仲裁结果返回给交换模块;交换模块再把交换许可放在已完成交换的数据分组头上发送给相应的输出缓存;最后由输出缓存将交换许可剥离出来,反馈给输入缓存。
可见,仲裁器是Crossbar交换网络的重要组成部分,仲裁实现方法的优劣直接影响交换网络的交换效率;另外,由于交换请求和交换许可会被添加到正常数据分组的分组头信息中,加大了输入缓存、输出缓存与交换模块间数据通道的开销,降低了带宽利用率,因此,交换请求与交换许可所使用的比特数也关系到整个交换网络的效率和设计实现难度。针对上述问题,现有的仲裁实现方法存在以下两种(1)单一交换请求的仲裁实现方法为保证带宽利用率,最直接的方法就是限制交换请求与交换许可的比特数,比如限定每个输入缓存每次只能向仲裁器提一个交换请求。
图3为单一交换请求的仲裁实现方法示意图,以4个输入缓存和4个输出缓存为例,I1~I4与O1~O4分别是仲裁器内部不同输入缓存与输出缓存的代表。整个仲裁过程可分为交换请求、交换许可以及连接建立三个阶段A、交换请求阶段;I1、I2、I3、I4根据各自队列情况,分别向仲裁器发送到O2、O3、O2、O1的交换请求。
B、交换许可阶段;经过仲裁以后,O1、O2、O3分别向I4、I1、I2发送了交换许可,由于I3的交换请求与I1的相冲突,最终I3没有得到交换许可,O4由于没有收到交换请求,因此也不会发出交换许可。
C、连接建立阶段。
I1、I2、I4对应的输入缓存根据交换许可,分别与O2、O3、O1对应的输出缓存建立连接,并发送数据分组。
从最终连接建立结果可知,I3和O4是空闲的,这并不代表I3没有到O4的待交换数据分组,但由于输入缓存一次只能提一个交换请求,因此当两个或多个输入缓存的交换请求相冲突时,就必然有端口会空闲。
可见,在单一交换请求条件下,虽然交换请求和交换许可占用的分组头比特数少,带宽利用率高,但当两个或多个输入缓存同时请求到一个输出缓存时,仲裁冲突无法避免,导致仲裁效率低下,整个交换网络的吞吐效率降低。
(2)多交换请求的仲裁实现方法为了改善仲裁器的工作效率,一种有效的方法就是让各个输入缓存根据各自队列情况,每次提多个请求到仲裁器,使得仲裁器知晓所有输入缓存的队列情况,以达到最优的仲裁效率。
图4为多交换请求的仲裁实现方法示意图,以4个输入缓存和4个输出缓存为例,I1~I4与O1~O4分别是仲裁器内部不同输入缓存与输出缓存的代表,每次各个输入缓存最多可以向各个输出缓存都提一个交换请求。
在首次交换请求阶段,各个输入缓存根据自身队列情况,向仲裁器发送到对应输出缓存的交换请求,如I1队列中存在到O1和O2的数据分组等待发送,则I1向仲裁器提出两个交换请求,分别到O1和O2;在首次交换许可阶段,各个输出缓存根据自身接收到的交换请求情况,选择一个输入缓存发送交换许可;在连接认可阶段,各个输入缓存根据自身接收到的交换许可,选择一个输出缓存建立连接认可。
以上三个阶段构成了一个比较完整的仲裁过程,但仅经过一轮仲裁往往无法达到输入缓存与输出缓存间的最佳匹配,因此,需要进行更多轮的仲裁。
如图4所示,首轮仲裁中未建立连接认可的输入缓存和输出缓存,通过再次交换请求与交换许可,最终建立了连接关系,达到了输入缓存与输出缓存间的最佳匹配。
可见,在多交换请求条件下,虽然输入缓存与输出缓存能达到最佳匹配,交换网络的吞吐效率达到最优,但是,交换请求和交换许可占用的分组头比特数增加,带宽利用率降低,给交换网络的设计实现带来困难;另外,为了达到输入缓存与输出缓存间的最佳匹配,仲裁器需要经过两轮或多轮仲裁,而且输入缓存数量越多,所需的仲裁轮数就越多,但是,一般交换网络要求仲裁器必须在指定的时间内给出最终的仲裁结果,否则无法达到实时处理的要求,这无形中增加了仲裁器设计实现的复杂度。
发明内容
有鉴于此,本发明提出一种交换网络的仲裁实现方法,在降低实现复杂度的同时,提高交换效率。
为达到上述目的,本发明提供的技术方案包括以下步骤A、通过单一交换请求得到交换许可的输入缓存,根据交换许可与对应的输出单元建立连接认可;B、将未建立连接认可的空闲输入缓存和空闲输出单元进行随机分配,建立空闲输入缓存和空闲输出单元之间的一一对应关系;C、所有输入缓存分别与对应的输出单元建立连接。
其中,所述步骤A包括A1、每个输入缓存根据自身队列情况向输出单元发送一个交换请求;A2、输出单元对接收到的交换请求进行选择,并根据选择结果向对应的输入缓存发放交换许可;A3、得到交换许可的输入缓存与对应的输出单元建立连接认可。
其中,步骤B所述随机分配采用首选随机中的首位随机;则所述随机分配具体为将所有的空闲输入缓存和空闲输出单元按照端口号大小顺序排列,第一个空闲输入缓存或空闲输出单元随机选择一个空闲输出单元或空闲输入缓存建立对应关系,剩余空闲输入缓存或空闲输出单元与剩余空闲输出单元或空闲输入缓存按照排列顺序依次建立一一对应的关系。
步骤B所述随机分配采用首选随机中的末位随机;则所述随机分配具体为将所有的空闲输入缓存和空闲输出单元按照端口号大小逆序排列,第一个空闲输入缓存或空闲输出单元随机选择一个空闲输出单元或空闲输入缓存建立对应关系,剩余空闲输入缓存或空闲输出单元与剩余空闲输出单元或空闲输入缓存按照排列顺序依次建立一一对应的关系。
步骤B所述随机分配采用首选随机中首位随机和末位随机的组合,每次随机分配轮流使用首位随机或末位随机;采用首位随机进行随机分配具体为将所有的空闲输入缓存和空闲输出单元按照端口号大小顺序排列,第一个空闲输入缓存或空闲输出单元随机选择一个空闲输出单元或空闲输入缓存建立对应关系,剩余空闲输入缓存或空闲输出单元与剩余空闲输出单元或空闲输入缓存按照排列顺序依次建立一一对应的关系;采用末位随机进行随机分配具体为将所有的空闲输入缓存和空闲输出单元按照端口号大小逆序排列,第一个空闲输入缓存或空闲输出单元随机选择一个空闲输出单元或空闲输入缓存建立对应关系,剩余空闲输入缓存或空闲输出单元与剩余空闲输出单元或空闲输入缓存按照排列顺序依次建立一一对应的关系。
步骤B中每次随机分配将不同的空闲输入缓存或空闲输出单元作为进行首选随机分配的第一个输入缓存或第一个输出单元。
其中,所述输出单元为输出缓存或输出端口。
可见,本发明中每个输入缓存每次向仲裁器仅需提一个交换请求,减少了交换请求和交换许可的在分组头中的开销,减少了资源占用,提高了数据通道带宽的利用率;并且,本发明在仲裁过程中引入分配机制,使得仲裁器不需经过多轮仲裁就能接近输入缓存与输出缓存间最佳匹配的效果,简化了仲裁器的实现复杂度,提高了整个交换网络的吞吐效率。
图1为Crossbar交换网络示意图;图2为Crossbar交换请求许可过程示意图;
图3为单一交换请求的仲裁实现方法示意图;图4为多交换请求的仲裁实现方法示意图;图5为本发明仲裁流程图;图6为本发明的仲裁实现方法示意图;图7为本发明随机分配阶段的一具体实施例图。
具体实施例方式
本发明为一种交换网络的仲裁实现方法,为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。
参见图5及图6,整个仲裁过程主要分为五个步骤步骤501每个输入缓存根据自身队列情况向输出缓存发送一个交换请求;参见图6,以5个输入缓存和5个输出缓存为例,I1~I5与O1~O5分别是仲裁器内部不同输入缓存与输出缓存的代表,每个输入缓存每次向仲裁器提一个交换请求,即单一交换请求。图6中,I1、I2、I3、I4、I5根据各自队列情况,分别向仲裁器发送到O4、O3、O4、O1、O3的交换请求。
步骤502输出缓存对接收到的交换请求进行选择,并根据选择结果向对应的输入缓存发放交换许可;经过选择以后,O1、O3、O4分别向I4、I2、I1发送了交换许可,由于I3、I5的交换请求分别与I1、I2的交换请求相冲突,按照保证不同输入缓存间公平性的原则,最终I3、I5没有得到交换许可,O2、O5由于没有收到交换请求,因此也不会发出交换许可。具体输出缓存采用何种算法进行选择,属于现有技术,在此不再赘述。
步骤503得到交换许可的输入缓存与对应的输出缓存建立连接认可;I1、I2、I4根据各自收到的交换许可,分别与O4、O3、O1建立连接认可,而I3、I5及O2、O5空闲出来。这里,认为建立连接认可的输入缓存和输出缓存之间建立有一一对应关系。
步骤504将未建立连接认可的空闲输入缓存和空闲输出缓存进行随机分配,建立空闲输入缓存和空闲输出缓存之间的一一对应关系;为使未建立连接认可的空闲输入缓存和空闲输出缓存得到有效利用,本发明在仲裁过程中引入分配机制,建立空闲输入缓存与空闲输出缓存之间的一一对应关系,充分利用整个交换网络的资源,提高吞吐效率。
在图6的分配阶段,O2与I3建立对应关系,O5与I5建立对应关系。
分配空闲输入缓存与输出缓存的方法有很多种,比如最简单的是将按端口号大小顺序排列好的空闲输入缓存和空闲输出缓存按排列好的顺序建立一一对应关系。但是,由于这种分配方法并不是根据输入缓存的交换请求来决定的,因此,在分配阶段,要尽量保证各个输入缓存间、各个输出缓存间的公平性,从而保证在各种业务流量条件下整个交换网络性能的最优。
图7为本发明随机分配阶段的一具体实施例,m表示执行完步骤503之后,交换网络中有m个输入缓存和m个输出缓存处于空闲状态;Ia为按照输入端口号大小顺序排列的第一个空闲的输入缓存,相当于图6中的I3,Ib为按照输入端口号大小顺序排列的第二个空闲的输入缓存,其它的依此类推,Im为按照输入端口号大小顺序排列的最后一个空闲的输入缓存,相当于图6中的I5;Oa为按照输出端口号大小顺序排列的第一个空闲的输出缓存,相当于图6中的O2,Ob为按照输出端口号大小顺序排列的第二个空闲的输出缓存,其它的依此类推,Om为按照输出端口号大小顺序排列的最后一个空闲的输出缓存,相当于图6中的O5;Random为随机单元。
作为分配方法的一种,Oa~Om可以依次与Ia~Im建立一一对应的关系,即Oa与Ia对应,Ob与Ib对应,依此类推,最后Om与Im相对应。
为了保证不同输入缓存与输出缓存间的公平性,也可采用首选随机的方式来建立一一对应的关系,即第一个被选中的空闲输出缓存随机选择一个空闲输入缓存建立对应关系,剩余空闲输入缓存与剩余空闲输出缓存依次建立一一对应的关系。按照随机位置的不同,又可将首选随机分为首位随机和末位随机。
首位随机具体描述为将所有的空闲输入缓存和空闲输出缓存按照端口号大小顺序排列,第一个空闲输出缓存随机选择一个空闲输入缓存建立对应关系,剩余空闲输入缓存与剩余空闲输出缓存按照排列顺序依次建立一一对应的关系。
图7a所示为首位随机的一具体实施例,所有的空闲输入缓存和空闲输出单元按照端口号大小顺序排列,第一个空闲输出缓存Oa经过Random的处理,随机选择一个空闲输入缓存Ib建立对应关系;剩余空闲输出缓存与剩余空闲输入缓存按排列顺序依次建立一一对应的关系,如Ob与Ic相对应,Om与Ia相对应,其它的依此类推。首位随机可以保证各个输入缓存被选择的机会是均等的,进而保证了不同输入缓存间的公平性。
末位随机具体描述为将所有的空闲输入缓存和空闲输出单元按照端口号大小逆序排列,第一个空闲输出缓存随机选择一个空闲输入缓存建立对应关系,剩余空闲输入缓存与剩余空闲输出缓存按照排列顺序依次建立一一对应的关系。
图7b所示为末位随机的一具体实施例,所有的空闲输入缓存和空闲输出单元按照端口号大小逆序排列,最后一个空闲输出缓存Om经过Random的处理,随机选择一个空闲输入缓存Ic建立对应关系;剩余空闲输出缓存与剩余空闲输入缓存按排列顺序依次建立一一对应的关系,如Oc与Im相对应,Oa与Ib相对应,其它的依此类推。末位随机也可以保证不同输入缓存间的公平性。
剩余空闲输出缓存与剩余空闲输入缓存建立一一对应关系的方法有很多种,不限于图7a或图7b,如图7a中还可将Ob与Ia相对应,Oc与Ic相对应,Om与Im相对应,其它的依此类推;也可设置两个或多个Random单元,即存在两个或多个空闲输出缓存可以随机选择空闲输入缓存,但Random单元越多,系统实现起来就越复杂。
本发明也可将图7a与图7b所示的方法结合起来,一个仲裁时隙执行一次随机分配,每次随机分配轮流使用首位随机或末位随机,即在不同的仲裁时隙使用不同的随机分配方法,如奇数时隙按图7a的方式,即首位随机的方式进行分配,偶数时隙按图7b的方式,即末位随机的方式进行分配,则又可以保证不同输出缓存间的公平性。
为进一步优化输出缓存间的公平性,还可以在首选随机的基础上进一步采用轮选随机的方式,即不断改变首选随机中的起始随机位置,比如所有空闲的输出缓存按照端口号大小顺序排列好,那么,轮选随机就是第一个时隙进行随机分配时将第一个空闲输出缓存作为起始,第二个时隙进行随机分配时将第二个空闲输出缓存作为起始,以后依次类推,即随机分配的起始随机位置在各个输出缓存间轮流循环。确定了进行随机分配的起始随机位置后,轮选随机对于剩余空闲输入缓存和剩余空闲输出缓存的处理与首选随机相类似。轮选随机方式使得每个输出缓存都有均等的机会去选择输入缓存,每个输入缓存被选择的机会也是均等的,从而更有效地保证了各个输入缓存和输出缓存间的公平性。
以上所述的各种随机分配方案,均是由空闲输出缓存选择空闲输入缓存建立对应关系,同理,也可由空闲输入缓存选择空闲输出缓存建立对应关系。
在分配阶段中,保证空闲输入缓存和空闲输出缓存公平性的分配方法有很多,不限于以上列举的几种。Random单元的实现方法也有很多种,比如,利用一个伪随机序列产生随机种子,或用电路设计中的白噪声模拟一个随机过程,并从中提取种子。
步骤505所有输入缓存分别与对应的输出缓存建立连接。
所有的输入缓存都有了对应的输出缓存以后,就可以建立相应的连接关系,至此整个仲裁过程执行完毕。如图6中的I1、I2、I3、I4、I5最终分别与O4、O3、O2、O1、O5建立了连接。
执行完步骤502后,如果所有的输入缓存都得到了交换许可,则直接执行步骤505。
从以上技术方案可见,本发明提供的交换网络的仲裁实现方法,不仅减少了交换请求和交换许可在分组头中的开销,减少了资源占用,提高了带宽利用率,且由于分配机制的引入,使得仲裁器不需经过多轮仲裁就能接近输入缓存与输出缓存间最佳匹配的效果,简化了仲裁器的实现复杂度,有效利用了交换网络的资源,提高了整个交换网络的吞吐效率。
以上所述的具体实施例,主要是针对同时具有输入缓存和输出缓存的复合输入输出缓存Crossbar交换网络进行阐述的,对于仅有输入缓存的输入缓存Crossbar交换网络,本发明同样适用,只是对于输入缓存Crossbar交换网络,输入缓存所提的交换请求不是与输出缓存相对应,而是与Crossbar输出端口相对应,本发明中将输出缓存和输出端口统称为输出单元。另外,本发明所述的交换请求和交换许可可在独立的信号线上传输,也可由数据分组携带传输。
本发明不仅适用于单级Crossbar交换网络,也适用于采用Crossbar交换结构的多级交换网络。并且,针对仲裁器独立设置,或仲裁器与其它模块集成的情况,本发明均适用。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种交换网络的仲裁实现方法,其特征在于,该方法包括以下步骤A、通过单一交换请求得到交换许可的输入缓存,根据交换许可与对应的输出单元建立连接认可;B、将未建立连接认可的空闲输入缓存和空闲输出单元进行随机分配,建立空闲输入缓存和空闲输出单元之间的一一对应关系;C、所有输入缓存分别与对应的输出单元建立连接。
2.根据权利要求1所述的方法,其特征在于,所述步骤A包括A1、每个输入缓存根据自身队列情况向输出单元发送一个交换请求;A2、输出单元对接收到的交换请求进行选择,并根据选择结果向对应的输入缓存发放交换许可;A3、得到交换许可的输入缓存与对应的输出单元建立连接认可。
3.根据权利要求1所述的方法,其特征在于,步骤B所述随机分配采用首选随机中的首位随机;则所述随机分配具体为将所有的空闲输入缓存和空闲输出单元按照端口号大小顺序排列,第一个空闲输入缓存或空闲输出单元随机选择一个空闲输出单元或空闲输入缓存建立对应关系,剩余空闲输入缓存或空闲输出单元与剩余空闲输出单元或空闲输入缓存按照排列顺序依次建立一一对应的关系。
4.根据权利要求1所述的方法,其特征在于,步骤B所述随机分配采用首选随机中的末位随机;则所述随机分配具体为将所有的空闲输入缓存和空闲输出单元按照端口号大小逆序排列,第一个空闲输入缓存或空闲输出单元随机选择一个空闲输出单元或空闲输入缓存建立对应关系,剩余空闲输入缓存或空闲输出单元与剩余空闲输出单元或空闲输入缓存按照排列顺序依次建立一一对应的关系。
5.根据权利要求1所述的方法,其特征在于,步骤B所述随机分配采用首选随机中首位随机和末位随机的组合,每次随机分配轮流使用首位随机或末位随机;采用首位随机进行随机分配具体为将所有的空闲输入缓存和空闲输出单元按照端口号大小顺序排列,第一个空闲输入缓存或空闲输出单元随机选择一个空闲输出单元或空闲输入缓存建立对应关系,剩余空闲输入缓存或空闲输出单元与剩余空闲输出单元或空闲输入缓存按照排列顺序依次建立一一对应的关系;采用末位随机进行随机分配具体为将所有的空闲输入缓存和空闲输出单元按照端口号大小逆序排列,第一个空闲输入缓存或空闲输出单元随机选择一个空闲输出单元或空闲输入缓存建立对应关系,剩余空闲输入缓存或空闲输出单元与剩余空闲输出单元或空闲输入缓存按照排列顺序依次建立一一对应的关系。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述输出单元为输出缓存或输出端口。
7.根据权利要求3、4或5所述的方法,其特征在于,步骤B中每次随机分配将不同的空闲输入缓存或空闲输出单元作为进行首选随机分配的第一个输入缓存或第一个输出单元。
8.根据权利要求7所述的方法,其特征在于,所述输出单元为输出缓存或输出端口。
全文摘要
本发明提供了一种交换网络的仲裁实现方法,该方法中,每个输入缓存每次向仲裁器仅需提一个交换请求,然后根据交换许可与对应的输出单元建立连接认可,对于未建立连接认可的空闲输入缓存和输出单元,仲裁器按照公平性原则,采取随机分配的机制,使得交换网络的所有输入缓存和输出单元间均能建立一一对应的连接。该方法减少了交换请求和交换许可在分组头中的开销,提高了数据通道带宽的利用率,且由于仲裁过程中随机分配机制的引入,使得仲裁器不需经过多轮仲裁就能接近输入缓存与输出缓存间最佳匹配的效果,简化了仲裁器的实现复杂度,提高了整个交换网络的吞吐效率。
文档编号H04L12/56GK1968182SQ20051012325
公开日2007年5月23日 申请日期2005年11月15日 优先权日2005年11月15日
发明者王少勇, 苟益, 涂晓东, 李乐民 申请人:华为技术有限公司