Virtual Output Queue Network Switch Packet Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvemulti-destination packet delivery capabilityVSAvoidbandwidth for other packet streams
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improvemulti-destination packet routingVSAvoidtraffic multiplication and network congestion
Core Design Contradiction:
Adaptability or versatilityVSObject-generated harmful factors

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvemulti-destination packet schedulingVSAvoidVOQ insertion and management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9813362B2Framework for scheduling packets with multiple destinations in a virtual output queue network switch
Publication Date: 2017.11.07 ORACLE INT CORP
  • US9813362B2 patent drawing
  • US9813362B2 patent drawing
  • US9813362B2 patent drawing

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.