Self-Clocking Interrupt Generation in Network Interface Cards

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network interface card (NIC) systems require high software overhead when switching between polling and interrupt modes, especially when handling varying incoming packet rates, as they lack an efficient mechanism to dynamically adjust interrupt rates based on packet arrival rates.

Innovation Solution

A self-clocking mechanism in the NIC that adjusts the interrupt rate based on incoming packet rates, using an interrupt controller to issue interrupts only after a predetermined number of packets have arrived, recalculating this number based on the packet arrival rate, thereby reducing host processing burden and switching overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the host device uses interrupt-driven technique to notify data arrival, then latency and host overhead are reduced, but software overhead increases when switching between polling and interrupt modes

Engineering Contradiction:
ImprovelatencyVSAvoidsoftware overhead
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The NIC autonomously monitors packet arrival rates and dynamically adjusts interrupt generation without host intervention. The hardware-based packet rate monitoring and interrupt timing logic eliminates the need for host software to manage mode switching, allowing the system to self-optimize between polling and interrupt modes based on actual traffic conditions.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system dynamically adapts its operation mode based on real-time packet arrival rates. When packet rates are high, the NIC switches to interrupt-driven mode to reduce latency. When packet rates are low, it transitions to polling mode to minimize overhead. This dynamic adaptation is managed by hardware logic that monitors packet arrival patterns and automatically adjusts the NIC's data transfer mechanism.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the NIC uses fixed interrupt rate, then implementation is simple, but it cannot efficiently handle varying packet arrival rates

Engineering Contradiction:
Improvehandling varying packet ratesVSAvoidinterrupt rate adjustment mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The NIC incorporates a feedback mechanism where packet arrival rates are continuously monitored and fed back to the interrupt timing logic. This feedback loop allows the system to adjust interrupt generation intervals based on actual packet arrival patterns, optimizing performance for varying traffic conditions without requiring complex external control.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the interrupt generation parameter (time interval or packet count threshold) based on monitored packet arrival rates. When packet rates increase, the interrupt interval is reduced or the threshold is lowered to ensure timely notifications. When packet rates decrease, the interval is extended to reduce unnecessary interrupts, thereby adapting to varying network conditions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8732263B2Self clocking interrupt generation in a network interface card
Publication Date: 2014.05.20 JUNIPER NETWORKS INC
  • US8732263B2 patent drawing
  • US8732263B2 patent drawing
  • US8732263B2 patent drawing

AI summary

A network interface card may issue interrupts to a host in which the determination of when to issue an interrupt to the host may be based on the incoming packet rate. In one implementation, an interrupt controller of the network interface card may issue interrupts to that informs a host of the arrival of packets. The interrupt controller may issue the interrupts in response to arrival of a predetermined number of packets, where the interrupt controller re-calculates the predetermined number based on an arrival rate of the incoming packets.