iSLIP 指针滑动多次迭代循环优先级匹配算法 理解

iSLIP算法的中文资料很少,CSDN搜了一下没有。本文是yz在学习PPIN一书时对iSLIP算法的理解。

简介

什么是iSLIP

iSLIP是用于多输入多输出交换机的一种分配(Allocator)算法,由Nick McKeown 1999年在《The iSLIP Scheduling Algorithmfor Input-Queued Switches》提出。
有n个输入与n个输出时,每个输入会对部分或全部输出口产生占用请求。如何分配输出口给需要的输入口呢?如果采用简单的FIFO机制,先到的输入队列的请求先处理,会遇到HOL(head-of-line)瓶颈,只能达到最大带宽的58.6%。
iSLIP 不同于FIFO,是一种迭代循环的算法,为均匀分布的流量设计,而且硬件实现也比较简单。An iterative, round-robin algorithm,iSLIP can achieve 100% throughput for uniform traffic, yet is simple to implement inhardware. 1

算法

基本的循环匹配算法(Basic Round-Robin Matching Algortih)

以iSLIP论文1中的图4为例。有4个input和4个output,其中input2和output1,3被省略,未在子图(a)中画出。
左侧实心黑点从input接受到request,如input1 请求 output port 1,2。同理input3 对output port 2,4也发出请求。input4 对output4 发出了请求。

在这里插入图片描述
在右侧实心黑点,output1 3 只有1个或者0个请求,没有冲突,grant过程被子图(a)省略了。从上至下第2和第4个黑点被2个input请求,需要按照优先级分配。这里的优先级不是单纯的比大小,而是按优先级发完grant以后转动轮盘,是此次request获得grant的最高优先级变成下一次最低优先级。具体操作如下:在output2中,同时有来自input1 和 input3的request。此时g2指针,即output2判断给谁grant的指针位于转盘的1(代表发给input1)处,output2会依照最靠近g2指针所在处优先级来grant,所以发给input1。同时发完之后g2指针移向下一位,如图中的2,使得这次grant的最优优先级1变成下次仲裁的最低优先级:g2指针位于2处时,优先顺序为2341。
在这里插入图片描述
grant发完之后,输出口对于输入口的请求做出了批复,但是由于input可能同时对多个输出做出了请求,也就可能收到多个output的grant。input需要做出选择,只选择一个output发出accept信号。
如子图b所示。input1同时收到outpu1和output2的grant,因为a1指针目前在1,所以选择output1 accept。并且移动指针a1,使得下一次优先级为2341,即此次最高优先级的output1变成下次最低优先级。
在这里插入图片描述

iSLIP算法

相比较RRM, iSLIP算法减少了输出处仲裁器的同步,grant指针只有当grant被接受后才移动,而不是之前的每次grant发出就移动。

一次迭代的iSLIP特性

1.最近成功的连接在下一次cell time中拥有最低的优先级。
2.没有连接是饥饿(starved)的。一个输入会持续性请求输出,最差是等待该输出处理完其他n-1个输入后对改输入发出grant,同时该grant最差等待n个cell time 后被输入accept,即n2个cell time内都会被处理。不会出现无限长的等待时间。
3.高负载情况下,所以具有公共输出的队列具有相同的吞吐量。(Property 3:Under heavy load, all queues with a commonoutput have the same throughput. This is a consequence ofProperty 2: the output pointer moves to each requesting inputin a fixed order, thus providing each with the same throughput.)

提出iSLIP的文章的图5显示了该算法相对于FIFO和RMM的优越性,尤其是在高负载下。
在这里插入图片描述
参考文献1指出,均匀分布的100%负载下,iSLIP算法适应于时分复用方案并且提供了完美匹配与100%的吞吐量。如参考文献1的图9所示,一个2x2的交换机作为例子展示了高负载下仲裁器如何工作的。在这里插入图片描述

多次迭代的iSLIP算法

多次迭代的iSLIP算法,每次都尝试添加之前迭代过程中没有建立的连接。所以很显然,更多的迭代次数增加了matching程度,提高了网络的表现即降低了延迟。
过程如文献1中的图15所示,见下文。
在这里插入图片描述

小结

本文以发表iSLIP的文章为基础,介绍了该算法是用于交换机中仲裁、分配输入输出的连接,并且介绍了个人对其优先级判定,循环,迭代原理的理解。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值