Virtual Output Queue Network Switch Packet Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High-performance computing systems experience network congestion due to multi-destination packets, which are replicated across multiple output ports, leading to bandwidth reduction and performance issues, particularly in high-speed networks like Infiniband switches where packet dropping is not feasible and credit exchanges are relied upon.
Innovation Solution
The system employs a virtual output queue (VOQ) architecture with separate VOQs for each input port and output port, scheduling multi-destination packets one VOQ at a time, and inserting them at the end of the last complete packet to optimize traffic flow and reduce congestion by managing credits and buffer allocation efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multi-destination packets are replicated to all or subset of output ports, then the multi-destination packet can reach multiple destinations, but the bandwidth available to transfer other packets through the switch fabric is greatly reduced
Solution Approach 1:
The patent segments multi-destination packets into multiple unicast packets, each destined for a single output port. This segmentation allows the switch fabric to handle each packet as a separate flow, eliminating the bandwidth consumption associated with replication while still delivering content to multiple destinations through coordinated reassembly at the output ports.
Solution Approach 2:
The patent introduces a new dimension to packet handling by implementing virtual output queues (VOQs) at each input port, organized by destination output port. This dimensional organization allows the switch to manage multi-destination traffic in a structured manner, separating traffic flows and enabling efficient scheduling that prevents bandwidth exhaustion while maintaining multi-destination delivery capability.
2Adaptability or versatility
If multi-destination packets are sent across the network switch fabric, then multiple destinations can receive the packet, but traffic multiplication occurs which adversely affects the performance of other packet streams
Solution Approach 1:
The patent extracts the replication function from the core switch fabric by implementing segmentation at the input port level. Instead of allowing traffic multiplication within the switch fabric, the system extracts multi-destination packets, divides them into unicast components, and routes them through separate VOQs, thereby eliminating the harmful traffic multiplication effect while preserving multi-destination delivery.
Solution Approach 2:
The patent introduces virtual output queues (VOQs) as an intermediary structure between input ports and output ports. These VOQs act as buffers and scheduling points that manage the flow of segmented packet components, coordinating their transmission to prevent congestion and eliminate the need for fabric-wide replication, thus serving as a mediator that resolves the conflict between multi-destination routing and traffic control.
3Adaptability or versatility
If a multi-destination packet is inserted into VOQs associated with multiple output ports, then the packet can be scheduled to multiple destinations, but the insertion process becomes complex requiring examination of VOQ state and atomic operations
Solution Approach 1:
The patent applies preliminary action by pre-segmenting multi-destination packets into unicast components at the input port before they enter the VOQ structure. This pre-processing eliminates the need for complex runtime insertion logic, as each segmented packet component is independently routed to its destination VOQ using simple key-based lookup, thereby reducing insertion complexity while maintaining scheduling flexibility.
Solution Approach 2:
The patent uses copying by creating multiple copies of the segmented packet components and placing them into different VOQs corresponding to different output ports. Each copy is independently managed in its destination VOQ, simplifying the insertion process to a straightforward copy-and-place operation rather than requiring complex atomic updates to shared data structures.
Data Source
AI summary
A system for communicating a multi-destination packet through a network switch fabric is described. The system receives the multi-destination packet at an input port of the network switch fabric, wherein the multi-destination packet is directed to multiple output ports, and wherein the network switch fabric has a virtual output queue (VOQ) architecture, wherein each input port maintains a separate VOQ for each output port. The system sends the multi-destination packet by inserting the multi-destination packet into VOQs associated with the multiple output ports. While inserting the multi-destination packet in each VOQ, if the VOQ is empty, the system inserts the multi-destination packet at a head of the VOQ. Otherwise, if the VOQ is not empty and if the VOQ contains an end of a last complete packet received by the VOQ, the system inserts the multi-destination packet into the VOQ at the end of the last complete packet.


