计划
在与老师交流后,调整阅读重点
1. 重读袁龙师兄和梁佳诚师兄论文,重点看他们分析问题的部分。
2. 读[2016]Non-blocking frame-based multicast scheduler for IQ switches
and Michael Tartre and Bill Lin. Frame-Based Multicast Switching. 2010
3. 熟悉仿真平台: 1)了解程序结构,调用情况 2)算法的含义
实施情况
3/5:【1997】Multicast Scheduling for Input-Queued Switches
3/6: 1. 与老师交流,总结。 2. lab电脑上安装VS2017 3. 初步熟悉仿真代码
3/7: 1.继续熟悉仿真平台,找师兄交流 2.读[2016]Non-blocking frame-based multicast scheduler for IQ switches
3/8-3/10 熟悉平台,师兄论文
本周剩余工作,下周继续:
1. Michael Tartre and Bill Lin. Frame-Based Multicast Switching. 2010
2. 袁龙师兄论文
【1997】Multicast Scheduling for Input-Queued Switches
Prabhakar
- Design of a scheduler of an M x N input-queued multicast switch.
- Assumption:
- 每个input保持single queue for multicast cells
- cell at the HOL 头分组才能被观察
- Requirement
- work-conserving: 只要输入端有某输出端口为目的地的cell,该输出端口不会空闲idle
- fair: 任何cell不会在HOL停留超过一定时间
- Aim
- a work-conserving, fair policy
- maximum throughput, minimize input queue latency
- simple to implement in hardware
- 思路:
- 当输入端口发生竞争contention的时候,会有一些剩下的cells(residue)等待在下一个time slot被调度。本文认为:尽量把这些residue集中(concentrate on)在尽量少的输入端口,会使得policy表现最好。
- Trade-off between 1)concentration of residue(for high throughput) ,2)fairness(to prevent starvation) and 3)implementational simplicity
- 通过将组播交换调度问题mapping到 a variation of the popular block-packing game Tetris, 可以用更intuitive and geometric 的方式分析各种调度策略。
什么意思?
- 结果——调度策略
TATRA: extrmely well and in strict in fairness
WBA: a simple weight-based algorithm, 易于实施,fair,和concentrating algorithm相比表现良好(意思是比TATRA好?那前面的工作有什么意义呢)
(未完待续)
[2016]Non-blocking frame-based multicast scheduler for IQ switches
- What is “circulation of packets ”?
packet流动,调整里面排队队列情况。
The internal multicast tree was proposed in [5]. For each multicast flow, an internal multicast tree is built. The tree’s root node is the flow’s source port and the other tree nodes are the flow’s destination ports. Multicast packet copies are circulated across the corresponding tree. The circulated copies are treated as unicast packets. However, this solution requires at least the speedup of four.
a simple non-blocking frame-based multicast (NFBM) scheduler that can be used for offline scheduling.
Requirement: 1.multicast switching 2. fan-out splitting allowed. 3. circulation of the packets allowed. 4.fixed-size packet(cell), for variable size packet, perform packet segmentation first.
Assumptions: N x N switch,
frame length L,
Speedup = 2 (thus two packets can be sent from each input port and each output can receive at most two packets during one time slot.) Since the speedup of two is used, there are 2L configurations to be scheduled in the L consecutive time slots.
Admissible frame (i.e. no more than L received packets at each of the input ports, and there are at most L packet copies for each of the output ports.)
这篇文章主要就是引入了packet circulation,将调度过程分为两个阶段,第一阶段packet circulation,将所有input端口的队列的一帧中的copies均衡为L 个;第二阶段就是将调度作为unicast来处理,应用二分图上色的数学理论证明了最多需要L个configuration就能完成单播过程。 两个阶段各自占L个configuration,总共占2L个,也就是说在L个time slot中完成2L次调度就OK,所以speedup=2就能完成基于IQ的任务。 复杂度比较大,speedup=3的算法在实际工作中比较好。 文章没有说失序的问题,显然是会有失序问题的。
那么自然想到对于CICQ情况下,既然引入crosspoint,能否将speedup降到1? 另外考虑失序问题,如何处理?
梁师兄论文
CICQ结构组播调度问题分析
1. HoL Blocking队头阻塞问题:类似VOQ的思想,克服组播队头阻塞需要在每个输入端口设置(2^N-1)个虚拟组播队列,在大规模交换机中难以实现。目前常采用的方法设置k个(1<k<<2^N-1)个虚拟组播队列,可以缓解HOL阻塞但是无法解决。
2. 分组入队问题:设置的k个虚拟组播队列不能cover所有的fanout类型,那么需要按照一定的规则让到达的cell进入某一个队列。比如1.给每个队列设置标志扇出向量,让最接近的进入该队 或者2.Modulo算法。 还可以考虑队列之间的调整问题,比如上面那篇文章的packet circulation。
3. 单组播竞争裁决问题: 如果是单播和组播分别设置队列进行排队,就需要在入队之前考虑判断是单/组播。 如果是把单播作为组播的特殊情况,应该就不需要考虑该问题。对于此问题,由于单播和组播在目的端口的特性区别,在单播比例较高的时候应该当作不同业务类型处理。
4. Work-Conserving逼近问题:工作保持的定义:任意一次调度中,如果输入端口有去往某个输出端口的分组,那么在该次调度的发生时隙里,一定有分组通过该输出端口。因此,只要输入调度后每列交叉缓存不为空,那么在输出端口一定有分组可以被调度离开交换机,交换机则处于work-conserving阶段 —— 因此提出在输入调度中今尽量使crosspoint中的缓存分组数目相同。( 思考: 这个推理实际上是将a. input port有cell的情况等价成了b. crosspoint有cell。是否等价? 也许在某个瞬间crosspoint里没有cell但是输入端口有cell还没来得及通过输入调度进入这个crosspoint呢?这就是所谓的队头阻塞吧。那此时要解决的是输入调度中如何把需要的那个cell提前放进来的问题)
5. . 结合GEO星载环境特征,在现有研究中提出CICQ单组播混合调度交换结构中选择一种适用于星载环境的交换结构: 单级,单组播共享输入端酒,竞争相同交叉节点缓存,多FIFO组播队列。
算法设计分析
1. CA部分分配后的组播队列应该尽量满足:
1)k个队列头分组多样性好,尽量涵盖所有的N个输出端口
2)相同或相似组播分组归入同一队列
3)不同队列负载尽量均衡
2. 为了使得交换机work-conserving,输入调度尽量使分组数量最少的列方向交叉缓存有分组进入。原因:
1)有利于使得每列交叉缓存不为空->work-conserving
2)可均衡每列交叉缓存中分组的数目->后续时隙少出现为空情况->后续时隙work-conserving。
为了使CICQ结构中每列crosspoint buffer中cell数目均衡,输入调度中应该优先考虑分组数目最少的列交叉缓存对应的输出端口调度,选定输出端口后(需要选吗?一个crosspoint不是确定了对应的一对input-output吗?),在可去往该输出端口的所有输入端口中,选择目的端口数最少的输入端口传输分组,尽量使得交换机work-conserving。
这个分析再理解一下?如果选怎了输入端口1,此时有2个头分组前往1输出端口,1个头分组前往2输出端口,那么同一个time slot里,应该是一个头分组前往(1,1)crosspoint,一个头分组前往(1,2)crosspoint,还剩一个1->(1,1)等到下一个time slot调度。对于输入端口2,有两个2-(2,1)的调度。讲道理也可以在这个time slot里调度啊。 那么在这个time slot里(1,1)、(1,2)、(2,1)都有分组进入,为什么说第二列交叉缓存无分组进入呢?
3. 可以通过设置等待时间为权重来来保证裁决竞争过程的公平性。
4. 到达时扇出和当前输入队列扇出的大小能够反映阻塞程度。若某头分组到达时扇出大,当前扇出小,则滞留越严重。(这是在说允许扇出拆分的情况下吗??)