Embedding Queue Empty Notifications in NIC Completion Events

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network interface systems experience performance degradation due to excessive data movement and context switching during transmit and receive operations, leading to bus bottlenecks and increased processor time, especially in environments with short data packets.

Innovation Solution

The solution combines the descriptor queue empty notification with the transmit or receive completion event, optimizing I/O bus usage by embedding the queue empty notification within the completion event, and maintains descriptor queues in host memory to reduce control traffic and processor overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate descriptor queue empty notifications and completion events are used, then the NIC can provide detailed status information, but bus usage time increases and processor overhead increases

Engineering Contradiction:
Improvestatus information accuracyVSAvoidbus usage time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent combines the descriptor queue empty notification and the completion event into a single unified event structure. This merging eliminates the need for separate bus transactions for each notification type, reducing bus usage time while maintaining all necessary status information through consolidated event fields that indicate both completion status and queue empty state.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified event structure serves multiple functions simultaneously: it notifies the host of transmit/receive completion, indicates whether the descriptor queue is empty, and provides status information for buffer management. This multi-functional event reduces the number of separate communications needed between NIC and host processor.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If separate descriptor queue empty notifications and completion events are used, then the NIC can provide detailed status information, but processor overhead increases

Engineering Contradiction:
Improvestatus information accuracyVSAvoidprocessor overhead
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges multiple notification types into a single event that the processor handles in one interrupt context. This consolidation reduces the number of interrupt service routines needed and decreases processor overhead while maintaining accurate status information through combined event fields that encode both completion and queue empty states.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The event structure is designed with specific fields that locally encode different types of status information (completion status, queue empty state) within a single data structure. This allows the processor to efficiently extract needed information without handling multiple separate events, reducing overhead while maintaining reliability.

Inventive Principle:
Principle #3Local quality

3Object-generated harmful factors

If descriptor queues are maintained in host memory, then control traffic is reduced, but data movement overhead increases

Engineering Contradiction:
Improvecontrol trafficVSAvoiddata movement overhead
Core Design Contradiction:
Object-generated harmful factorsVSLoss of energy

Solution Approach 1:

The patent pre-allocates descriptor queues in host memory during system initialization, establishing the data structures before they are needed for actual I/O operations. This preliminary setup reduces the need for dynamic memory management and control traffic during runtime, as the queues are already in place and can be efficiently used without additional allocation overhead.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7831749B2Including descriptor queue empty events in completion events
Publication Date: 2010.11.09 XILINX INC
  • US7831749B2 patent drawing
  • US7831749B2 patent drawing
  • US7831749B2 patent drawing

AI summary

Roughly described, method for managing data transmission between a host subsystem and a network interface device, in which the host writes data buffer descriptors into a DMA descriptor queue, and the network interface device writes completion events to notify the host when it has completed processing of data buffers. Each of the completion event descriptors notify the host of completion of data transfer between the NIC and one or more of the data buffers, and can also embed a queue empty notification inside the completion event.