Dynamic MSI-X Interrupt Vector Allocation in PCIe Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current PCI Express (PCIe) systems face challenges in dynamically adjusting the number of MSI-X interrupt vectors allocated to physical and virtual functions, leading to potential disruptions in time-critical applications due to static allocation methods that require system resets for re-configuration.

Innovation Solution

Implement a dynamic allocation mechanism that allows for flexible assignment of MSI-X interrupt vectors based on current needs, enabling physical or virtual functions to request and allocate vectors without system resets, using a combination of software and firmware to manage vector allocation and physical resource assignment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If static allocation of MSI-X interrupt vectors is used, then system configuration is simple, but system responsiveness deteriorates when re-configuration is needed

Engineering Contradiction:
Improveinterrupt vector allocation flexibilityVSAvoidsystem reset time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements dynamic interrupt vector allocation by allowing the host system to allocate and deallocate MSI-X vectors to virtual functions on-demand without system resets. The allocation is managed through software/firmware coordination, where the host maintains tracking of allocated vectors and can dynamically adjust allocations based on current system needs, transforming the static allocation model into a dynamic one.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent establishes preliminary allocation frameworks where the host system pre-configures interrupt vector pools and allocation rules before runtime. This allows the system to have pre-established allocation mechanisms in place, enabling rapid dynamic adjustments without requiring full system re-initialization when re-configuration is needed.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If dynamic allocation of MSI-X interrupt vectors is implemented, then system responsiveness improves, but device complexity increases

Engineering Contradiction:
Improvesystem responsivenessVSAvoidallocation management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces software and firmware as intermediary layers between the host system and the PCI device. These intermediaries manage the complex allocation tracking, vector assignment, and deallocation logic, shielding the hardware from complexity while enabling dynamic allocation. The software/firmware acts as a mediator that handles the bookkeeping and coordination required for dynamic vector management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements feedback mechanisms where the host system continuously tracks allocated interrupt vectors and monitors system needs. This feedback loop enables the host to make informed dynamic allocation decisions, adjusting vector assignments based on current utilization patterns and requirements, thereby managing complexity through intelligent control rather than rigid hardware logic.

Inventive Principle:
Principle #23Feedback

3Reliability

If system resets are performed for re-configuration, then allocation accuracy is ensured, but system uptime deteriorates

Engineering Contradiction:
Improveallocation accuracyVSAvoidsystem uptime
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The patent establishes preliminary allocation frameworks where the host system pre-configures interrupt vector pools and allocation rules before runtime. This allows the system to have pre-established allocation mechanisms in place, enabling rapid dynamic adjustments without requiring full system re-initialization when re-configuration is needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic interrupt vector allocation by allowing the host system to allocate and deallocate MSI-X vectors to virtual functions on-demand without system resets. The allocation is managed through software/firmware coordination, where the host maintains tracking of allocated vectors and can dynamically adjust allocations based on current system needs, transforming the static allocation model into a dynamic one.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12026110B2Dynamic interrupt provisioning
Publication Date: 2024.07.02 INTEL CORP
  • US12026110B2 patent drawing
  • US12026110B2 patent drawing
  • US12026110B2 patent drawing

AI summary

Examples described herein relate to a device indicating a number of available interrupt messages that is more than physical resources available to store the available interrupt messages and allocating one or more physical resources to provide one or more interrupt messages based on allocation of the one or more interrupt messages to a destination entity. The destination entity can request a maximum permitted allocation of interrupt messages regardless of interrupt message use level. The destination entity can request a maximum permitted allocation of interrupt messages regardless of interrupt message use level and allocate the requested maximum permitted allocation of interrupt messages for use in a configuration region of a device. However, based on unavailability of a physical resource to store a first interrupt message, allocation of the first interrupt message to a destination entity may not be permitted.