fast scalable and programmable packet scheduler in
play

Fast, Scalable, and Programmable Packet Scheduler in Hardware - PowerPoint PPT Presentation

Fast, Scalable, and Programmable Packet Scheduler in Hardware Vishal Shrivastav Cornell University Packet Scheduling 101 express enforce at runtime Packet Scheduler * focus of this work * fairness / rate-limit / To pacing etc.. Wire


  1. Fast, Scalable, and Programmable Packet Scheduler in Hardware Vishal Shrivastav Cornell University

  2. Packet Scheduling 101 express enforce at runtime Packet Scheduler * focus of this work * fairness / rate-limit / To pacing etc.. Wire output interface Scheduling Algorithm Packet Queues specifies when and what order to schedule packets onto the wire

  3. Desirable Properties of a Packet Scheduler Programmability Scalability Express wide-range of Scale to 10s of thousands of flows packet scheduling algorithms [SENIC - NSDI’14] [Carousel - SIGCOMM’17] New transport protocols Time budget e.g., Fastpass, Ethernet TDMA Link for scheduling speed Circuit-Switched network designs decisions Performance e.g., Shoal, RotorNet Transmit packets at precise times e.g., 120 ns for MTU pkt @ 100Gbps e.g., at ns-precision in Shoal Make scheduling decisions within deterministic 10s of nanoseconds

  4. Desirable Properties of a Packet Scheduler Trade-o ff Programmability Scalability Express wide-range of Scale to 10s of thousands of flows packet scheduling algorithms [SENIC - NSID’14] [Carousel - SIGCOMM’17] Trade-o ff ff o - e d a r T New transport protocols Time budget e.g., Fastpass, QJump, Ethernet TDMA Link for scheduling speed Circuit-Switched designs decisions Performance e.g., Shoal, Rotornet Transmit packets at precise times e.g., 120 ns for MTU pkt @ 100Gbps Challenging to achieve all three properties e.g. at ns-precision in Shoal (programmability, scalability, and performance) Make scheduling decisions in deterministic O(1) time, within 10s of nanoseconds simultaneously

  5. State-of-the-art Packet Schedulers Performance Programmability Scalability express wide range of 10s of thousands decisions within deterministic scheduling algorithms of flows 10s of nanoseconds Software via specialization Performance Generality Hardware 1. FIFO 2. PIFO, UPS * (priority queue * has some limitations abstraction)

  6. Can we design a packet scheduler that is simultaneously programmable, scalable, and high performance? We present PIEO (Push-In-Extract-Out) scheduler in hardware Abstraction Programmable more expressive than any state-of-the-art hardware packet scheduler Hardware Design Scalable easily scales to 10s of thousands of flows High Performance makes scheduling decisions in O(1) time [4 clock cycles]

  7. Can we design a packet scheduler that is simultaneously programmable, scalable, and high performance? We present PIEO (Push-In-Extract-Out) scheduler in hardware Abstraction Programmable more expressive than any state-of-the-art hardware packet scheduler Scalable easily scales to 10s of thousands of flows High Performance makes scheduling decisions in O(1) time [4 clock cycles]

  8. PIEO Scheduling Abstraction Scheduling Algorithms what order to schedule when an element becomes amongst eligible elements? eligible for scheduling? encode using a � value encode using a � value rank t eligible whenever the link is idle: among all elements satisfying the eligibility predicate � : t current ≥ t eligible schedule the smallest ranked element PIEO Abstraction — “ schedule the smallest ranked eligible element” strictly more expressive than a priority queue abstraction, e.g., PIFO, UPS

  9. Push-In-Extract-Out Primitive element programmed ordered list based on 10 12 13 16 19 21 22 rank the choice of increasing rank value 16 9 4 13 6 2 15 t eligible scheduling algorithm 18 18 10 12 13 16 19 21 22 enqueue( ) “Push-In” 1 1 16 9 4 13 6 2 15 inserts element at position dictated by its rank value filter : � t current ≥ t eligible � t current = 7 dequeue( ) “Extract-Out” 13 10 12 13 16 19 21 22 4 16 9 4 13 6 2 15 returns “smallest ranked eligible” element 10 12 13 16 19 21 22 19 dequeue( ) 16 9 4 13 6 2 15 6 returns a specific element

  10. Expressiveness of PIEO for each element: ๏ Work conserving calculate start_time and finish_time at time x, all elements s.t. virtual_time(x) >= start_time : • e.g., DRR, WFQ, � WF 2 Q schedule element with smallest finish_time ๏ Non-work conserving programming PIEO • e.g., Token Bucket, RCSP � rank = finish _ time ๏ Hierarchical scheduling � t eligible = start _ time • e.g., HPFQ Predicate for filtering at dequeue at time x: ๏ Asynchronous scheduling � ( virtual _ time ( x ) ≥ t eligible ) • e.g., Starvation avoidance, � D 3 ๏ Priority scheduling APP APP APP • e.g., SJF , SRTF , LSTF , EDF Rate Rate Rate limit limit limit ๏ Complex scheduling policies e.g. • mixture of shaping and ordering Priority — can not express accurately using PIFO

  11. Can we design a packet scheduler that is simultaneously programmable, scalable, and high performance? We present PIEO (Push-In-Extract-Out) scheduler in hardware Programmable more expressive than any state-of-the-art hardware packet scheduler Hardware Design Scalable easily scales to 10s of thousands of flows High Performance makes scheduling decisions in O(1) time [4 clock cycles]

  12. Hardware Design PIEO primitive relies on an ordered list datastructure Performance Scalability PIFO SRAM flip-flops O(N) comparators) (flip-flops & Hardware Resource > > > > > Array or Linked-list in memory O(1) Time Complexity O(1) O(N)

  13. Is it fundamentally necessary to access and compare � elements in parallel to maintain O ( N ) an (exact) ordered list (of size N) in � time? O (1) We present a design that can maintain an (exact) ordered list in � time, but only needs to access O (1) and compare � elements in parallel. O ( N ) Key Insight “All problems in computer science can be solved by another level of indirection” —David Wheeler

  14. Hardware Architecture 2 N 2 N SRAM N flip-flops N Points to sublists N sublist pointers ordered by increasing smallest rank value each sublist ordered by increasing rank within each sublist Q: How to zoom into the correct sublist in O(1) time? Q: How to read/update/write an entire sublist in O(1) time? Q: How to filter + extract-min in O(1) time? Q: What to do when enqueue into a full sublist? Detailed answers in the paper !!! enqueue(f), dequeue( ), dequeue(f) each execute in exactly 4 clock cycles ….. at the cost of 2 X memory overhead

  15. Implementation • Implemented PIEO scheduler on a Stratix V FPGA - 234K logic modules (ALMs) - 6.5MB SRAM - 40Gbps interface bandwidth • ~1300 LOCs in System Verilog

  16. Evaluation total SRAM = 6.5MB total SRAM = 6.5MB >30x 16 bit � and � fields rank t eligible 16 bit � and � fields rank t eligible 4 cycles per primitive op, i.e., 50ns @ 80MHz 4 cycles per primitive op, i.e., 50ns @ 80MHz - pipelining - pipelining - ASIC target, e.g., 4ns @ 1GHz - ASIC target, e.g., 4ns @ 1GHz But not as fast as PIFO — 1 cycle per primitive op But not as fast as PIFO — 1 cycle per primitive op

  17. Beyond Packet Scheduling • PIEO as an O(1)-time generic Priority Queue • PIEO as an Abstract Dictionary Data Type • act as a (key, value) store, indexed by keys • search , insert , delete , and update in O(1) time • e ffi ciently do complex ops like range filtering over keys • ….. while also being reasonably scalable PIEO as a key basic building block in the era of hardware-accelerated computing

  18. Conclusion Programmability PIFO Software (Hardware) PIEO (Hardware) High Scalability Performance FIFO (Hardware)

  19. Conclusion Two Key Contributions: Programmability • A new programmable abstraction and primitive for packet scheduling - more expressive than any state-of-the-art hardware packet scheduler • A fast and scalable hardware design of the scheduler PIFO - makes scheduling decisions in 4 clock cycles Software - easily scales to 10s of thousands of flows (Hardware) PIEO High (Hardware) Scalability Performance FIFO (Hardware)

  20. Thank you! FPGA code for the implementation of PIEO scheduler is available at: https://github.com/vishal1303/PIEO-Scheduler Email: vishal@cs.cornell.edu Webpage: http://www.cs.cornell.edu/~vishal/

Recommend


More recommend