Queue Processing Method for Multi-Root I/O Virtualization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-root I/O virtualization systems, shared queues cause issues when individual servers need to perform system resets independently, as standard systems often discard data packets from all active servers, leading to inefficient resource management and congestion.

Innovation Solution

The method involves storing data packets with associated state parameter data, allowing for the tracking of entity state changes, enabling selective processing and discarding of packets based on state parameter updates, ensuring only relevant packets are transmitted or discarded during server resets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If shared queues are used to store data packets from multiple servers, then resource utilization improves and congestion is reduced, but individual server reset capability deteriorates because packets from all servers must be discarded during a reset

Engineering Contradiction:
Improveresource utilizationVSAvoidindividual server reset capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The shared queue is segmented into multiple independent sub-queues, each associated with a specific server. This segmentation allows the queue to function as a shared resource while maintaining independence between server data streams, enabling individual server resets without affecting other servers' packets.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A state parameter mechanism is introduced as an intermediary between the shared queue and server reset operations. The state parameter tracks the reset status of each server, allowing the system to selectively process or discard packets based on the server's current state without requiring complete queue emptying.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If FIFO queues are used to store data packets, then simple queue management is achieved, but packet forwarding efficiency deteriorates when a packet cannot be forwarded causing subsequent packets to be blocked

Engineering Contradiction:
Improvequeue management complexityVSAvoidpacket forwarding efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The queue structure is made dynamic by allowing packets to be selected and forwarded based on current system conditions rather than strictly following FIFO order. The queue management adapts its behavior based on packet destination availability, enabling efficient forwarding while maintaining manageable complexity through state parameter tracking.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If state parameter data is stored with each data packet, then selective packet processing during resets is enabled, but memory usage increases

Engineering Contradiction:
Improveselective packet processing capabilityVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

Instead of storing complete state information with each packet, the system stores compact state parameter data that serves as a reference or copy of the server's current state. This minimal copying approach enables selective packet processing while keeping memory overhead low.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8644326B2Queue processing method
Publication Date: 2014.02.04 MICRON TECHNOLOGY INC
  • US8644326B2 patent drawing
  • US8644326B2 patent drawing
  • US8644326B2 patent drawing

AI summary

A method of processing data packets, each data packet being associated with one of a plurality of entities. The method comprises storing a data packet associated with a respective one of said plurality of entities in a buffer, storing state parameter data associated with said stored data packet, the state parameter data being based upon a value of a state parameter associated with said respective one of said plurality of entities, and processing a data packet in said buffer based upon said associated state parameter data.