Virtual Queue Architecture for Network Device Throughput and Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network devices face inefficiencies in utilizing multiple physical queues due to high latency and resource overhead when polling multiple receive (RX) physical queues, leading to suboptimal performance in high-throughput scenarios.

Innovation Solution

The implementation of virtual queues, each backed by multiple physical queues, allows for efficient use of physical queues without additional overhead, enabling seamless interaction through virtual queue identifiers and weighted distribution of data packets across physical queues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple physical queues are used to handle high throughput traffic, then throughput capacity is improved, but latency and resource overhead increase due to polling multiple queues

Engineering Contradiction:
Improvethroughput capacityVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges multiple physical queues into a single virtual queue structure. The network device presents one virtual queue to the host system while maintaining multiple physical queues internally. Packets from multiple physical queues are consolidated into a single virtual queue buffer, allowing the host to poll only one queue while the network device internally manages multiple physical queues, thus reducing polling overhead and latency while maintaining high throughput capacity.

Inventive Principle:
Principle #5Merging (Combining)

2Adaptability or versatility

If multiple physical queues are polled to utilize available resources, then resource utilization is improved, but resource overhead increases due to additional polling operations

Engineering Contradiction:
Improveresource utilizationVSAvoidresource overhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a virtual queue as an intermediary layer between the host system and multiple physical queues. The virtual queue acts as a mediator that receives packets from multiple physical queues and presents them as a single queue to the host. This intermediary structure allows the system to utilize multiple physical queues for resource distribution while the host only needs to manage one queue, significantly reducing the overhead of polling and managing multiple queues.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If packets are distributed across multiple physical queues, then throughput is improved, but queuing time increases due to additional queue management operations

Engineering Contradiction:
ImprovethroughputVSAvoidqueuing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the queue management function into two parts: a single virtual queue that the host interacts with, and multiple physical queues that are internally managed by the network device. This segmentation allows packets to be distributed across multiple physical queues for parallel processing and high throughput, while the virtual queue abstraction ensures that packets are efficiently consolidated and presented to the host in a single stream, minimizing queuing time and management overhead.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250112875A1System and method for organizing physical queues into virtual queues
Publication Date: 2025.04.03 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • US20250112875A1 patent drawing
  • US20250112875A1 patent drawing
  • US20250112875A1 patent drawing

AI summary

A method of buffering data packets at a network device includes receiving a set of data packets from an ingress port of the network device, identifying primary information and secondary information about each data packet in the set of data packets, determining a virtual queue for each data packets in the set of data packets based on the primary information, the virtual queue having a set of physical queues, determining a physical queue from the set of physical queues for each of the data packets in the set of data packets based on the secondary information, and storing the set of data packets in physical queues of the virtual queue.