VOQ Packet Flush Engine for High-Speed Network Buffering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High performance cloud computing architectures face bottlenecks in traditional network and storage systems, particularly in managing packet switching and resource allocation in high-speed networking environments, where existing methods struggle with efficient packet handling and buffer management under varying conditions.

Innovation Solution

A system and method that utilize an ingress buffer with virtual output queues and a packet flush engine to manage packet switching, reallocate buffer resources, and maintain credit consistency across virtual lanes, enabling efficient packet handling and error recovery in high performance network environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional buffer management methods are used in high-speed networking environments, then device complexity is reduced, but packet switching efficiency and resource allocation performance deteriorate

Engineering Contradiction:
Improvepacket switching efficiencyVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The ingress buffer is segmented into multiple Virtual Output Queues (VOQs), each associated with a specific output port. This segmentation allows independent management and optimization of buffer resources for different output destinations, improving packet switching efficiency by enabling parallel processing and reducing head-of-line blocking effects.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic buffer resource allocation through a packet flush engine that can reallocate buffer space from VOQs with low priority or fewer packets to VOQs with high priority or more packets. This dynamic adjustment optimizes resource utilization under varying traffic conditions, enhancing overall packet switching efficiency without requiring a complete redesign of the buffer management architecture.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If buffer resources are statically allocated to virtual lanes, then device complexity is reduced, but adaptability to link state changes and error recovery capability deteriorate

Engineering Contradiction:
Improveadaptability to link state changesVSAvoidbuffer reallocation mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent employs a feedback mechanism where the packet flush engine continuously monitors the state of VOQs and dynamically reallocates buffer resources based on current traffic conditions, link state changes, and error conditions. This feedback-driven approach enables the system to adapt to varying network conditions and recover from errors by adjusting buffer allocation in real-time, improving adaptability without requiring static pre-configuration for all possible scenarios.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the allocation parameters of buffer resources dynamically based on link state changes and traffic patterns. When link errors or state changes occur, the packet flush engine adjusts buffer allocation parameters (such as buffer size, priority, and association with virtual lanes) to optimize performance and enable error recovery, thereby improving adaptability to changing network conditions.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If packets are flushed from virtual output queues without notification, then processing speed is improved, but reliability and error handling capability deteriorate

Engineering Contradiction:
Improvepacket handling reliabilityVSAvoidnotification overhead time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements a notification mechanism where the packet flush engine proactively notifies output schedulers before packets are flushed from VOQs. This preliminary action allows output schedulers to prepare for incoming packets, update their scheduling algorithms, and maintain synchronization with the ingress buffer state. The notification overhead is minimized through efficient signaling mechanisms, ensuring that reliability is improved without significant time loss.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If credit updates are not sent for reallocated buffer resources, then processing speed is improved, but reliability and resource tracking accuracy deteriorate

Engineering Contradiction:
Improvecredit consistencyVSAvoidcredit update transmission time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts and sends credit updates separately from the main packet switching operation. When buffer resources are reallocated among VOQs, the system generates and transmits credit update messages to inform virtual lanes of the changed buffer availability. This extraction approach ensures that credit consistency is maintained without blocking the main packet switching pipeline, minimizing the impact on processing speed while ensuring reliable resource tracking.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP3241320B1System and method for supporting efficient virtual output queue (VOQ) packet flushing scheme in a networking device
Publication Date: 2019.05.01 ORACLE INT CORP
  • EP3241320B1 patent drawingFigure 1
  • EP3241320B1 patent drawingFigure 2
  • EP3241320B1 patent drawingFigure 3

AI summary

A system and method can support packet switching in a network environment. The system can include an ingress buffer on a networking device, wherein the ingress buffer, which includes one or more virtual output queues, operate to store one or more incoming packets that are received at an input port on the networking device. Furthermore, the system can include a packet flush engine, which is associated with the ingress buffer, wherein said packet flush engine operates to flush a packet that is stored in a said virtual output queue in the ingress buffer, and notify one or more output schedulers that the packet is flushed, wherein each output scheduler is associated with an output port.