交换机调度算法:从PIM到iSLIP的演进
在网络交换领域,如何高效、公平地调度数据包是一个关键问题。本文将介绍两种重要的调度算法:并行迭代匹配(PIM)和iSLIP,探讨它们的原理、优缺点以及如何避免队首阻塞(HOL)。
1. 淘汰赛逻辑的局限性
在选择资源时,简单的淘汰赛逻辑可能存在不公平性。例如,从八个选项中选择四个单元,若将八个选项两两分配到四个2x2的淘汰赛集中器,可能会导致某些流量源获得的流量远少于其他流量源。为了避免这种不公平,淘汰赛逻辑使用k个独立的树,每个位置对应一个树。然而,这种实现方式较为复杂,且对流量分布有一定假设,在实际拓扑中并不总是成立。
2. 并行迭代匹配(PIM)
2.1 核心思想
PIM的主要思想是重新考虑输入排队,通过允许输入端口调度输入队列中的其他单元,而不仅仅是队首单元,来避免队首阻塞。具体来说,PIM将单个输入队列分解为每个输出端口对应的虚拟输出队列(VOQ),这样可以避免对同一输出端口的多个单元进行不必要的调度。
2.2 实现步骤
- 分解输入队列 :将每个输入端口的单个队列分解为多个VOQ,每个VOQ对应一个输出端口。
- 发送请求 :每个输入端口向其有非空VOQ的输出端口发送请求。
- 授予阶段 :输出端口随机选择一个输入请求进行授予。
- 接受阶段 :输入端口随机选择一个授予进行接受。