CN101695052A - 一种交叉点小缓存的高性能crossbar调度方法 - Google Patents
一种交叉点小缓存的高性能crossbar调度方法 Download PDFInfo
- Publication number
- CN101695052A CN101695052A CN200910233916A CN200910233916A CN101695052A CN 101695052 A CN101695052 A CN 101695052A CN 200910233916 A CN200910233916 A CN 200910233916A CN 200910233916 A CN200910233916 A CN 200910233916A CN 101695052 A CN101695052 A CN 101695052A
- Authority
- CN
- China
- Prior art keywords
- crossbar
- input
- scheduling
- pointer
- output
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种交叉点小缓存的高性能crossbar调度方法,主要包括排队技术和crossbar调度算法,其方法是,分组在输入端和crossbar交叉点两处存储,到达的分组被划分成固定长度的信元根据其目标转发端口放入相应的队列进行排队,交叉点设立较小容量的缓存,解开了输入与输出调度匹配的耦合;在输入端与输出端分别采用调度器,输入端采用最长队列预测机制算法选择一个信元进入相应的交叉点缓存,输出端采用简单的轮询算法选择一个交叉点缓存中的信元输出;该调度方法稳定、高效、复杂度低,适用于大容量的高速路由器/交换机。
Description
技术领域
本发明涉及一种交叉点小缓存的高性能crossbar调度方法,主要适用于高速、多端口、大容量的IP路由器/交换机。
背景技术
IP路由器/交换机是因特网中重要的网络互联设备,随着Internet规模和容量的飞速增长,以及多业务的发展,要求路由器不仅支持多端口、高速链路速率、具备大容量的处理能力,还要能提供一定的QoS保证,具体表现在满足吞吐量、带宽、时延等方面的不同需求。在路由器中,交换网络用于建立输入与输出端之间的数据通路,负责数据的转发,是制约路由器端口速度和容量的关键因素。
交换结构中典型的分组缓存机制大致有3种:输出缓存(OQ:Output Queuing)、输入缓存(IQ:Input Queuing)和联合输入输出缓存(CIOQ:Combined Input Output Queuing)。这3种典型的交换结构均采用单一调度器,来寻找输入与输出之间的最大或极大匹配。由于需要集中控制,大大限制了交换结构的可扩展性。目前一种有效地提高交换结构可扩展性途径是将缓存设置在交换阵列的交叉点处,这样调度器在输入/输出端可以独立执行,不需要集中控制。近年来VLSI技术的发展使得在中小规模的交换阵列中设置少量缓存已成为可能。如Xilinx公司开发的Xilinx XCV812E,在16×16的交换阵列中做进了1.12Mbits的RAM,每个交叉点可以缓存4Kbits的数据。在交换阵列的交叉开关处缓存分组是早期的分组交换机用来解决阻塞问题的手段。依据目前的技术条件,交叉点缓存尚不足以存放所有滞留在交换结构中的分组,仍然需要与输入缓存结合使用,这就是联合输入交叉点缓存(CICQ:Combined Input andCrosspoint Queuing)交换结构。由于CICQ结构与IQ结构面临同样的队头阻塞(head of lineblocking)问题,CICQ的输入缓存一般也采用虚输出队列技术(VOQ:Virtual Output Queuing)。
对于crossbar调度算法的问题,与OQ,IQ和CIOQ等交换结构相比,CICQ特别具备的交叉点缓存的特点,解开了输入与输出调度匹配的耦合,从而可以在输入和输出端分布式地进行调度。在CICQ交换结构上,实用的调度算法设计往往注重三个指标:小缓存、低复杂度和高吞吐率。小缓存是指CICQ结构本身所具备的特定指标。与IQ,OQ,CIOQ等其他交换结构不同,鉴于目前VLSI技术,尚不能在CICQ结构Crossbar的交叉点处植入足够大的缓存。因此,设计CICQ交换结构的调度算法首先必须能工作于“小缓存”这个特定指标下。低复杂度是针对高速交换的设计需求而提出的核心指标。一般情况下,交换机每块线卡至少能支撑100ms的分组缓冲,对于40Gbps的链路而言,缓冲区至少要达到500MB,复杂度高的调度算法将导致仲裁时间过长而成为交换机调度的瓶颈,特别对于支持大端口和高链路带宽的交换机而言,其调度器的执行时间越短越好,这需要调度算法的复杂度尽可能地低,并且,低复杂度的调度算法意味着更容易在硬件设计中得以实现。高吞吐率是对任何交换结构调度算法设计需求而提出的根本指标,一个具备实用性的调度算法是指在各种流量下均能达到至少95%以上的吞吐率。
综观已有的研究成果,关于CICQ交换结构调度算法的研究分为两大类:一类是纯理论分析,探讨CICQ调度算法的吞吐量、时延、服务质量保证等性能的理论基础但是却存在复杂、硬件难以实现的问题,无法在高速的环境下应用。
关于CICQ交换结构调度算法另一类研究方法是从实用性出发,以交叉点小缓存、高效、低复杂度、硬件易实现作为性能指标,设计各种易于硬件实现的快速启发式调度算法。这类算法的共同点在于减少控制信息量和复杂的计算,一般采用两种手段:一种是依据交叉点缓存的状态信息进行调度;另一种是基于轮转(Round-Robin)机制。MCBF(Most Critical BufferFirst)和LFF-LBF算法都是依据交叉点缓存的忙闲来进行输入/输出调度,使得交叉点缓存得到充分的利用,仿真结果表明算法在均匀流量下具有良好的时延、稳定性能。然而这两种算法没有考虑输入端队列的状态,在非均匀流量下会出现不稳定现象,导致性能严重下降。
由于轮转机制具有低复杂度、硬件易实现等优良特性,成为实用性研究方面的重点,其中典型的调度算法有RR-RR和LQF(Longest Queue First)-RR。虽然RR-RR简单易实现、复杂度仅为O(1),但是在非均匀流量下不能提供良好的吞吐量和时延性能。LQF-RR算法在输入端总是优先服务最长的VOQ,尽量保持各个队列调度均衡,在各种流量下都具有优良的性能,然而该算法复杂度为O(logN),限制了算法在高速处理环境下的应用。为了提高CICQ交换结构在非均匀流量下的性能,研究者通过改进轮转指针更新的规则,基于RR-RR提出了众多改进算法,基本思想是通过为每个VOQ队列分配固定的调度份额、或者根据相邻调度VOQ长度关系的“差分因子”来约束轮转指针的更新,这些算法的复杂度都是O(1),保留了RR-RR低复杂度的特点,仿真结果表明,当每个交叉点容量是1个信元大小时,在非均匀流量下能够获得较好的吞吐量和时延性能,然而它们的“差分因子”或者“份额”的取值都是仿真得到的经验值,在复杂的业务流量下无法得到可靠性验证。
因此,高效、实用的调度算法应当在简单的RR-RR算法的基础上,通过某些指针更新策略弥补其在非均匀流量下性能不佳的缺憾,并且新的更新策略不依赖其他人为设定的“经验”参数。
发明内容本发明的目的是提供一种交叉点小缓存,硬件易实现的高性能crossbar调度方法。基于最长队列预测的轮转型调度算法RR-LQD(Round Robin with Longest QueueDetecting)的主要思想是在输入端内局部预测队列最长的VOQ并尽力为该队列服务,保持调度中各个队列长度均衡,在保持低复杂度的同时提高系统稳定以及在非均匀流量下吞吐量、时延等性能。
本发明的适用于高速、多端口、大容量IP路由器/交换机的crossbar调度方法由排队技术和RR-LQD调度算法构成,具体如下:
(1)信元排队:不同长度的IP分组在转发前划分成固定长度的“信元”,在输出端重组后再发送到链路上去。信元到达过程是一个离散时间随机过程,每个输入端每个时隙至多到达一个信元。输入队列采用VOQ排队技术,若输入端i到达一个目的端为j的信元(1≤i,j≤N),那么该信元被放入VOQij队列中。crossbar的每个交叉点都有缓存,每个输入端和每个输出端可以相互独立地和交叉点缓存进行交换。
(2)RR-LQD算法分为输入调度和输出调度两部分,每个输入调度器维护两个指针:最长队列预测指针dp和轮转指针rp(1≤dp,rp≤N);每个输出端调度器维护一个轮转指针p(1≤p≤N)。这些指针分别指向当前优先服务的队列或交叉点。算法具体描述如下:
输入端调度:首先进行最长队列预测:输入调度器从dp指向的位置开始,通过轮转策略寻找第一个队列长度大于当前dp所指向VOQ的队列。若找到,更新dp指针,指向该预测的队列;否则,dp指针不更新。然后判断预测队列是否为EVOQ(非空且对应的交叉点不满)。此时,调度器认为dp指针指向的队列就是该输入端中“最长”的队列,要优先对它服务,判断预测队列是否为EVOQ:若是EVOQ,则调度器将它的队头信元调度至相应的交叉点缓存;若不是EVOQ,则调度器从rp指向的位置开始,通过轮转策略寻找下一个EVOQ,若找到则调度器将它的队头信元调度至相应的交叉点缓存,并将rp更新至该EVOQ的下一个位置;若找不到则rp保持不变。
输出端调度:从p指向的位置开始,通过轮转策略寻找下一个非空的交叉点CB,若找到,则将该交叉点的队头信元调度输出;若找不到则p保持不变。
本发明通过在crossbar的输入端调度中引入最长队列预测和轮转的双指针技术,实现了crossbar交叉点小缓存调度高吞吐率、低复杂度、硬件易实现的目标。通过应用该方法,crossbar调度过程具有以下有益效果:
(1)依据队列长度信息进行调度,消除了对各种经验参数的依赖;
(2)总是对预测的最长队列进行优先服务,保持了各个队列长度均衡,能够自适应网络环境中各种业务流量,在各种均匀和非均匀流量下,均能达到100%的吞吐量,并且具有良好的时延性能;
(3)以求解局部最佳取代LQF-RR算法的全局最佳,从而省略了排序比较的过程,大大降低了算法的复杂度,算法复杂度仅为O(1);
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是联合输入交叉点排队crossbar交换结构的组成图;
图2是本发明方法一实施例的执行过程。
具体实施方式
参考图1,联合输入交叉点排队crossbar交换结构主要由输入队列(VOQ)、带缓存的crossbar、输入端调度器和输出端调度器组成。输入队列用于存储暂时得不到输入调度的信元;crossbar用于建立输入/输出端的连接,传输信元,交叉点缓存用于存储暂时得不到输出调度的信元;输入端仲裁器和输出端仲裁器分工完成RR-LQD调度算法。当输入端有分组到达时,首先进行一系列的分组处理,包括查表、报头更新、分类、分段,然后在输入队列中缓冲,等待输入端调度器调度。输入端调度器根据VOQ和交叉点缓存的状态信息完成信元从输入队列到交叉点缓存的调度;输出端调度器根据交叉点缓存的状态信息完成信元从交叉点缓存到输出端的调度。所有的输入/输出端调度器是相互独立工作的。
图2所示为本发明方法一实施例的执行过程。本实施例展示了一个4×4的CICQ交换结构中RR-LQD算法在输入端i和输出端j的执行过程。在开始时,输入端i的最长队列预测指针dp指向VOQi1,EVOQ轮转指针rp指向VOQi4。调度器从VOQi1以轮转方式寻找第一个长于VOQi1的VOQ,若找不到,则dp保持不变;若找到为VOQi3,将dp更新指向VOQi3,如图2(a)所示。然后判断VOQi3是否为EVOQ,若是EVOQ,则调度器将VOQi3的队头信元调度至CBi3;若VOQi3不是EVOQ,则调度器从rp指向的VOQi4开始以轮转方式寻找EVOQ,若找不到,则rp保持不变;若找到为VOQi1,则调度器将VOQi1的队头信元送至CBi1,并将rp指向VOQi2,如图2(b)所示。输出端j的调度器从p指针开始以轮转方式寻找ECB,若找不到,则p指针保持不变;若找到为CB4j,则调度器将CB4j的队头信元输出,并将p指针指向CB1j,如图2(c)所示。
本领域人员在本发明方案基础上,以选取不同参数(交叉点缓存容量、端口数等)或用于其它交换结构而做出的其它方案,亦在本发明保护的范围之内。
Claims (9)
1.一种交叉点小缓存的高性能crossbar调度方法,包括排队技术和crossbar调度算法,其特征在于:
(1)、不同长度的IP分组在转发前划分成固定长度的“信元”,在输出端重组后再发送到链路上去;输入队列采用虚拟输出排队(VOQ)技术,若输入端i到达一个目的端为j的信元(1≤i,j≤N),那么该信元被放入VOQij队列中;crossbar的每个交叉点都有少量缓存,每个输入端和每个输出端可以相互独立地和交叉点缓存进行交换;
(2)、crossbar调度算法称为RR-LQD,RR-LQD算法分为输入调度和输出调度两个部分:
输入调度阶段:每个输入调度器维护最长队列预测指针dp和轮转指针rp两个指针(1≤dp,rp≤N),每个时隙开始时首先进行最长队列预测,从dp指向的位置开始,通过轮转策略寻找第一个队列长度大于当前dp所指向VOQ的队列;若找到,更新dp指针,指向该预测的队列,否则,dp指针不更新;然后判断预测队列是否为EVOQ(非空且对应的交叉点不满),此时,调度器认为dp指针指向的队列就是该输入端中“最长”的队列,要优先对它服务,判断预测队列是否为EVOQ,若是EVOQ,则调度器将它的队头信元调度至相应的交叉点缓存,若不是EVOQ,则调度器从rp指向的位置开始,通过轮转策略寻找下一个EVOQ,若找到则调度器将它的队头信元调度至相应的交叉点缓存,并将rp更新至该EVOQ的下一个位置,若找不到则rp保持不变;
输出调度阶段:每个输出端调度器维护一个轮转指针p(1≤p≤N),每个时隙开始时从p指向的位置开始,通过轮转策略寻找下一个非空的交叉点,若找到,则将该交叉点的队头信元调度输出;若找不到则p保持不变。
2.如权利要求1所述的排队技术,其特征在于:crossbar的每个交叉点缓存是少量的。
3.如权利要求1所述的crossbar调度方法,其特征在于:分为输入调度和输出调度两部分,之间无需信息交互,二者相互独立,并行工作。
4.如权利要求1所述的crossbar调度方法,其特征在于:每个时隙每个输入端和输出端分别调度一个分组。
5.如权利要求1所述的crossbar调度方法,其特征在于:每个输入端维护两个优先级指针,分别是最长队列预测指针dp和轮转指针rp。
6.如权利要求1所述的crossbar调度方法,其特征在于:输入端调度时,只有当最长队列预测指针dp找不到满足条件的VOQ时,才执行轮转。
7.如权利要求1所述的crossbar调度方法,其特征在于:输入端调度时,dp指针更新不依赖于经验性参数,而是通过队列预测寻找局部最长,并向全局最长队列逼近。使得一旦预测某一队列为“最长”队列,无论本时隙内是否被调度,dp指针都指向它。
8.如权利要求1所述的crossbar调度方法,其特征在于:输入端调度时,每个时隙并行执行N次比较,算法复杂度为O(1)。
9.如权利要求1所述的crossbar调度方法,其特征在于:crossbar交换的信元大小为64字节,端口速率为10Gbps。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910233916.0A CN101695052B (zh) | 2009-10-21 | 2009-10-21 | 一种交叉点小缓存的高性能crossbar调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910233916.0A CN101695052B (zh) | 2009-10-21 | 2009-10-21 | 一种交叉点小缓存的高性能crossbar调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101695052A true CN101695052A (zh) | 2010-04-14 |
CN101695052B CN101695052B (zh) | 2014-10-15 |
Family
ID=42093994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910233916.0A Expired - Fee Related CN101695052B (zh) | 2009-10-21 | 2009-10-21 | 一种交叉点小缓存的高性能crossbar调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101695052B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105429898A (zh) * | 2015-11-02 | 2016-03-23 | 北京航空航天大学 | 一种cicq结构交叉缓存队列均衡的分组调度算法 |
CN106357555A (zh) * | 2016-09-26 | 2017-01-25 | 北京航空航天大学 | 一种基于业务均衡的cicq结构分组调度算法 |
CN106453134A (zh) * | 2016-10-31 | 2017-02-22 | 北京航空航天大学 | 一种基于虚拟队列长度协调单组播竞争的cicq结构交换机分组调度算法 |
CN106453137A (zh) * | 2016-09-20 | 2017-02-22 | 北京航空航天大学 | 一种以缓解HOL Blocking为目标的动态组播入队算法 |
CN106603145A (zh) * | 2016-12-30 | 2017-04-26 | 北京航空航天大学 | 一种考虑信道状态的geo卫星星载cicq结构交换机分组调度算法 |
CN107835137A (zh) * | 2017-10-20 | 2018-03-23 | 深圳市楠菲微电子有限公司 | 用于交换机的输出端口调度系统及该交换机 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494602A (zh) * | 2009-02-18 | 2009-07-29 | 杭州华三通信技术有限公司 | 一种通信设备的节能方法和装置 |
CN101527686A (zh) * | 2009-04-07 | 2009-09-09 | 华为技术有限公司 | 一种数据交换方法和设备 |
-
2009
- 2009-10-21 CN CN200910233916.0A patent/CN101695052B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494602A (zh) * | 2009-02-18 | 2009-07-29 | 杭州华三通信技术有限公司 | 一种通信设备的节能方法和装置 |
CN101527686A (zh) * | 2009-04-07 | 2009-09-09 | 华为技术有限公司 | 一种数据交换方法和设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105429898A (zh) * | 2015-11-02 | 2016-03-23 | 北京航空航天大学 | 一种cicq结构交叉缓存队列均衡的分组调度算法 |
CN105429898B (zh) * | 2015-11-02 | 2018-04-06 | 北京航空航天大学 | 一种cicq结构交叉缓存队列均衡的分组调度算法 |
CN106453137A (zh) * | 2016-09-20 | 2017-02-22 | 北京航空航天大学 | 一种以缓解HOL Blocking为目标的动态组播入队算法 |
CN106453137B (zh) * | 2016-09-20 | 2019-04-05 | 北京航空航天大学 | 一种以缓解HOL Blocking为目标的动态组播入队方法 |
CN106357555A (zh) * | 2016-09-26 | 2017-01-25 | 北京航空航天大学 | 一种基于业务均衡的cicq结构分组调度算法 |
CN106453134A (zh) * | 2016-10-31 | 2017-02-22 | 北京航空航天大学 | 一种基于虚拟队列长度协调单组播竞争的cicq结构交换机分组调度算法 |
CN106603145A (zh) * | 2016-12-30 | 2017-04-26 | 北京航空航天大学 | 一种考虑信道状态的geo卫星星载cicq结构交换机分组调度算法 |
CN106603145B (zh) * | 2016-12-30 | 2019-04-05 | 北京航空航天大学 | 一种考虑信道状态的geo卫星星载cicq结构交换机分组调度方法 |
CN107835137A (zh) * | 2017-10-20 | 2018-03-23 | 深圳市楠菲微电子有限公司 | 用于交换机的输出端口调度系统及该交换机 |
Also Published As
Publication number | Publication date |
---|---|
CN101695052B (zh) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chuang et al. | Practical algorithms for performance guarantees in buffered crossbars | |
AU736406B2 (en) | Method for providing bandwidth and delay guarantees in a crossbar switch with speedup | |
Mhamdi et al. | CBF: A high-performance scheduling algorithm for buffered crossbar switches | |
CN101478483B (zh) | 交换设备内实现分组调度的方法及交换设备 | |
CN101695052B (zh) | 一种交叉点小缓存的高性能crossbar调度方法 | |
US20100260198A1 (en) | Space-Space-Memory (SSM) Clos-Network Packet Switch | |
CN101695051A (zh) | 一种用于缓冲Crossbar的队列长度均衡调度方法 | |
CN100420241C (zh) | 实现信息交换的系统及方法和调度算法 | |
CN101631070A (zh) | 三级交换系统及其调度方法 | |
CN100421420C (zh) | 一种调度纵横式交换矩阵中变长数据包队列的方法 | |
Kesselman et al. | Packet mode and QoS algorithms for buffered crossbar switches with FIFO queuing | |
US6836475B2 (en) | Method and apparatus for traffic shaping for IP router queues/egress | |
CN104333516A (zh) | 用于组合输入交叉点缓存交换结构的旋转轮训调度方法 | |
Aslam et al. | A parallel packet switch with multiplexors containing virtual input queues | |
US20100246590A1 (en) | Dynamic assignment of data to switch-ingress buffers | |
CN101964747A (zh) | 基于前置反馈的两级交换结构工作方法 | |
Yoshigoe | The CICQ switch with virtual crosspoint queues for large RTT | |
Martinez et al. | A new cost-effective technique for QoS support in clusters | |
CN1933441A (zh) | 一种支持均匀交换的路由器交换结构及服务质量保证方法 | |
Yoshigoe | Threshold-based exhaustive round-robin for the CICQ switch with virtual crosspoint queues | |
Gao et al. | SBF-GWF scheduling for combined input-crosspoint-queued (CICQ) switches | |
He et al. | Load-balanced multipath self-routing switching structure by concentrators | |
Yoshigoe | The crosspoint-queued switches with virtual crosspoint queueing | |
CN103731359A (zh) | 基于光纤延时线的fifo共享缓存路由器及其工作方法 | |
Xiuqin et al. | A in-order queuing parallel packet switch solution based on CICQ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
DD01 | Delivery of document by public notice |
Addressee: Univ. of Science and Engineering, PLA Document name: Notification to Pay the Fees |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141015 Termination date: 20151021 |
|
EXPY | Termination of patent right or utility model |