scheduling for local-area networks” CS244 Packet Switch Design Tom Anderson et al. “High-speed switch scheduling for local-area networks” Sachin Katti
Context Tom Anderson, Professor of CS, University of Washington Susan Owicki, Susan: Was on Stanford CS faculty. Went to DEC SRC (where this work was done). Now a Family Therapist in Palo Alto.
Throughput 1 1 l 1 1 Q: If l < 1 what happens to the queue? l/2 l/2 If the packets are all the same length, then at most one complete packet buffered at a time (plus one being drained). If packets are of different length, then how much (max) data can be in the queue at a time? (Ans: 1 max packet being drained, plus 1 max packet waiting = 2 max packets) The second queue shows that if two packets arrive at the same time, or if there is a collision of several packets for a while, then the queue will build up. In a switch, there are N such inputs. 1 l/2 1 l/2 Q: If l < 1 what happens to the queue?
Output Queued Packet Switch Lookup Address Update Header Forwarding Table Data H Queue Packet Buffer Memory Lookup Address Update Header Forwarding Table Data H Lookup Address Update Header Forwarding Table Data H
Input Queued Packet Switch Lookup Address Update Header Forwarding Table Queue Packet Buffer Memory Data H Data H Lookup Address Update Header Forwarding Table Queue Packet Buffer Memory Data H Lookup Address Update Header Forwarding Table Queue Packet Buffer Memory
Head of Line Blocking
Virtual Output Queues
Output Queued Packet Switch The best that any queueing system can achieve. 8
Properties of OQ switches They are “work conserving”. Throughput is maximized. Expected delay is minimized. We can control packet delay. Broadly speaking: When possible, use an OQ design.
Input Queued Packet Switch Head of Line Blocking OQ Switch 10
Input Queued Packet Switch With Virtual Output Queues VOQs OQ Switch
Properties of OQ switches They are “work conserving”. Throughput is maximized. Expected delay is minimized. We can control packet delay. Broadly speaking: When possible, use an OQ design.
Practical Goal Problem: Memory bandwidth Therefore: Try to approximate OQ. In this paper, we are just looking at those switches that attempt to match “Property 2: Maximize throughput”
Questions What is a virtual output queue (VOQ)? How does a VOQ help? What does the scheduler/arbiter do?
Parallel Iterative Matching 1 2 3 4 #1 #2 Iteration: uar selection uar selection 1 2 3 4 1 2 3 4 Grant 1 2 3 4 Accept Request 1 2 3 4 1 2 3 4
PIM Properties Guaranteed to find a maximal match in at most N iterations. Inputs and outputs make decisions independently and in parallel. In general, will converge to a maximal match in < N iterations. How many iterations should we run?
Parallel Iterative Matching FIFO Maximum Size Output Queued Simulation 16-port switch Uniform iid traffic
Parallel Iterative Matching PIM with one iteration FIFO Maximum Size Output Queued Simulation 16-port switch Uniform iid traffic
Parallel Iterative Matching PIM with one iteration PIM with four iterations Simulation 16-port switch Uniform iid traffic
Parallel Iterative Matching Number of iterations Consider the n requests to output j k Requesting inputs receiving no other grants j n-k Requesting inputs receiving other grants
Virtual Output Queues l 1
Throughput “Maximize throughput” is equivalent to “queues don’t grow without bound for all non-oversubscribing traffic matrices” i.e. l ≤ 1 for every queue in the system. Observations: Burstiness of arrivals does not affect throughput When traffic is uniform, solution is trivial
Uniform traffic l = 1/3 1 1 1 1/3 1
Throughput for uniform traffic 100% throughput is easy for uniform traffic: Serve every queue at rate 1/N in fixed round-robin schedule Pick a permutation each time uniformly and at random from all possible N! permutations Or, from among N round-robin permutations Wait until all VOQs are non-empty, then pick any algorithm above.
With non-uniform traffic 100% throughput is now known to be theoretically possible with: Input queued switch, with VOQs, and An arbiter to pick a permutation to maximize the total matching weight (e.g. weight is VOQ occupancy or packet waiting time) It is practically possible with: IQ switch, VOQs, all running twice as fast An arbiter running a maximal match (e.g. PIM)