排队方式(交换)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
排队方式(交换)最新进展
以Crossbar为中心的交换体系由于其结构简单且严格无阻塞的特性而广泛应用于目前的各种交换机和路由器中。但Crossbar本身并不能解决交换结构的端口冲突问题。众所周知,输出队列交换机能够很好地支持QoS,然而扩展性太差,不易实现高速交换。输入队列(Input Queued,IQ)交换机解决了输出队列(Output Queued,OQ)交换机难以扩展的问题,但是很难支持QoS。近年来,交叉点缓存交换机(Combined Input and Crosspoint Queued,CICQ)被认为是一种可以解决这两个问题的理想结构。通过在交叉点加少量的缓存,各个输入端口和输出端口的调度器可以相互独立工作,简化了调度算法,这种分布式的调度机制有助于实现支持QoS的高速交换机,很多实用性架构已经被提出来。
CICQ是一种能够在Crossbar交叉点存储信元的交换结构,交叉点缓存的引入使得CICQ能够很好的解决端口冲突问题,并且能够在2倍加速比条件下模拟OQ交换结构的性能以及支持变长帧交换。CICQ的调度算法属于分布式调度,即输入调度和输出调度相互独立。
目前的各种CICQ调度算法大部分是在IQ、OQ、CIOQ交换结构调度算法的基础上发展起来的,他们大体可以分为两类:(1)无队列状态信息的调度,如RR-RR,算法的优点是简单、硬件实现容易。缺点是在均匀的业务流下性能良好,但在非均匀的业务流下性能无法令人满意。(2)基于队列状态信息的调度,如LQF-RR、OCF-OCF,算法性能优于以上调度,但复杂度较高。
1.RR-RR算法
CICQ采用该算法,即是在输入端和输出端都采用RR轮转的调度策略。在RR-RR的仲裁器中,每个输入端口和输出端口都设有一个轮转仲裁器,设备启动时,轮转仲裁器的指针随意设置初始值,之后每一个时隙指针都前移,指针循环移动方向是固定的,它们的轮转周期与输入端口数或输出端口数相同。在每个时隙中,输入端口的轮转指针指向某一个V0Q,该VOQ的队头信元就被送入相应的交叉点缓存,输出端口的轮转指针指向某一个交叉点缓存,该交叉点缓存的队头信元就输出到相应的输出端。
2.LQF-RR算法
CICQ采用LQF-RR算法,是指在输入端采用LQF调度算法,输出端采用RR算法。在输入调度时,在每一个输入端口i,输入仲裁器都选择最长的虚拟输出队列,如果相应的交叉点缓存未满,则将该虚拟输出队列的队列头信元送入交叉点缓存。在输出调度过程中,输出调度器同样根据RR调度算法为每一个输出端口j选择一个非空的缓存点,将交叉点缓存队列中的队头信元输出。
3.OCF-OCF算法
CICQ采用OCF-OCF算法,是指在输入端和输出端均采用OCF调度算法。
该算法的判断依据是信元在队列中等待时间,对等待最久的信元优先进行调度。
4.基于CICQ的动态重路由交换机制
采用虚拟输出队列(VOQ)排队缓存到达输入端口的分组,并分别为单/多下一跳分组维护单/多下一跳虚拟输出队列{VOQ s i,j}和{VOQ m i,h}。单输出端口分组采用N个虚拟输出队列可以完全避免对头阻塞;对于具有多输出端口的分组,理论上需要在每个输入端口i维护2N-N-1个VOQ m i,h队列。因此,该机制通过有效地分组入队机制(QM)降低多输出端口分组的对头阻塞;进入Crossbar 的分组不再维护独立的单/多输出端口交叉点队列。
5.PRIRR-PRIRR算法
RR-RR算法复杂度非常低,但是该算法存在不稳定性的缺陷,即输入缓存可能无限制增大,在非均匀数据流的情况下,该现象表现得尤其突出,严重影响了交换机的性能。PRIRR-PRIRR调度算法可以彻底解决RR-RR算法不稳定性的缺陷。其算法的核心思想是尽快地将非稳定VOQ转换为稳定VOQ,从而防止交换机的队列无限制增长,同时降低系统的平均时延。
对于输入端口而言,系统采用PRIRR算法,目的是先轮询完输入端口内的非稳定VOQ,然后再轮询端口内的稳定VOQ。对于输出端口,首先轮询完输出端口对应的非稳定交叉点缓存,然后再轮询输出端口对应的稳定交叉点缓存,目的是尽快清空处于非稳定状态的VOQ对应的交叉点缓存。
6.RR-LQD算法
该算法的主要思想是在输入端内局部预测队列最长的VOQ并尽力为该队列服务,保持调度中各个队列长度均衡,提高系统稳定性。RR-LQD算法依据队列长度信息进行调度,消除了对各种经验参数的依赖,从根本上能够适应各种业务流量。同时,RR-LQD算法以求解局部最佳取代LQF-RR算法的全局最佳,从而省略了排序比较的过程,大大降低了算法的复杂度,算法复杂度仅为O(1),却能够提供近似于LQF-RR算法的吞吐量、时延性能。
RR-LQD算法分为输入调度和输出调度两部分。输入调度器由一组队列长度比较器和两个RR仲裁器组成,一个指针为rp,用于寻找下一个EVOQ;另一个为dp,用于最长队列预测。每个输入调度器维护两个指针:最长队列预测指针dp和EVOQ轮转指针rp。输出调度器主要由一个简单的RR仲裁器构成,每个输出端调度器维护一个ECB轮转指针p。这些指针分别指向当前优先服务的队列(交叉点)。
7.基于变长分组的“最高IPR优先-最高输出OPR优先的算法
目前的CICQ和输入输出联合缓存CIOQ交换机仿真OQ交换机的方案需要交换机内部加速2倍,对硬件的要求非常苛刻,另外绝大部分交换架构仅支持信元级别的调度,需要对分组进行分割和重组,增加了系统的复杂度。该算法可
以很好解决上述问题。
输入调度算法采用HIPR算法,即每个时隙开始,调度器对该端口中两个物理缓存块的所有激活的VOQ的队列进行判决,选取两个或一个IPR值最大的VOQ的队列头部分组发送到相应的交叉点缓存中去。输出调度算法采用HOPR 算法,即每个时隙开始,调度器对与该输出端口相连的非空交叉点缓存进行判决,选取两个OPR值最大的分组发送到输出队列中去。
结语
基于CICQ设计的调度策略整体上可以分为基于轮询的调度策略和基于权重匹配的调度策略。基于轮询的调度策略算法复杂度为O(1),具有良好的时间和空间扩展性,然而在非均匀和突发业务流下性能较差。基于权重匹配的调度策略如LQF-RR、OCF-OCF、MCBF和SCBF等通过排序为每个输入选择一个交叉点队列,在非均匀流量下性能较差。基于CICQ的各种算法应从实际出发,综合考虑延迟、吞吐量、丢包率、复杂度等问题,从中选择适合业务要求的算法。