Virtualized Interrupt Controller Auto-EOI Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtualized interrupt controllers in multi-processor environments face significant overhead due to the need for explicit end-of-interrupt (EOI) commands, which can consume thousands of cycles, especially in inter-partition messaging and when handling interrupts that are not the highest priority.

Innovation Solution

Implementing 'auto-EOI' mechanisms where the virtualized interrupt controller clears the interrupt service register immediately upon delivering an interrupt, allowing other interrupts to proceed without waiting for an explicit EOI command, and selectively processing EOI commands only when necessary, particularly for inter-partition messaging by using an end-of-message (EOM) command only when additional messages are queued.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If explicit EOI commands are used to clear interrupt service flags, then interrupt handling reliability is improved, but processing time increases significantly (thousands of cycles)

Engineering Contradiction:
Improveinterrupt handling reliabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-clearing the interrupt service flag at the moment of interrupt delivery, before the interrupt service routine executes. This eliminates the need for a subsequent EOI command to clear the flag, thereby reducing processing time while maintaining reliable interrupt handling through the initial flag clearance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the flag clearing operation from the post-interrupt EOI command sequence and performs it separately at the time of interrupt delivery. This separation removes the time-consuming EOI command from the critical interrupt handling path while preserving the necessary flag management for reliable interrupt processing.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If EOI commands are processed for all interrupts, then complete interrupt state management is achieved, but computational overhead increases

Engineering Contradiction:
Improveinterrupt state managementVSAvoidcomputational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial action by clearing only the specific interrupt service flag that corresponds to the delivered interrupt, rather than processing EOI commands for all interrupts. This selective approach maintains adequate interrupt state management for the active interrupt while avoiding the computational overhead of managing all interrupt states.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The interrupt delivery mechanism performs self-service by automatically clearing the interrupt service flag as part of the interrupt delivery process itself, eliminating the need for separate EOI command processing. This self-clearing mechanism maintains interrupt state integrity while improving computational efficiency.

Inventive Principle:
Principle #25Self-service

3Reliability

If interrupt service flags are cleared only after EOI commands, then interrupt priority ordering is maintained, but interrupt delivery speed decreases

Engineering Contradiction:
Improveinterrupt priority orderingVSAvoidinterrupt delivery speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent performs the flag clearing action preliminarily at interrupt delivery time rather than waiting for the EOI command. This preliminary clearance maintains interrupt priority ordering because the flag state reflects the current interrupt being serviced, while simultaneously improving interrupt delivery speed by eliminating the post-clearance delay.

Inventive Principle:
Principle #10Preliminary action

4Productivity

If auto-EOI mechanism is implemented, then average computational cost of interrupt processing is reduced, but complexity of interrupt controller increases

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidinterrupt controller complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The auto-EOI mechanism implements self-service by having the interrupt controller automatically clear its own interrupt service flags without requiring external EOI commands. This self-clearing functionality reduces the average computational cost of interrupt processing while the added complexity is confined to the interrupt controller's internal flag management logic.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP2122474B1Optimized interrupt delivery in a virtualized environment
Publication Date: 2015.07.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2122474B1 patent drawingFigure 1
  • EP2122474B1 patent drawingFigure 2
  • EP2122474B1 patent drawingFigure 3

AI summary

Various operations are disclosed for improving the operational efficiency of interrupt handling in a virtualized environment. A virtualized interrupt controller may obviate the need for an explicit end-of-interrupt command by providing an automatic EOI capability even when a physical interrupt controller offers no such mechanism. The use of a message pending bit for inter-partition communications facilitates avoiding an EOI command of inter-processor interrupts used in inter-partition communications whenever no further messages are cued for a particular message slot. A virtualized interrupt controller facilitates the selective EOI of an interrupt even when it is not the highest priority in-service interrupt irrespective of whether a physical interrupt controller provides such functionality.